summaryrefslogtreecommitdiffstats
path: root/sys/dev/smbus
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2016-12-24 14:44:25 +0000
committeravg <avg@FreeBSD.org>2016-12-24 14:44:25 +0000
commitbffa1ca0c4dd974aa3539c58415911c66ea5b49e (patch)
tree771f0d3eda6136045d2b40287601974461c422c2 /sys/dev/smbus
parentfcc65d966eaac8a8bbdff7cfcf30b47970bd1f17 (diff)
downloadFreeBSD-src-bffa1ca0c4dd974aa3539c58415911c66ea5b49e.zip
FreeBSD-src-bffa1ca0c4dd974aa3539c58415911c66ea5b49e.tar.gz
MFC r308242: smbus: remove smbus_trans / SMB_TRANS
This change reverts most of r281985. The method did not map to anything defined by SMBus protocol and could not be implemented for SMBus controllers. This change is obviously not backwards compatible, but I have good reasons to believe that there have never been any users of SMB_TRANS.
Diffstat (limited to 'sys/dev/smbus')
-rw-r--r--sys/dev/smbus/smb.c18
-rw-r--r--sys/dev/smbus/smb.h7
-rw-r--r--sys/dev/smbus/smbconf.h19
-rw-r--r--sys/dev/smbus/smbus_if.m17
4 files changed, 2 insertions, 59 deletions
diff --git a/sys/dev/smbus/smb.c b/sys/dev/smbus/smb.c
index 6d9aa8a..5f6eff0 100644
--- a/sys/dev/smbus/smb.c
+++ b/sys/dev/smbus/smb.c
@@ -301,24 +301,6 @@ smbioctl(struct cdev *dev, u_long cmd, caddr_t data, int flags, struct thread *t
error = copyout(buf, s->rbuf, s->rcount);
break;
- case SMB_TRANS:
- if (s->rcount < 0 || s->wcount < 0) {
- error = EINVAL;
- break;
- }
- if (s->rcount > SMB_MAXBLOCKSIZE)
- s->rcount = SMB_MAXBLOCKSIZE;
- if (s->wcount > SMB_MAXBLOCKSIZE)
- s->wcount = SMB_MAXBLOCKSIZE;
- if (s->wcount)
- error = copyin(s->wbuf, buf, s->wcount);
- if (error)
- break;
- error = smbus_error(smbus_trans(parent, s->slave, s->cmd,
- s->op, buf, s->wcount, buf, s->rcount, &s->rcount));
- if (error == 0)
- error = copyout(buf, s->rbuf, s->rcount);
- break;
default:
error = ENOTTY;
}
diff --git a/sys/dev/smbus/smb.h b/sys/dev/smbus/smb.h
index fec2d67..b766a65 100644
--- a/sys/dev/smbus/smb.h
+++ b/sys/dev/smbus/smb.h
@@ -54,11 +54,8 @@ struct smbcmd {
/*
* SMBus spec 2.0 says block transfers may be at most 32 bytes.
- * We use SMBus for i2c as well, make the size limit something more
- * reasonable. Keep in mind that a char buf array is declared on the
- * kernel stack.
*/
-#define SMB_MAXBLOCKSIZE 1024
+#define SMB_MAXBLOCKSIZE 32
#define SMB_QUICK_WRITE _IOW('i', 1, struct smbcmd)
#define SMB_QUICK_READ _IOW('i', 2, struct smbcmd)
@@ -71,6 +68,6 @@ struct smbcmd {
#define SMB_PCALL _IOWR('i', 9, struct smbcmd)
#define SMB_BWRITE _IOW('i', 10, struct smbcmd)
#define SMB_BREAD _IOWR('i', 11, struct smbcmd)
-#define SMB_TRANS _IOWR('i', 12, struct smbcmd)
+#define SMB_OLD_TRANS _IOWR('i', 12, struct smbcmd)
#endif
diff --git a/sys/dev/smbus/smbconf.h b/sys/dev/smbus/smbconf.h
index 2c120c1..ceb80ac 100644
--- a/sys/dev/smbus/smbconf.h
+++ b/sys/dev/smbus/smbconf.h
@@ -72,25 +72,6 @@
#define SMB_QREAD 0x1
/*
- * smbus transction op with pass-thru capabilities
- *
- * This smbus function is capable of doing a smbus command transaction
- * (read or write), and can be flagged to not issue the 'cmd' and/or
- * issue or expect a count field as well as flagged for chaining (no STOP),
- * which gives it an i2c pass-through capability.
- *
- * NOSTOP- Caller chaining transactions, do not issue STOP
- * NOCMD- Do not transmit the command field
- * NOCNT- Do not transmit (wr) or expect (rd) the count field
- */
-#define SMB_TRANS_NOSTOP 0x0001 /* do not send STOP at end */
-#define SMB_TRANS_NOCMD 0x0002 /* ignore cmd field (do not tx) */
-#define SMB_TRANS_NOCNT 0x0004 /* do not tx or rx count field */
-#define SMB_TRANS_7BIT 0x0008 /* change address mode to 7-bit */
-#define SMB_TRANS_10BIT 0x0010 /* change address mode to 10-bit */
-#define SMB_TRANS_NOREPORT 0x0020 /* do not report errors */
-
-/*
* ivars codes
*/
enum smbus_ivars {
diff --git a/sys/dev/smbus/smbus_if.m b/sys/dev/smbus/smbus_if.m
index 6a5acf5..d969e25 100644
--- a/sys/dev/smbus/smbus_if.m
+++ b/sys/dev/smbus/smbus_if.m
@@ -149,20 +149,3 @@ METHOD int bread {
u_char *count;
char *buf;
};
-
-#
-# SMB roll-up transaction with flags that also allow it to be
-# used for (mostly) i2c pass-through and with 10-bit addresses.
-# This function can be used to roll-up all of the above functions.
-#
-METHOD int trans {
- device_t dev;
- int slave;
- char cmd;
- int op;
- char *wbuf;
- int wcount;
- char *rbuf;
- int rcount;
- int *actualp;
-};
OpenPOWER on IntegriCloud