Hi Max, On Thu, Jul 25, 2019 at 8:08 PM Max Staudt <max@xxxxxxxxx> wrote: > Up until now, the pata_buddha driver would only check for cards on > initcall time. Now, the kernel will call its probe function as soon > as a compatible card is detected. > > v3: Clean up devm_*, implement device removal. > > v2: Rename 'zdev' to 'z' to make the patch easy to analyse with > git diff --ignore-space-change > > Tested-by: Max Staudt <max@xxxxxxxxx> > Signed-off-by: Max Staudt <max@xxxxxxxxx> Sorry, I only noticed v3 after I replied to v2. My comments are still valid, though. > --- a/drivers/ata/pata_buddha.c > +++ b/drivers/ata/pata_buddha.c > +static const struct zorro_device_id pata_buddha_zorro_tbl[] = { > + { ZORRO_PROD_INDIVIDUAL_COMPUTERS_BUDDHA, }, > + { ZORRO_PROD_INDIVIDUAL_COMPUTERS_CATWEASEL, }, > + { ZORRO_PROD_INDIVIDUAL_COMPUTERS_X_SURF, }, drivers/net/ethernet/8390/zorro8390.c also matches against ZORRO_PROD_INDIVIDUAL_COMPUTERS_X_SURF, while only a single zorro_driver can bind to it. Hence you can no longer use both IDE and Ethernet on X-Surf :-( Before, this worked, as the IDE driver just walked the list of devices. I think the proper solution is to create MFD devices for Zorro boards with multiple functions, and bind against the individual MFD cells. That would also get rid of the nr_ports loop in the IDE driver, as each instance would have its own cell. I played with this a long time ago, but never finished it. It worked fine for my Ariadne Ethernet card. Last state at https://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k.git/log/?h=zorro-mfd Oh, seems I wrote up most of this before in https://lore.kernel.org/lkml/CAMuHMdVe1KgQWYZ_BfBkSo3zr0c+TenLMEw3T=BLEQNoZ6ex7A@xxxxxxxxxxxxxx/ > + { 0 } > +}; Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds