Re: [PATCH v3] cpufreq: ti-cpufreq: Only register platform_device when supported

From: Johan Hovold
Date: Tue Nov 13 2018 - 12:59:01 EST


On Tue, Nov 13, 2018 at 11:39:12AM -0600, Dave Gerlach wrote:
> Currently the ti-cpufreq driver blindly registers a 'ti-cpufreq' to force
> the driver to probe on any platforms where the driver is built in.
> However, this should only happen on platforms that actually can make use
> of the driver. There is already functionality in place to match the
> SoC compatible so let's factor this out into a separate call and
> make sure we find a match before creating the ti-cpufreq platform device.
>
> Reviewed-by: Johan Hovold <johan@xxxxxxxxxx>
> Signed-off-by: Dave Gerlach <d-gerlach@xxxxxx>
> ---
> v2->v3: Use platform_device_register_resndata to pass match data to probe to
> to avoid matching again in probe.
>
> v2: https://patchwork.kernel.org/patch/10574535/
>

> static int ti_cpufreq_init(void)
> {
> - platform_device_register_simple("ti-cpufreq", -1, NULL, 0);
> + const struct of_device_id *match;
> +
> + /* Check to ensure we are on a compatible platform */
> + match = ti_cpufreq_match_node();
> + if (match)
> + platform_device_register_resndata(NULL, "ti-cpufreq", -1, NULL,
> + 0, match,
> + sizeof(*match));

platform_device_register_data()?

> return 0;
> }
> module_init(ti_cpufreq_init);

Johan