Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Jul 2005 21:09:41 -0700
From:      Nate Lawson <nate@root.org>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        freebsd-current@freebsd.org, harrycoin@qconline.com
Subject:   Re: mss.c pcm fix to ' attach returned 6 ' load failure for v5.x acpi and up
Message-ID:  <42D9DA05.1020806@root.org>
In-Reply-To: <20050716.131701.124866666.imp@bsdimp.com>
References:  <20050716.113059.82101301.imp@bsdimp.com> <4.3.2.7.2.20050716124022.01f08460@mail.qconline.com> <20050716.125824.48530425.imp@bsdimp.com> <20050716.131701.124866666.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
M. Warner Losh wrote:
> <the refs are wrong for this reply>
> Nate writes:
> 
>>I really think the driver is broken and the API is fine for this.  I 
>>don't like the hack of returning a random CID for checks against the 
>>HID.  Drivers down the road may come to rely on this and then every BIOS 
>>that has a different order for CIDs becomes a potential breakage point.
> 
> 
> They alredy do rely on this.  When they support pnp, they call the
> ISA_PNP_PROBE routine.  When they don't then your observation doesn't
> matter because the order of the IDs doesn't matter: their non-zeroness
> does.
> 
> 
>>Drivers should not rely on isa_get_logicalid() to determine a boolean 
>>"is PNP?"
> 
> 
> Actually, that's the interface.  We have to follow it, even if you
> think it is stupid.  It is how we do things.  When we don't have a
> logicalid, we return 0.  When drivers don't support pnp devices, it
> uses the existance of a non-zero pnpid to know the device isn't for
> them.  It has been this way since 3.0.
> 
> Warner

Rather than John's addition of returning an arbitrary CID, can we return 
~0 or some other obviously invalid HID so that drivers don't start 
depending on the order of CIDs?

-- 
Nate



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