Re: [PATCH] 2.5.5-pre1 IDE cleanup 9

Martin Dalecki
2002-02-22T14:17:25Z

Vojtech Pavlik wrote:
> On Fri, Feb 22, 2002 at 02:45:32PM +0100, Martin Dalecki wrote:
>
>
>>See above that is *not* the proper interface for implementation choice,
>>which is *user* policy anyway and can be handled fine by the
>>existing generic module interface infrastructure.
>>
>>For the sake of modularization. I have already at home a version
>>of ide-pci.c, where the signatures of chipset initialization
>>source code modules match the singature of a normal pci device
>>initialization hook. This should enable it to make them true modules
>>RSN.
>>
>
> If you can, please send this to me - I'd like to take a look.

Will do soon. But now I don't have it at hand, it's on my home system
unfortunately and I would like to finish some other minor things there
as well. I mean basically the macro games showing that somebody didn't
understand C pointer semantics found at places like:

#ifdef CONFIG_BLK_DEV_ALI15X3
extern unsigned int pci_init_ali15x3(struct pci_dev *, const char *);
...
#define PCI_ALI15X3 &pci_init_ali15x3
#else
...
#define PCI_ALI15X3 NULL
#endif

This should rather look like:

#ifdef CONFIG_BLK_DEV_ALI15X3
extern unsigned int pci_init_ali15x3(struct pci_dev *);
#else
#define pci_init_ali15x3 NULL
#endif

And be replaces entierly by register_chipset(...) blah blah or
therlike ;-) as well as module initialization lists.

>>The chipset drivers will register lists of PCI-id's they can handle
>>instead of the single only global list found in ide-pci.c.
>>
>
> I think it'd be even better if the chipset drivers did the probing
> themselves, and once they find the IDE device, they can register it with
> the IDE core. Same as all the other subsystem do this.

Well the lists are needed for quirk handling in the ide-pci.c code.
But if it turns out to be possible - I'm all for it.