Re: modules.pnpmap output support

"Andrey Borzenkov"
2003-11-17T15:09:15Z

> >
> > Oh, BTW, it reminds me - file2alias prints hex in upper
> > case while both sysfs and hotplug present them in lower case
> > (for sure for USB and PCI, and for PNP entries detected by
> > PNP BIOS). Should not we unify representation?
>
> hmm, file2alias uses lower letters as the identifier (seprator?), so i
> think simply using lower hex letter will be confusing. wouldn't it be
> better to have an explicit delimter character like ':' (or '/' or
> whatever) ?
>

those are not meant to be end-user visible anyway so no I do not
expect any confustion. Nor do I suggest making them lower case -
we could fix all occurences in kernel instead :)

if you want to use separator, = is probably better. v=XXXp=YYY
>
> at first i'll try to add the support of old isapnp format for
> compatibility, so that old programs can work as they are.
>

??? old programs do not know about modules.alias at all. Or I
do not understand what you mean.

> the file2alias format of (isa) pnp devices will need variable number
> of items, since a driver may require multiple ids.
> for example, snd-cs4236 driver supports the cards with three ids like
> CSCe825:CSC0100:CSC0110
> and four ids like
> CSCd937:CSC0000:CSC0010:CSC0003
> in each case, a matching card must include all ids listed there.
>

do you mean that card will have to have all of these IDs to match?
I can't get it reading sources. When driver matches card against
card driver it is apparently using only main IDs, not logical
device IDs:

driver/pnp/card.c:match_card()

static const struct pnp_card_device_id * match_card(struct pnp_card_driver * drv, struct pnp_card * card)
{
const struct pnp_card_device_id * drv_id = drv->id_table;
while (*drv_id->id){
if (compare_pnp_id(card->id,drv_id->id))
return drv_id;
drv_id++;
}
return NULL;
}

where are drv_id->devs used?

because the point of modules.alias is to follow the same logic (to
determine which driver to load), where do ->devs fit in?

> well, i'm not sure which identifier (separator) letter in which style
> should be used. something like
> pnp:idXXXxxxxd0XXXxxxxd1XXXXxxxx

leave it as is, it is just fine actually. Assuming you really need
those extra IDs at all.

What application do you have in mind? I aim at hotplug, i.e.
(isa|bios)pnp after getting list of devices would call hotplug to load
drivers. So i need the same logic as in driver matching and this
does not need extra IDs.

regards

-andrey