Mark Brown <broonie@xxxxxxxxxx> 於 2020年8月20日 週四 下午7:45寫道: > > On Thu, Aug 20, 2020 at 03:53:41PM +0800, Gene Chen wrote: > > > + mrd->regmap = dev_get_regmap(pdev->dev.parent, NULL); > > + if (!mrd->regmap) { > > + dev_err(&pdev->dev, "Failed to get parent regmap\n"); > > + return -ENODEV; > > + } > > > +static const struct of_device_id __maybe_unused mt6360_regulator_of_id[] = { > > + { .compatible = "mediatek,mt6360-regulator", }, > > + {}, > > +}; > > +MODULE_DEVICE_TABLE(of, mt6360_regulator_of_id); > > This device only exists in the context of a single parent device, there > should be no need for a compatible string here - this is just a detail > of how Linux does things. The MFD should just instntiate the platform > device. Trying to autoload module without of_id_table will cause run-time error: ueventd: LoadWithAliases was unable to load of:NregulatorT(null)Cmediatek,mt6360-regulator https://lore.kernel.org/patchwork/patch/726691/ According to this patch, autoload can't load module which doesn't include add id_table or of_id_table in module.alias So I need keep of_if_table for auto load success