Message ID | 1471510341-63926-2-git-send-email-finley.xiao@rock-chips.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Finlye Xiao <finley.xiao@rock-chips.com> writes: > From: Finley Xiao <finley.xiao@rock-chips.com> > > We will register a cpufreq notifier for adjusting opp's voltage, and it > need to fetch cpu's leakage from efuse in the notifier_call. so the efuse > driver should probe before cpufreq driver. > > Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com> Why can't this be handled with deferred probling? initcall ordering is a can of worms. Kevin
Am Donnerstag, 18. August 2016, 13:28:58 CEST schrieb Kevin Hilman: > Finlye Xiao <finley.xiao@rock-chips.com> writes: > > From: Finley Xiao <finley.xiao@rock-chips.com> > > > > We will register a cpufreq notifier for adjusting opp's voltage, and it > > need to fetch cpu's leakage from efuse in the notifier_call. so the efuse > > driver should probe before cpufreq driver. > > > > Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com> > > Why can't this be handled with deferred probling? initcall ordering is > a can of worms. I think the issue is less between efuse and avs driver, but more between avs driver and cpufreq. The avs driver aims to modify the opp table and thus wants to do that / register the notifier before cpufreq starts. And as there is no direct connection between cpufreq and the avs driver, making cpufreq defer probing is probably not really easy.
Heiko Stuebner <heiko@sntech.de> writes: > Am Donnerstag, 18. August 2016, 13:28:58 CEST schrieb Kevin Hilman: >> Finlye Xiao <finley.xiao@rock-chips.com> writes: >> > From: Finley Xiao <finley.xiao@rock-chips.com> >> > >> > We will register a cpufreq notifier for adjusting opp's voltage, and it >> > need to fetch cpu's leakage from efuse in the notifier_call. so the efuse >> > driver should probe before cpufreq driver. >> > >> > Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com> >> >> Why can't this be handled with deferred probling? initcall ordering is >> a can of worms. > > I think the issue is less between efuse and avs driver, but more between avs > driver and cpufreq. The avs driver aims to modify the opp table and thus wants > to do that / register the notifier before cpufreq starts. > > And as there is no direct connection between cpufreq and the avs driver, > making cpufreq defer probing is probably not really easy. Thanks for the explanation. Sounds like something that belongs in the changelog. Kevin
diff --git a/drivers/nvmem/rockchip-efuse.c b/drivers/nvmem/rockchip-efuse.c index 4d3f391..378993d 100644 --- a/drivers/nvmem/rockchip-efuse.c +++ b/drivers/nvmem/rockchip-efuse.c @@ -144,6 +144,13 @@ static struct platform_driver rockchip_efuse_driver = { }, }; -module_platform_driver(rockchip_efuse_driver); +static int __init rockchip_efuse_module_init(void) +{ + return platform_driver_probe(&rockchip_efuse_driver, + rockchip_efuse_probe); +} + +subsys_initcall(rockchip_efuse_module_init); + MODULE_DESCRIPTION("rockchip_efuse driver"); MODULE_LICENSE("GPL v2");