Module Name: src
Committed By: thorpej
Date: Wed May 9 02:53:00 UTC 2018
Modified Files:
src/sys/arch/arm/broadcom: bcm2835_bsc.c
src/sys/arch/arm/nvidia: tegra_i2c.c
src/sys/arch/arm/samsung: exynos_i2c.c
src/sys/arch/arm/sunxi: sunxi_rsb.c sunxi_twi.c
Log Message:
If we don't get informed (via device properties) of child I2C devices,
don't assign an empty array to iba.iba_child_devices, as it will prevent
indirect configuration of the I2C bus from occurring.
Tested on Raspberry Pi (bcm2835), identical logical fix replicated
(and compile-tested) elsewhere.
PR port-arm/53171
To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/broadcom/bcm2835_bsc.c
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra_i2c.c
cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/samsung/exynos_i2c.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/sunxi/sunxi_rsb.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/sunxi/sunxi_twi.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/broadcom/bcm2835_bsc.c
diff -u src/sys/arch/arm/broadcom/bcm2835_bsc.c:1.10 src/sys/arch/arm/broadcom/bcm2835_bsc.c:1.11
--- src/sys/arch/arm/broadcom/bcm2835_bsc.c:1.10 Sat Mar 3 16:03:38 2018
+++ src/sys/arch/arm/broadcom/bcm2835_bsc.c Wed May 9 02:53:00 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: bcm2835_bsc.c,v 1.10 2018/03/03 16:03:38 skrll Exp $ */
+/* $NetBSD: bcm2835_bsc.c,v 1.11 2018/05/09 02:53:00 thorpej Exp $ */
/*
* Copyright (c) 2012 Jonathan A. Kollasch
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bcm2835_bsc.c,v 1.10 2018/03/03 16:03:38 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bcm2835_bsc.c,v 1.11 2018/05/09 02:53:00 thorpej Exp $");
#if defined(_KERNEL_OPT)
#include "opt_kernhist.h"
@@ -183,8 +183,6 @@ bsciic_attach(device_t parent, device_t
iba.iba_child_devices = prop_dictionary_get(devs, "i2c-child-devices");
if (iba.iba_child_devices)
prop_object_retain(iba.iba_child_devices);
- else
- iba.iba_child_devices = prop_array_create();
prop_object_release(devs);
config_found_ia(self, "i2cbus", &iba, iicbus_print);
Index: src/sys/arch/arm/nvidia/tegra_i2c.c
diff -u src/sys/arch/arm/nvidia/tegra_i2c.c:1.16 src/sys/arch/arm/nvidia/tegra_i2c.c:1.17
--- src/sys/arch/arm/nvidia/tegra_i2c.c:1.16 Thu May 25 23:43:49 2017
+++ src/sys/arch/arm/nvidia/tegra_i2c.c Wed May 9 02:53:00 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: tegra_i2c.c,v 1.16 2017/05/25 23:43:49 jmcneill Exp $ */
+/* $NetBSD: tegra_i2c.c,v 1.17 2018/05/09 02:53:00 thorpej Exp $ */
/*-
* Copyright (c) 2015 Jared D. McNeill <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.16 2017/05/25 23:43:49 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tegra_i2c.c,v 1.17 2018/05/09 02:53:00 thorpej Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -199,11 +199,8 @@ tegra_i2c_attach(device_t parent, device
memset(&iba, 0, sizeof(iba));
iba.iba_tag = &sc->sc_ic;
iba.iba_child_devices = prop_dictionary_get(devs, "i2c-child-devices");
- if (iba.iba_child_devices != NULL) {
+ if (iba.iba_child_devices != NULL)
prop_object_retain(iba.iba_child_devices);
- } else {
- iba.iba_child_devices = prop_array_create();
- }
prop_object_release(devs);
sc->sc_i2cdev = config_found_ia(self, "i2cbus", &iba, iicbus_print);
Index: src/sys/arch/arm/samsung/exynos_i2c.c
diff -u src/sys/arch/arm/samsung/exynos_i2c.c:1.13 src/sys/arch/arm/samsung/exynos_i2c.c:1.14
--- src/sys/arch/arm/samsung/exynos_i2c.c:1.13 Sun Jul 2 18:27:45 2017
+++ src/sys/arch/arm/samsung/exynos_i2c.c Wed May 9 02:53:00 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: exynos_i2c.c,v 1.13 2017/07/02 18:27:45 jmcneill Exp $ */
+/* $NetBSD: exynos_i2c.c,v 1.14 2018/05/09 02:53:00 thorpej Exp $ */
/*
* Copyright (c) 2015 Jared D. McNeill <[email protected]>
@@ -31,7 +31,7 @@
#include "opt_arm_debug.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: exynos_i2c.c,v 1.13 2017/07/02 18:27:45 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: exynos_i2c.c,v 1.14 2018/05/09 02:53:00 thorpej Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -198,8 +198,6 @@ exynos_i2c_attach(device_t parent, devic
iba.iba_child_devices = prop_dictionary_get(devs, "i2c-child-devices");
if (iba.iba_child_devices != NULL)
prop_object_retain(iba.iba_child_devices);
- else
- iba.iba_child_devices = prop_array_create();
prop_object_release(devs);
sc->sc_i2cdev = config_found_ia(self, "i2cbus", &iba, iicbus_print);
Index: src/sys/arch/arm/sunxi/sunxi_rsb.c
diff -u src/sys/arch/arm/sunxi/sunxi_rsb.c:1.1 src/sys/arch/arm/sunxi/sunxi_rsb.c:1.2
--- src/sys/arch/arm/sunxi/sunxi_rsb.c:1.1 Sun Jul 2 18:06:45 2017
+++ src/sys/arch/arm/sunxi/sunxi_rsb.c Wed May 9 02:53:00 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_rsb.c,v 1.1 2017/07/02 18:06:45 jmcneill Exp $ */
+/* $NetBSD: sunxi_rsb.c,v 1.2 2018/05/09 02:53:00 thorpej Exp $ */
/*-
* Copyright (c) 2014-2017 Jared McNeill <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunxi_rsb.c,v 1.1 2017/07/02 18:06:45 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_rsb.c,v 1.2 2018/05/09 02:53:00 thorpej Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -220,8 +220,6 @@ sunxi_rsb_attach(device_t parent, device
iba.iba_child_devices = prop_dictionary_get(devs, "i2c-child-devices");
if (iba.iba_child_devices)
prop_object_retain(iba.iba_child_devices);
- else
- iba.iba_child_devices = prop_array_create();
prop_object_release(devs);
sc->sc_i2cdev = config_found_ia(self, "i2cbus", &iba, iicbus_print);
Index: src/sys/arch/arm/sunxi/sunxi_twi.c
diff -u src/sys/arch/arm/sunxi/sunxi_twi.c:1.8 src/sys/arch/arm/sunxi/sunxi_twi.c:1.9
--- src/sys/arch/arm/sunxi/sunxi_twi.c:1.8 Sat Dec 2 18:56:18 2017
+++ src/sys/arch/arm/sunxi/sunxi_twi.c Wed May 9 02:53:00 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_twi.c,v 1.8 2017/12/02 18:56:18 jmcneill Exp $ */
+/* $NetBSD: sunxi_twi.c,v 1.9 2018/05/09 02:53:00 thorpej Exp $ */
/*-
* Copyright (c) 2017 Jared McNeill <[email protected]>
@@ -33,7 +33,7 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunxi_twi.c,v 1.8 2017/12/02 18:56:18 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_twi.c,v 1.9 2018/05/09 02:53:00 thorpej Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -236,8 +236,6 @@ sunxi_twi_attach(device_t parent, device
iba.iba_child_devices = prop_dictionary_get(devs, "i2c-child-devices");
if (iba.iba_child_devices)
prop_object_retain(iba.iba_child_devices);
- else
- iba.iba_child_devices = prop_array_create();
prop_object_release(devs);
config_found_ia(self, "i2cbus", &iba, iicbus_print);