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)
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to