Re: [PATCH v2 5/8] memory: tegra210: Support interconnect framework
From: Krzysztof Kozlowski
Date: Fri Sep 05 2025 - 02:59:46 EST
On 04/09/2025 19:28, Aaron Kling wrote:
>>> +
>>> +static int tegra_emc_opp_table_init(struct tegra210_emc *emc)
>>> +{
>>> + u32 hw_version = BIT(tegra_sku_info.soc_speedo_id);
>>> + struct dev_pm_opp *opp;
>>> + unsigned long rate;
>>> + int opp_token, err, max_opps, i;
>>> +
>>> + err = dev_pm_opp_set_supported_hw(emc->dev, &hw_version, 1);
>>> + if (err < 0) {
>>> + dev_err(emc->dev, "failed to set OPP supported HW: %d\n", err);
>>> + return err;
>>> + }
>>> + opp_token = err;
>>> +
>>> + err = dev_pm_opp_of_add_table(emc->dev);
>>> + if (err) {
>>> + if (err == -ENODEV)
>>> + dev_err(emc->dev, "OPP table not found, please update your device tree\n");
>>
>> So this looks like the actual ABI break.
>
> Okay, so let's discuss this. For reference, I based this patch off the
> tegra124 change [0], which also caused an abi break. I know past
That was almost 5 years ago and we also got stricter what we require in
the commit msg. It's also documented in writing bindings.
> changes don't justify current mistakes, but this is the context. This
> series adds all new required dt properties to the arch common dtsi, so
> any newly compiled dtb will work. Any old dtb with a new kernel would
> fail to probe, however. I think it would be safe to just skip the
That's the ABI break.
> interconnect init if the opp table init returns ENODEV, then let probe
> succeed, but I would have to verify that. Do I need to do that and
> drop the new requires from the binding?
The best would be yes, make it optional in the binding as well.
Best regards,
Krzysztof