Date: Wed, 23 Jul 2008 23:21:42 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: marius@alchemy.franken.de Cc: marcel@freebsd.org, perforce@freebsd.org Subject: Re: PERFORCE change 144842 for review Message-ID: <20080723.232142.72462054.imp@bsdimp.com> In-Reply-To: <20080713122907.GA63008@alchemy.franken.de> References: <200807071855.m67ItHQp084707@repoman.freebsd.org> <20080713122907.GA63008@alchemy.franken.de>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20080713122907.GA63008@alchemy.franken.de>
Marius Strobl <marius@alchemy.franken.de> writes:
: On Mon, Jul 07, 2008 at 06:55:17PM +0000, Marcel Moolenaar wrote:
: > http://perforce.freebsd.org/chv.cgi?CH=144842
: >
: > Change 144842 by marcel@marcel_xcllnt on 2008/07/07 18:55:11
: >
: > ISA_PNP_PROBE() can also return ENOENT.
: > So, assume a match when the error is 0, not != ENXIO.
: >
: > Affected files ...
: >
: > .. //depot/projects/uart/dev/uart/uart_bus_isa.c#13 edit
: >
: > Differences ...
: >
: > ==== //depot/projects/uart/dev/uart/uart_bus_isa.c#13 (text+ko) ====
: >
: > @@ -170,7 +170,7 @@
: > sc = device_get_softc(dev);
: >
: > /* Probe PnP _and_ non-PnP ns8250 here. */
: > - if (ISA_PNP_PROBE(parent, dev, isa_ns8250_ids) != ENXIO) {
: > + if (ISA_PNP_PROBE(parent, dev, isa_ns8250_ids) == 0) {
: > sc->sc_class = &uart_ns8250_class;
: > return (uart_bus_probe(dev, 0, 0, 0, 0));
: > }
:
: Unfortunately, this now no longer probes non-PnP ns8250. You'll
: probably need something like the following to actually probe both:
: if (ISA_PNP_PROBE(parent, dev, isa_ns8250_ids) == 0 ||
: isa_get_vendorid(dev) == 0)
Or to save the error like ep does:
int error = 0;
/* Check isapnp ids */
error = ISA_PNP_PROBE(device_get_parent(dev), dev, ep_ids);
/* If the card had a PnP ID that didn't match any we know about */
if (error == ENXIO)
return (error);
/* If we had some other problem. */
if (!(error == 0 || error == ENOENT))
return (error);
...
Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080723.232142.72462054.imp>
