> There is another way to at lest use the pci tables without going for
> the full hotplug API.
>
> Just replace code like:
>
> if ((dev_avm = pci_find_device(PCI_VENDOR_ID_AVM,
> PCI_DEVICE_ID_AVM_A1, dev_avm))) {
> /* initialize card */
> }
>
> with something like:
>
>
> pci_for_each_dev(dev_avm) {
> if (pci_match_device(avm_pci_tbl, dev_avm)) {
> /* initialize card */
> }
> }
>
> This will need per-card instead of the current global hisax pci tables,
> but I think it's a good cleanup.
Thanks for the suggestion.
It looks like a good idea, but I don't think it'll actually work, though.
First, note that dev_avm is static in the upper code fragment, because
this probe routine will be called multiple times and is supposed to only
initialize one card at a time.
Secondly, having per-card type pci tables doesn't mix well with
MODULE_DEVICE_TABLE AFAICS, because that assumes that we can only have one
device table per module.
> > I'll break this compatibility in 2.5, though.
>
> Nice! Does this mean the hisax subdrivers will finally be able to be
> individual modules? Are there also other ISDN changes planned, e.g.
> going from the global cli/sti to better locking schemes?
Yes, hisax.o will only be the protocol layer. The actual hardware drivers
will be modules of their own, and use the new infrastructure. Code for
this already consists, and I have some new drivers pending, which will use
this approach in 2.4 already. I won't change the existing drivers in 2.4
for obvious reasons, though. Of course these new drivers are also supposed
to use proper SMP locking.
There is also the plan to declare the old "ISDN link layer" (isdn.o)
obsolete and move to a CAPI (see www.capi.org) based system. This should
get us rid of the old messy and racy cruft in drivers/isdn.
--Kai
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/