svn commit: r310065 - stable/11/sys/dev/smbus
Andriy Gapon
avg at FreeBSD.org
Wed Dec 14 16:05:49 UTC 2016
Author: avg
Date: Wed Dec 14 16:05:48 2016
New Revision: 310065
URL: https://svnweb.freebsd.org/changeset/base/310065
Log:
MFC r308527: smb: fix SMB_READB, SMB_READW, SMB_PCALL to work as documented
Modified:
stable/11/sys/dev/smbus/smb.c
stable/11/sys/dev/smbus/smb.h
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/dev/smbus/smb.c
==============================================================================
--- stable/11/sys/dev/smbus/smb.c Wed Dec 14 16:04:04 2016 (r310064)
+++ stable/11/sys/dev/smbus/smb.c Wed Dec 14 16:05:48 2016 (r310065)
@@ -41,7 +41,9 @@
#include "smbus_if.h"
-#define BUFSIZE 1024
+#define SMB_OLD_READB _IOW('i', 7, struct smbcmd)
+#define SMB_OLD_READW _IOW('i', 8, struct smbcmd)
+#define SMB_OLD_PCALL _IOW('i', 9, struct smbcmd)
struct smb_softc {
device_t sc_dev;
@@ -224,7 +226,9 @@ smbioctl(struct cdev *dev, u_long cmd, c
s->cmd, s->wdata.word));
break;
+ case SMB_OLD_READB:
case SMB_READB:
+ /* NB: for SMB_OLD_READB the read data goes to rbuf only. */
error = smbus_error(smbus_readb(parent, s->slave, s->cmd,
&s->rdata.byte));
if (error)
@@ -235,7 +239,9 @@ smbioctl(struct cdev *dev, u_long cmd, c
}
break;
+ case SMB_OLD_READW:
case SMB_READW:
+ /* NB: for SMB_OLD_READW the read data goes to rbuf only. */
error = smbus_error(smbus_readw(parent, s->slave, s->cmd,
&s->rdata.word));
if (error)
@@ -248,7 +254,9 @@ smbioctl(struct cdev *dev, u_long cmd, c
}
break;
+ case SMB_OLD_PCALL:
case SMB_PCALL:
+ /* NB: for SMB_OLD_PCALL the read data goes to rbuf only. */
error = smbus_error(smbus_pcall(parent, s->slave, s->cmd,
s->wdata.word, &s->rdata.word));
if (error)
Modified: stable/11/sys/dev/smbus/smb.h
==============================================================================
--- stable/11/sys/dev/smbus/smb.h Wed Dec 14 16:04:04 2016 (r310064)
+++ stable/11/sys/dev/smbus/smb.h Wed Dec 14 16:05:48 2016 (r310065)
@@ -66,11 +66,10 @@ struct smbcmd {
#define SMB_RECVB _IOWR('i', 4, struct smbcmd)
#define SMB_WRITEB _IOW('i', 5, struct smbcmd)
#define SMB_WRITEW _IOW('i', 6, struct smbcmd)
-#define SMB_READB _IOW('i', 7, struct smbcmd)
-#define SMB_READW _IOW('i', 8, struct smbcmd)
-#define SMB_PCALL _IOW('i', 9, struct smbcmd)
+#define SMB_READB _IOWR('i', 7, struct smbcmd)
+#define SMB_READW _IOWR('i', 8, struct smbcmd)
+#define SMB_PCALL _IOWR('i', 9, struct smbcmd)
#define SMB_BWRITE _IOW('i', 10, struct smbcmd)
-#define SMB_OLD_BREAD _IOW('i', 11, struct smbcmd)
#define SMB_BREAD _IOWR('i', 11, struct smbcmd)
#define SMB_TRANS _IOWR('i', 12, struct smbcmd)
More information about the svn-src-all
mailing list