>> On Thu, 2020-04-16 at 08:35 -0700, Wang Wenhu wrote: >> > +#define UIO_INFO_VER "devicetree,pseudo" >> >> What does this mean? Changing a number into a non-obvious string (Why >> "pseudo"? Why does the UIO user care that the config came from the device >> tree?) just to avoid setting off Greg's version number autoresponse isn't >> really helping anything. >> >> > +static const struct of_device_id uio_mpc85xx_l2ctlr_of_match[] = { >> > + { .compatible = "uio,mpc85xx-cache-sram", }, > >Form is <vendor>,<device> and "uio" is not a vendor (and never will be). > Should have been something like "fsl,mpc85xx-cache-sram-uio", and if it is to be defined with module parameters, this would be user defined. Anyway, <vendor>,<device> should always be used.
>> > + {}, >> > +}; >> > + >> > +static struct platform_driver uio_fsl_85xx_cache_sram = { >> > + .probe = uio_fsl_85xx_cache_sram_probe, >> > + .remove = uio_fsl_85xx_cache_sram_remove, >> > + .driver = { >> > + .name = DRIVER_NAME, >> > + .owner = THIS_MODULE, >> > + .of_match_table = uio_mpc85xx_l2ctlr_of_match, >> > + }, >> > +}; >> >> Greg's comment notwithstanding, I really don't think this belongs in the >> device tree (and if I do get overruled on that point, it at least needs a >> binding document). Let me try to come up with a patch for dynamic >> allocation. > >Agreed. "UIO" bindings have long been rejected. > Sounds it is. And does the modification below fit well? --- -static const struct of_device_id uio_mpc85xx_l2ctlr_of_match[] = { - { .compatible = "uio,mpc85xx-cache-sram", }, - {}, +#ifdef CONFIG_OF +static struct of_device_id uio_fsl_85xx_cache_sram_of_match[] = { + { /* This is filled with module_parm */ }, + { /* Sentinel */ }, }; +MODULE_DEVICE_TABLE(of, uio_fsl_85xx_cache_sram_of_match); +module_param_string(of_id, uio_fsl_85xx_cache_sram_of_match[0].compatible, + sizeof(uio_fsl_85xx_cache_sram_of_match[0].compatible), 0); +MODULE_PARM_DESC(of_id, "platform device id to be handled by cache-sram-uio"); +#endif static struct platform_driver uio_fsl_85xx_cache_sram = { .probe = uio_fsl_85xx_cache_sram_probe, .remove = uio_fsl_85xx_cache_sram_remove, .driver = { .name = DRIVER_NAME, - .owner = THIS_MODULE, - .of_match_table = uio_mpc85xx_l2ctlr_of_match, + .of_match_table = of_match_ptr(uio_fsl_85xx_cache_sram_of_match), }, }; Regards, Wenhu