svn commit: r310520 - in stable/11: share/man/man4 sys/dev/smbus

Andriy Gapon avg at FreeBSD.org
Sat Dec 24 14:44:26 UTC 2016


Author: avg
Date: Sat Dec 24 14:44:25 2016
New Revision: 310520
URL: https://svnweb.freebsd.org/changeset/base/310520

Log:
  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.

Modified:
  stable/11/share/man/man4/smb.4
  stable/11/sys/dev/smbus/smb.c
  stable/11/sys/dev/smbus/smb.h
  stable/11/sys/dev/smbus/smbconf.h
  stable/11/sys/dev/smbus/smbus_if.m
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/share/man/man4/smb.4
==============================================================================
--- stable/11/share/man/man4/smb.4	Sat Dec 24 14:41:11 2016	(r310519)
+++ stable/11/share/man/man4/smb.4	Sat Dec 24 14:44:25 2016	(r310520)
@@ -162,33 +162,6 @@ to the device, then reads
 bytes of data that from the device.
 This data is returned in the buffer pointed to by
 .Fa rbuf .
-.It Dv SMB_TRANS Ta
-.Em Trans
-sends an 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 utilized to roll up all of the above functions.
-It first sends the byte from
-.Fa cmd
-to the device, followed by
-.Fa wcount
-bytes of data that are taken from the buffer pointed to by
-.Fa wbuf ,
-then reads
-.Fa rcount
-bytes of data that from the device.
-This data is returned in the buffer pointed to by
-.Fa rbuf .
-.Pp
-The following flags are allowed in
-.Fa op :
-.Pp
-.Bd -literal -compact
-SMB_TRANS_NOSTOP  Do not send STOP at end
-SMB_TRANS_NOCMD   Ignore cmd field (do not tx)
-SMB_TRANS_NOCNT   Do not tx or rx count field
-SMB_TRANS_7BIT    Change address mode to 7-bit
-SMB_TRANS_10BIT   Change address mode to 10-bit
-.Ed
 .El
 .Pp
 The

Modified: stable/11/sys/dev/smbus/smb.c
==============================================================================
--- stable/11/sys/dev/smbus/smb.c	Sat Dec 24 14:41:11 2016	(r310519)
+++ stable/11/sys/dev/smbus/smb.c	Sat Dec 24 14:44:25 2016	(r310520)
@@ -301,24 +301,6 @@ smbioctl(struct cdev *dev, u_long cmd, c
 		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;
 	}

Modified: stable/11/sys/dev/smbus/smb.h
==============================================================================
--- stable/11/sys/dev/smbus/smb.h	Sat Dec 24 14:41:11 2016	(r310519)
+++ stable/11/sys/dev/smbus/smb.h	Sat Dec 24 14:44:25 2016	(r310520)
@@ -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

Modified: stable/11/sys/dev/smbus/smbconf.h
==============================================================================
--- stable/11/sys/dev/smbus/smbconf.h	Sat Dec 24 14:41:11 2016	(r310519)
+++ stable/11/sys/dev/smbus/smbconf.h	Sat Dec 24 14:44:25 2016	(r310520)
@@ -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 {

Modified: stable/11/sys/dev/smbus/smbus_if.m
==============================================================================
--- stable/11/sys/dev/smbus/smbus_if.m	Sat Dec 24 14:41:11 2016	(r310519)
+++ stable/11/sys/dev/smbus/smbus_if.m	Sat Dec 24 14:44:25 2016	(r310520)
@@ -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;
-};


More information about the svn-src-all mailing list