Date: Wed, 8 Jan 2020 22:45:32 +0000 (UTC) From: Ian Lepore <ian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356521 - head/sys/dev/iicbus/mux Message-ID: <202001082245.008MjWBY067263@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ian Date: Wed Jan 8 22:45:32 2020 New Revision: 356521 URL: https://svnweb.freebsd.org/changeset/base/356521 Log: Init sc->maxbus to -1, not 0. It represents the highest array index that has a non-NULL child bus stored in it, so the "none" value can't be zero since that's a valid array index. Also, when adding all possible buses because there is no specific per-bus config, there's no need to reset sc->maxbus on each loop iteration, it can be set once after the loop. Modified: head/sys/dev/iicbus/mux/iicmux.c Modified: head/sys/dev/iicbus/mux/iicmux.c ============================================================================== --- head/sys/dev/iicbus/mux/iicmux.c Wed Jan 8 22:16:26 2020 (r356520) +++ head/sys/dev/iicbus/mux/iicmux.c Wed Jan 8 22:45:32 2020 (r356521) @@ -249,6 +249,7 @@ iicmux_attach(device_t dev, device_t busdev, int numbu sc->dev = dev; sc->busdev = busdev; + sc->maxbus = -1; sc->numbuses = numbuses; SYSCTL_ADD_UINT(device_get_sysctl_ctx(sc->dev), @@ -262,7 +263,8 @@ iicmux_attach(device_t dev, device_t busdev, int numbu #ifdef FDT phandle_t child, node, parent; - pcell_t idx; + pcell_t reg; + int idx; /* * Find our FDT node. Child nodes within our node will become our @@ -285,11 +287,12 @@ iicmux_attach(device_t dev, device_t busdev, int numbu * Attach the children represented in the device tree. */ for (child = OF_child(parent); child != 0; child = OF_peer(child)) { - if (OF_getencprop(child, "reg", &idx, sizeof(idx)) == -1) { + if (OF_getencprop(child, "reg", ®, sizeof(reg)) == -1) { device_printf(dev, "child bus missing required 'reg' property\n"); continue; } + idx = (int)reg; if (idx >= sc->numbuses) { device_printf(dev, "child bus 'reg' property %d exceeds the number " @@ -314,9 +317,8 @@ iicmux_attach(device_t dev, device_t busdev, int numbu for (i = 0; i < sc->numbuses; ++i) { sc->childdevs[i] = device_add_child(sc->dev, "iicbus", -1); - if (sc->maxbus < i) - sc->maxbus = i; } + sc->maxbus = sc->numbuses - 1; return (0); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001082245.008MjWBY067263>