Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Jul 2019 14:59:40 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r350030 - stable/12/sys/dev/iicbus
Message-ID:  <201907161459.x6GExeES077120@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avg
Date: Tue Jul 16 14:59:39 2019
New Revision: 350030
URL: https://svnweb.freebsd.org/changeset/base/350030

Log:
  MFC r348355: revert r273728 and parts of r306589, iicbus no-stop by default feature
  
  After r349224 the only consumer of that broken code is gone.

Modified:
  stable/12/sys/dev/iicbus/iicbus.c
  stable/12/sys/dev/iicbus/iicbus.h
  stable/12/sys/dev/iicbus/iiconf.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/dev/iicbus/iicbus.c
==============================================================================
--- stable/12/sys/dev/iicbus/iicbus.c	Tue Jul 16 14:40:49 2019	(r350029)
+++ stable/12/sys/dev/iicbus/iicbus.c	Tue Jul 16 14:59:39 2019	(r350030)
@@ -194,9 +194,6 @@ iicbus_read_ivar(device_t bus, device_t child, int whi
 	case IICBUS_IVAR_ADDR:
 		*result = devi->addr;
 		break;
-	case IICBUS_IVAR_NOSTOP:
-		*result = devi->nostop;
-		break;
 	}
 	return (0);
 }
@@ -213,9 +210,6 @@ iicbus_write_ivar(device_t bus, device_t child, int wh
 		if (devi->addr != 0)
 			return (EINVAL);
 		devi->addr = value;
-	case IICBUS_IVAR_NOSTOP:
-		devi->nostop = value;
-		break;
 	}
 	return (0);
 }

Modified: stable/12/sys/dev/iicbus/iicbus.h
==============================================================================
--- stable/12/sys/dev/iicbus/iicbus.h	Tue Jul 16 14:40:49 2019	(r350029)
+++ stable/12/sys/dev/iicbus/iicbus.h	Tue Jul 16 14:59:39 2019	(r350030)
@@ -54,19 +54,16 @@ struct iicbus_ivar
 {
 	uint32_t	addr;
 	struct resource_list	rl;
-	bool		nostop;
 };
 
 enum {
-	IICBUS_IVAR_ADDR,		/* Address or base address */
-	IICBUS_IVAR_NOSTOP,		/* nostop defaults */
+	IICBUS_IVAR_ADDR		/* Address or base address */
 };
 
 #define IICBUS_ACCESSOR(A, B, T)					\
 	__BUS_ACCESSOR(iicbus, A, IICBUS, B, T)
 	
 IICBUS_ACCESSOR(addr,		ADDR,		uint32_t)
-IICBUS_ACCESSOR(nostop,		NOSTOP,		bool)
 
 #define	IICBUS_LOCK(sc)			mtx_lock(&(sc)->lock)
 #define	IICBUS_UNLOCK(sc)      		mtx_unlock(&(sc)->lock)

Modified: stable/12/sys/dev/iicbus/iiconf.c
==============================================================================
--- stable/12/sys/dev/iicbus/iiconf.c	Tue Jul 16 14:40:49 2019	(r350029)
+++ stable/12/sys/dev/iicbus/iiconf.c	Tue Jul 16 14:59:39 2019	(r350030)
@@ -427,7 +427,7 @@ iicbus_transfer_gen(device_t dev, struct iic_msg *msgs
 {
 	int i, error, lenread, lenwrote, nkid, rpstart, addr;
 	device_t *children, bus;
-	bool nostop, started;
+	bool started;
 
 	if ((error = device_get_children(dev, &children, &nkid)) != 0)
 		return (IIC_ERESOURCE);
@@ -438,7 +438,6 @@ iicbus_transfer_gen(device_t dev, struct iic_msg *msgs
 	bus = children[0];
 	rpstart = 0;
 	free(children, M_TEMP);
-	nostop = iicbus_get_nostop(dev);
 	started = false;
 	for (i = 0, error = 0; i < nmsgs && error == 0; i++) {
 		addr = msgs[i].slave;
@@ -466,12 +465,11 @@ iicbus_transfer_gen(device_t dev, struct iic_msg *msgs
 		if (error != 0)
 			break;
 
-		if ((msgs[i].flags & IIC_M_NOSTOP) != 0 ||
-		    (nostop && i + 1 < nmsgs)) {
-			rpstart = 1;	/* Next message gets repeated start */
-		} else {
+		if (!(msgs[i].flags & IIC_M_NOSTOP)) {
 			rpstart = 0;
 			iicbus_stop(bus);
+		} else {
+			rpstart = 1;	/* Next message gets repeated start */
 		}
 	}
 	if (error != 0 && started)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201907161459.x6GExeES077120>