Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 03 Mar 2009 08:48:42 -0800
From:      Marcel Moolenaar <xcllnt@mac.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        FreeBSD Hackers <freebsd-hackers@freebsd.org>, Navdeep Parhar <nparhar@gmail.com>
Subject:   Re: puc support for a generic card (patch attached)
Message-ID:  <C428B1A1-7F4F-4DD2-8BBD-C88CA7B659AE@mac.com>
In-Reply-To: <200903030915.43037.jhb@freebsd.org>
References:  <d04e16b70903021305u69138cfav8b6838c7199a60ed@mail.gmail.com> <200903030915.43037.jhb@freebsd.org>

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

On Mar 3, 2009, at 6:15 AM, John Baldwin wrote:

>> diff -r 025cb00d19d7 sys/dev/puc/puc.c
>> --- a/sys/dev/puc/puc.c	Sat Feb 28 12:42:37 2009 -0800
>> +++ b/sys/dev/puc/puc.c	Mon Mar 02 12:21:07 2009 -0800
>> @@ -440,9 +440,6 @@
>> 	sc->sc_dev = dev;
>> 	sc->sc_cfg = cfg;
>>
>> -	/* We don't attach to single-port serial cards. */
>> -	if (cfg->ports == PUC_PORT_1S || cfg->ports == PUC_PORT_1P)
>> -		return (EDOOFUS);
>
> FWIW, the traditional reason for this is that we made the sio/uart  
> or ppc
> drivers claim single port devices directly and only use puc for  
> multiple-port
> cards.  I'm not sure if that should still be the case or not.   
> Marcel, do you
> have an opinion?

Yes :-)

I explicitly added the test with that particular error code
to make it absolutely clear that puc(4) is not the driver
for single port cards. The reason being that it's pointless.

There are 2 things that puc(4) facilitates in: resource
assignment and interrupt handling. For single port cards
there's nothing to distribute nor is there any interrupt
sharing. In other words: there's no value that puc(4) adds.
As such, uart(4) and ppc(4) can attach directly to those
cards and puc(4) does not have to be involved.

BTW: Traditionally puc(4) was used to attach even to single
port cards. With the puc(4) rewrite I changed that, because
it was really a mixed bag. Some single-port cards were known
to puc(4) others to uart(4)/sio(4) or ppc(4). That typically
leads to confusion given that puc(4) is (still) not in GENERIC.
(i.e. why is this UART attached, but that one isn't, they're
both single port?)

So, please do not apply the patch and instead add the IDs to
sys/dev/uart/uart_bus_pci.c...

FYI,

-- 
Marcel Moolenaar
xcllnt@mac.com






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C428B1A1-7F4F-4DD2-8BBD-C88CA7B659AE>