Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Mar 2014 08:26:39 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        Luiz Otavio O Souza <lists.br@gmail.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: [RFC] lm75 kernel driver and bsnmp module
Message-ID:  <4B0E494C-A289-435C-89AA-29DEB1A4EAD9@gmail.com>
In-Reply-To: <CAB=2f8wqTqQekBPRGdG%2BBqTn-yt1BX-3DW6K5HBt2jptc4g4-g@mail.gmail.com>
References:  <CAB=2f8wqTqQekBPRGdG%2BBqTn-yt1BX-3DW6K5HBt2jptc4g4-g@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Mar 17, 2014, at 8:11 AM, Luiz Otavio O Souza <lists.br@gmail.com> =
wrote:

> <lm75.diff>

+#ifdef FDT
+static struct ofw_compat_data compat_data[] =3D {
+	{ "freebsd,lm75",	HWTYPE_LM75 },
+	{ "freebsd,lm75a",	HWTYPE_LM75A },
+	{ NULL,			HWTYPE_NONE },
+};
+#endif

Is there a FDT standard here? It seems like they would fall under the
=93national,lm75=94 bindings that are defined in the =93standard=94 FDT =
spec. You
can find it listed in the =91device-tree/Bindings/i2c/trivial-devices.txt=92=
 file in
Linux, or in a similar location in the device-tree vendor tree in =
FreeBSD.

It isn=92t clear that both devices can=92t be handled with the same =
driver, since
the extra bits are supposed to be clear and so the extra if=92s here:

+	if (sc->sc_hwtype =3D=3D HWTYPE_LM75A) {
+		if (buf & LM75_0125C)
+			t +=3D 125;
+		if (buf & LM75_0250C)
+			t +=3D 250;
+	}
+	if (buf & LM75_0500C)
+		t +=3D 500;

which just leaves device type reporting. The only reason I mention is is =
that
Linux doesn=92t seem to differentiate the two at the FDT level.

+	sc->sc_hwtype =3D ofw_bus_search_compatible(dev, =
compat_data)->ocd_data;

I don=92t think that the NULL binding is guaranteed to work that way, so
I=92d suggest dropping the NULL line above and testing explicitly for =
NULL
here instead.

Finally, is pausing for hz on read/write errors the right thing to do? =
Seems like a very
long time...

Warner




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B0E494C-A289-435C-89AA-29DEB1A4EAD9>