mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v4 0/1] cpufreq: ti: Fix probe ordering with k3-socinfo
@ 2026-05-28  9:05 Akashdeep Kaur
  2026-05-28  9:05 ` [PATCH v4 1/1] cpufreq: ti: Add EPROBE_DEFER for K3 SoCs Akashdeep Kaur
  0 siblings, 1 reply; 6+ messages in thread
From: Akashdeep Kaur @ 2026-05-28  9:05 UTC (permalink / raw)
  To: zhongqiu.han, praneeth, nm, vigneshr, rafael, viresh.kumar,
	linux-pm, linux-kernel
  Cc: vishalm, sebin.francis, k-willis, a-kaur

For K3 SoCs, ti-cpufreq depends on k3-socinfo to provide SoC revision
information via soc_device_match(). If ti-cpufreq probes before
k3-socinfo, soc_device_match() returns NULL, causing incorrect 
revision detection and OPP table initialization failures.

Add a needs_k3_socinfo flag to ti_cpufreq_soc_data to properly handle
probe deferral when k3-socinfo hasn't registered the SoC device yet.
This follows the existing multi_regulator pattern in the driver.

Changes in v4
- Use needs_k3_socinfo flag in soc_data 
- Link to v3: https://lore.kernel.org/all/20260527062534.1808422-1-a-kaur@ti.com/

Changes in v3
- Simplified to single patch (EPROBE_DEFER only)
- Changed the logic to detect whether the probe is for am62 family SoCs
- Dropped device link patch after analysis as revision information is 
  cached after successful probe. Module reload also works as k3-socinfo 
  stays bound during normal operation
- Link to v2: https://lore.kernel.org/all/20260401105404.1194717-1-a-kaur@ti.com/

Changes in v2
- Added DT bindings documentation for ti,soc-info property
- Reordered patches: bindings first, then driver changes, then DTS
- Link to v1: https://lore.kernel.org/all/20260330120105.2985200-1-a-kaur@ti.com/

Testing
- Verified correct probe ordering on AM625, AM62A7, AM62P5 platforms

Signed-off-by: Akashdeep Kaur <a-kaur@ti.com>
---

Akashdeep Kaur (1):
  cpufreq: ti: Add EPROBE_DEFER for K3 SoCs

 drivers/cpufreq/ti-cpufreq.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v4 1/1] cpufreq: ti: Add EPROBE_DEFER for K3 SoCs
  2026-05-28  9:05 [PATCH v4 0/1] cpufreq: ti: Fix probe ordering with k3-socinfo Akashdeep Kaur
@ 2026-05-28  9:05 ` Akashdeep Kaur
  2026-06-01  3:28   ` Zhongqiu Han
  2026-06-08  5:47   ` Viresh Kumar
  0 siblings, 2 replies; 6+ messages in thread
From: Akashdeep Kaur @ 2026-05-28  9:05 UTC (permalink / raw)
  To: zhongqiu.han, praneeth, nm, vigneshr, rafael, viresh.kumar,
	linux-pm, linux-kernel
  Cc: vishalm, sebin.francis, k-willis, a-kaur

On K3 SoCs, ti-cpufreq relies on k3-socinfo to register the SoC
device before soc_device_match() can return valid revision
information. If ti-cpufreq probes before k3-socinfo,
soc_device_match() returns NULL, leading to incorrect CPU frequency
scaling behavior.
Defer probe when k3-socinfo hasn't registered the SoC device yet.

Signed-off-by: Akashdeep Kaur <a-kaur@ti.com>
---
 drivers/cpufreq/ti-cpufreq.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/cpufreq/ti-cpufreq.c b/drivers/cpufreq/ti-cpufreq.c
index a01abc1622eb..8219751da175 100644
--- a/drivers/cpufreq/ti-cpufreq.c
+++ b/drivers/cpufreq/ti-cpufreq.c
@@ -99,6 +99,7 @@ struct ti_cpufreq_soc_data {
 	unsigned long efuse_shift;
 	unsigned long rev_offset;
 	bool multi_regulator;
+	bool needs_k3_socinfo;
 /* Backward compatibility hack: Might have missing syscon */
 #define TI_QUIRK_SYSCON_MAY_BE_MISSING	0x1
 /* Backward compatibility hack: new syscon size is 1 register wide */
@@ -347,6 +348,7 @@ static struct ti_cpufreq_soc_data am625_soc_data = {
 	.efuse_mask = 0x07c0,
 	.efuse_shift = 0x6,
 	.multi_regulator = false,
+	.needs_k3_socinfo = true,
 	.quirks = TI_QUIRK_SYSCON_IS_SINGLE_REG,
 };
 
@@ -356,6 +358,7 @@ static struct ti_cpufreq_soc_data am62a7_soc_data = {
 	.efuse_mask = 0x07c0,
 	.efuse_shift = 0x6,
 	.multi_regulator = false,
+	.needs_k3_socinfo = true,
 };
 
 static struct ti_cpufreq_soc_data am62l3_soc_data = {
@@ -364,6 +367,7 @@ static struct ti_cpufreq_soc_data am62l3_soc_data = {
 	.efuse_mask = 0x07c0,
 	.efuse_shift = 0x6,
 	.multi_regulator = false,
+	.needs_k3_socinfo = true,
 };
 
 static struct ti_cpufreq_soc_data am62p5_soc_data = {
@@ -372,6 +376,7 @@ static struct ti_cpufreq_soc_data am62p5_soc_data = {
 	.efuse_mask = 0x07c0,
 	.efuse_shift = 0x6,
 	.multi_regulator = false,
+	.needs_k3_socinfo = true,
 };
 
 /**
@@ -443,6 +448,12 @@ static int ti_cpufreq_get_rev(struct ti_cpufreq_data *opp_data,
 		goto done;
 	}

+	/* Defer if k3-socinfo hasn't registered the SoC device yet */
+	if (opp_data->soc_data->needs_k3_socinfo) {
+		dev_dbg(opp_data->cpu_dev,
+			"SoC info not ready yet, deferring probe\n");
+		return -EPROBE_DEFER;
+	}
+
 	ret = regmap_read(opp_data->syscon, opp_data->soc_data->rev_offset,
 			  &revision);
 	if (opp_data->soc_data->quirks & TI_QUIRK_SYSCON_MAY_BE_MISSING && ret == -EIO) {
-- 
2.34.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v4 1/1] cpufreq: ti: Add EPROBE_DEFER for K3 SoCs
  2026-05-28  9:05 ` [PATCH v4 1/1] cpufreq: ti: Add EPROBE_DEFER for K3 SoCs Akashdeep Kaur
@ 2026-06-01  3:28   ` Zhongqiu Han
  2026-06-03  7:23     ` Akashdeep Kaur
  2026-06-08  5:47   ` Viresh Kumar
  1 sibling, 1 reply; 6+ messages in thread
From: Zhongqiu Han @ 2026-06-01  3:28 UTC (permalink / raw)
  To: Akashdeep Kaur, praneeth, nm, vigneshr, rafael, viresh.kumar,
	linux-pm, linux-kernel
  Cc: vishalm, sebin.francis, k-willis, zhongqiu.han

On 5/28/2026 5:05 PM, Akashdeep Kaur wrote:
> On K3 SoCs, ti-cpufreq relies on k3-socinfo to register the SoC
> device before soc_device_match() can return valid revision
> information. If ti-cpufreq probes before k3-socinfo,
> soc_device_match() returns NULL, leading to incorrect CPU frequency
> scaling behavior.
> Defer probe when k3-socinfo hasn't registered the SoC device yet.


Hi Akashdeep,

Thanks for the update.


> 
> Signed-off-by: Akashdeep Kaur <a-kaur@ti.com>
> ---
>   drivers/cpufreq/ti-cpufreq.c | 12 ++++++++++++
>   1 file changed, 12 insertions(+)
> 
> diff --git a/drivers/cpufreq/ti-cpufreq.c b/drivers/cpufreq/ti-cpufreq.c
> index a01abc1622eb..8219751da175 100644
> --- a/drivers/cpufreq/ti-cpufreq.c
> +++ b/drivers/cpufreq/ti-cpufreq.c
> @@ -99,6 +99,7 @@ struct ti_cpufreq_soc_data {
>   	unsigned long efuse_shift;
>   	unsigned long rev_offset;
>   	bool multi_regulator;
> +	bool needs_k3_socinfo;
>   /* Backward compatibility hack: Might have missing syscon */
>   #define TI_QUIRK_SYSCON_MAY_BE_MISSING	0x1
>   /* Backward compatibility hack: new syscon size is 1 register wide */
> @@ -347,6 +348,7 @@ static struct ti_cpufreq_soc_data am625_soc_data = {
>   	.efuse_mask = 0x07c0,
>   	.efuse_shift = 0x6,
>   	.multi_regulator = false,
> +	.needs_k3_socinfo = true,
>   	.quirks = TI_QUIRK_SYSCON_IS_SINGLE_REG,
>   };
>   
> @@ -356,6 +358,7 @@ static struct ti_cpufreq_soc_data am62a7_soc_data = {
>   	.efuse_mask = 0x07c0,
>   	.efuse_shift = 0x6,
>   	.multi_regulator = false,
> +	.needs_k3_socinfo = true,
>   };
>   
>   static struct ti_cpufreq_soc_data am62l3_soc_data = {
> @@ -364,6 +367,7 @@ static struct ti_cpufreq_soc_data am62l3_soc_data = {
>   	.efuse_mask = 0x07c0,
>   	.efuse_shift = 0x6,
>   	.multi_regulator = false,
> +	.needs_k3_socinfo = true,
>   };
>   
>   static struct ti_cpufreq_soc_data am62p5_soc_data = {
> @@ -372,6 +376,7 @@ static struct ti_cpufreq_soc_data am62p5_soc_data = {
>   	.efuse_mask = 0x07c0,
>   	.efuse_shift = 0x6,
>   	.multi_regulator = false,
> +	.needs_k3_socinfo = true,


It seems that `ti_cpufreq_soc_data` is a hardware description–only
structure.

After further consideration, may I know would it be reasonable to
consider using of_machine_get_match() instead, for example:

static const struct of_device_id ti_k3_cpufreq_of_match[] = {
              { .compatible = "ti,am625"  },
              { .compatible = "ti,am62xx" },
                ......
              {}
      };

if (soc_device_match(k3_cpufreq_soc)) {
     *revision_value = 0x1;
     goto done;
} else if (of_machine_get_match(ti_k3_of_match)) {
     return dev_err_probe(xxx);
}

Just a thought — you might want to consider this if it makes sense.
Sorry for not pointing this out earlier, I may have missed it before.


>   };
>   
>   /**
> @@ -443,6 +448,12 @@ static int ti_cpufreq_get_rev(struct ti_cpufreq_data *opp_data,
>   		goto done;
>   	}
> 
> +	/* Defer if k3-socinfo hasn't registered the SoC device yet */
> +	if (opp_data->soc_data->needs_k3_socinfo) {
> +		dev_dbg(opp_data->cpu_dev,
> +			"SoC info not ready yet, deferring probe\n");
> +		return -EPROBE_DEFER;


It would be better to use dev_err_probe() here and return the original
error, instead of using dev_dbg() with -EPROBE_DEFER.

Also, the message "SoC info not ready yet" seems a bit too generic and
not very descriptive. Which SoC is this referring to?


> +	}
> +
>   	ret = regmap_read(opp_data->syscon, opp_data->soc_data->rev_offset,
>   			  &revision);
>   	if (opp_data->soc_data->quirks & TI_QUIRK_SYSCON_MAY_BE_MISSING && ret == -EIO) {


-- 
Thx and BRs,
Zhongqiu Han

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v4 1/1] cpufreq: ti: Add EPROBE_DEFER for K3 SoCs
  2026-06-01  3:28   ` Zhongqiu Han
@ 2026-06-03  7:23     ` Akashdeep Kaur
  2026-06-03 14:02       ` Zhongqiu Han
  0 siblings, 1 reply; 6+ messages in thread
From: Akashdeep Kaur @ 2026-06-03  7:23 UTC (permalink / raw)
  To: Zhongqiu Han, praneeth, nm, vigneshr, rafael, viresh.kumar,
	linux-pm, linux-kernel
  Cc: vishalm, sebin.francis, k-willis

Hi Zhongqiu,

Thanks for the feedback!

On 01/06/26 08:58, Zhongqiu Han wrote:
> On 5/28/2026 5:05 PM, Akashdeep Kaur wrote:
>> On K3 SoCs, ti-cpufreq relies on k3-socinfo to register the SoC
>> device before soc_device_match() can return valid revision
>> information. If ti-cpufreq probes before k3-socinfo,
>> soc_device_match() returns NULL, leading to incorrect CPU frequency
>> scaling behavior.
>> Defer probe when k3-socinfo hasn't registered the SoC device yet.
> 
> 
> Hi Akashdeep,
> 
> Thanks for the update.
> 
> 
>>
>> Signed-off-by: Akashdeep Kaur <a-kaur@ti.com>
>> ---
>>   drivers/cpufreq/ti-cpufreq.c | 12 ++++++++++++
>>   1 file changed, 12 insertions(+)
>>
>> diff --git a/drivers/cpufreq/ti-cpufreq.c b/drivers/cpufreq/ti-cpufreq.c
>> index a01abc1622eb..8219751da175 100644
>> --- a/drivers/cpufreq/ti-cpufreq.c
>> +++ b/drivers/cpufreq/ti-cpufreq.c
>> @@ -99,6 +99,7 @@ struct ti_cpufreq_soc_data {
>>       unsigned long efuse_shift;
>>       unsigned long rev_offset;
>>       bool multi_regulator;
>> +    bool needs_k3_socinfo;
>>   /* Backward compatibility hack: Might have missing syscon */
>>   #define TI_QUIRK_SYSCON_MAY_BE_MISSING    0x1
>>   /* Backward compatibility hack: new syscon size is 1 register wide */
>> @@ -347,6 +348,7 @@ static struct ti_cpufreq_soc_data am625_soc_data = {
>>       .efuse_mask = 0x07c0,
>>       .efuse_shift = 0x6,
>>       .multi_regulator = false,
>> +    .needs_k3_socinfo = true,
>>       .quirks = TI_QUIRK_SYSCON_IS_SINGLE_REG,
>>   };
>> @@ -356,6 +358,7 @@ static struct ti_cpufreq_soc_data am62a7_soc_data = {
>>       .efuse_mask = 0x07c0,
>>       .efuse_shift = 0x6,
>>       .multi_regulator = false,
>> +    .needs_k3_socinfo = true,
>>   };
>>   static struct ti_cpufreq_soc_data am62l3_soc_data = {
>> @@ -364,6 +367,7 @@ static struct ti_cpufreq_soc_data am62l3_soc_data = {
>>       .efuse_mask = 0x07c0,
>>       .efuse_shift = 0x6,
>>       .multi_regulator = false,
>> +    .needs_k3_socinfo = true,
>>   };
>>   static struct ti_cpufreq_soc_data am62p5_soc_data = {
>> @@ -372,6 +376,7 @@ static struct ti_cpufreq_soc_data am62p5_soc_data = {
>>       .efuse_mask = 0x07c0,
>>       .efuse_shift = 0x6,
>>       .multi_regulator = false,
>> +    .needs_k3_socinfo = true,
> 
> 
> It seems that `ti_cpufreq_soc_data` is a hardware description–only
> structure.
> 
> After further consideration, may I know would it be reasonable to
> consider using of_machine_get_match() instead, for example:
> 
> static const struct of_device_id ti_k3_cpufreq_of_match[] = {
>               { .compatible = "ti,am625"  },
>               { .compatible = "ti,am62xx" },
>                 ......
>               {}
>       };
> 
> if (soc_device_match(k3_cpufreq_soc)) {
>      *revision_value = 0x1;
>      goto done;
> } else if (of_machine_get_match(ti_k3_of_match)) {
>      return dev_err_probe(xxx);
> }
> 
> Just a thought — you might want to consider this if it makes sense.
> Sorry for not pointing this out earlier, I may have missed it befor

The structure already contains driver behavior flags alongside hardware 
descriptions:

   1. multi_regulator (bool) - Controls whether the driver uses multiple 
regulators (driver behavior, not HW description)
   2. quirks (u8) - Explicitly documented as "Backward compatibility 
hack" flags that control driver behavior:
     - TI_QUIRK_SYSCON_MAY_BE_MISSING
     - TI_QUIRK_SYSCON_IS_SINGLE_REG

   The needs_k3_socinfo flag follows this existing pattern - it's a 
driver behavior flag that controls probe deferral logic, similar to how 
multi_regulator controls regulator configuration and quirks control 
backward compatibility handling.
> 
>>   };
>>   /**
>> @@ -443,6 +448,12 @@ static int ti_cpufreq_get_rev(struct 
>> ti_cpufreq_data *opp_data,
>>           goto done;
>>       }
>>
>> +    /* Defer if k3-socinfo hasn't registered the SoC device yet */
>> +    if (opp_data->soc_data->needs_k3_socinfo) {
>> +        dev_dbg(opp_data->cpu_dev,
>> +            "SoC info not ready yet, deferring probe\n");
>> +        return -EPROBE_DEFER;
> 
> 
> It would be better to use dev_err_probe() here and return the original
> error, instead of using dev_dbg() with -EPROBE_DEFER.
> 
> Also, the message "SoC info not ready yet" seems a bit too generic and
> not very descriptive. Which SoC is this referring to?

Thats good suggestion, will update both in next version.

Thanks,
Akashdeep Kaur
> 
> 
>> +    }
>> +
>>       ret = regmap_read(opp_data->syscon, opp_data->soc_data->rev_offset,
>>                 &revision);
>>       if (opp_data->soc_data->quirks & TI_QUIRK_SYSCON_MAY_BE_MISSING 
>> && ret == -EIO) {
> 
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v4 1/1] cpufreq: ti: Add EPROBE_DEFER for K3 SoCs
  2026-06-03  7:23     ` Akashdeep Kaur
@ 2026-06-03 14:02       ` Zhongqiu Han
  0 siblings, 0 replies; 6+ messages in thread
From: Zhongqiu Han @ 2026-06-03 14:02 UTC (permalink / raw)
  To: Akashdeep Kaur, praneeth, nm, vigneshr, rafael, viresh.kumar,
	linux-pm, linux-kernel
  Cc: vishalm, sebin.francis, k-willis, zhongqiu.han

On 6/3/2026 3:23 PM, Akashdeep Kaur wrote:
> Hi Zhongqiu,
> 
> Thanks for the feedback!
> 
> On 01/06/26 08:58, Zhongqiu Han wrote:
>> On 5/28/2026 5:05 PM, Akashdeep Kaur wrote:
>>> On K3 SoCs, ti-cpufreq relies on k3-socinfo to register the SoC
>>> device before soc_device_match() can return valid revision
>>> information. If ti-cpufreq probes before k3-socinfo,
>>> soc_device_match() returns NULL, leading to incorrect CPU frequency
>>> scaling behavior.
>>> Defer probe when k3-socinfo hasn't registered the SoC device yet.
>>
>>
>> Hi Akashdeep,
>>
>> Thanks for the update.
>>
>>
>>>
>>> Signed-off-by: Akashdeep Kaur <a-kaur@ti.com>
>>> ---
>>>   drivers/cpufreq/ti-cpufreq.c | 12 ++++++++++++
>>>   1 file changed, 12 insertions(+)
>>>
>>> diff --git a/drivers/cpufreq/ti-cpufreq.c b/drivers/cpufreq/ti-cpufreq.c
>>> index a01abc1622eb..8219751da175 100644
>>> --- a/drivers/cpufreq/ti-cpufreq.c
>>> +++ b/drivers/cpufreq/ti-cpufreq.c
>>> @@ -99,6 +99,7 @@ struct ti_cpufreq_soc_data {
>>>       unsigned long efuse_shift;
>>>       unsigned long rev_offset;
>>>       bool multi_regulator;
>>> +    bool needs_k3_socinfo;
>>>   /* Backward compatibility hack: Might have missing syscon */
>>>   #define TI_QUIRK_SYSCON_MAY_BE_MISSING    0x1
>>>   /* Backward compatibility hack: new syscon size is 1 register wide */
>>> @@ -347,6 +348,7 @@ static struct ti_cpufreq_soc_data am625_soc_data = {
>>>       .efuse_mask = 0x07c0,
>>>       .efuse_shift = 0x6,
>>>       .multi_regulator = false,
>>> +    .needs_k3_socinfo = true,
>>>       .quirks = TI_QUIRK_SYSCON_IS_SINGLE_REG,
>>>   };
>>> @@ -356,6 +358,7 @@ static struct ti_cpufreq_soc_data am62a7_soc_data 
>>> = {
>>>       .efuse_mask = 0x07c0,
>>>       .efuse_shift = 0x6,
>>>       .multi_regulator = false,
>>> +    .needs_k3_socinfo = true,
>>>   };
>>>   static struct ti_cpufreq_soc_data am62l3_soc_data = {
>>> @@ -364,6 +367,7 @@ static struct ti_cpufreq_soc_data am62l3_soc_data 
>>> = {
>>>       .efuse_mask = 0x07c0,
>>>       .efuse_shift = 0x6,
>>>       .multi_regulator = false,
>>> +    .needs_k3_socinfo = true,
>>>   };
>>>   static struct ti_cpufreq_soc_data am62p5_soc_data = {
>>> @@ -372,6 +376,7 @@ static struct ti_cpufreq_soc_data am62p5_soc_data 
>>> = {
>>>       .efuse_mask = 0x07c0,
>>>       .efuse_shift = 0x6,
>>>       .multi_regulator = false,
>>> +    .needs_k3_socinfo = true,
>>
>>
>> It seems that `ti_cpufreq_soc_data` is a hardware description–only
>> structure.
>>
>> After further consideration, may I know would it be reasonable to
>> consider using of_machine_get_match() instead, for example:
>>
>> static const struct of_device_id ti_k3_cpufreq_of_match[] = {
>>               { .compatible = "ti,am625"  },
>>               { .compatible = "ti,am62xx" },
>>                 ......
>>               {}
>>       };
>>
>> if (soc_device_match(k3_cpufreq_soc)) {
>>      *revision_value = 0x1;
>>      goto done;
>> } else if (of_machine_get_match(ti_k3_of_match)) {
>>      return dev_err_probe(xxx);
>> }
>>
>> Just a thought — you might want to consider this if it makes sense.
>> Sorry for not pointing this out earlier, I may have missed it befor
> 
> The structure already contains driver behavior flags alongside hardware 
> descriptions:
> 
>    1. multi_regulator (bool) - Controls whether the driver uses multiple 
> regulators (driver behavior, not HW description)
>    2. quirks (u8) - Explicitly documented as "Backward compatibility 
> hack" flags that control driver behavior:
>      - TI_QUIRK_SYSCON_MAY_BE_MISSING
>      - TI_QUIRK_SYSCON_IS_SINGLE_REG
> 
>    The needs_k3_socinfo flag follows this existing pattern - it's a 
> driver behavior flag that controls probe deferral logic, similar to how 
> multi_regulator controls regulator configuration and quirks control 
> backward compatibility handling.


Thanks for the clarification.


>>
>>>   };
>>>   /**
>>> @@ -443,6 +448,12 @@ static int ti_cpufreq_get_rev(struct 
>>> ti_cpufreq_data *opp_data,
>>>           goto done;
>>>       }
>>>
>>> +    /* Defer if k3-socinfo hasn't registered the SoC device yet */
>>> +    if (opp_data->soc_data->needs_k3_socinfo) {
>>> +        dev_dbg(opp_data->cpu_dev,
>>> +            "SoC info not ready yet, deferring probe\n");
>>> +        return -EPROBE_DEFER;
>>
>>
>> It would be better to use dev_err_probe() here and return the original
>> error, instead of using dev_dbg() with -EPROBE_DEFER.
>>
>> Also, the message "SoC info not ready yet" seems a bit too generic and
>> not very descriptive. Which SoC is this referring to?
> 
> Thats good suggestion, will update both in next version.
> 
> Thanks,
> Akashdeep Kaur
>>
>>
>>> +    }
>>> +
>>>       ret = regmap_read(opp_data->syscon, opp_data->soc_data- 
>>> >rev_offset,
>>>                 &revision);
>>>       if (opp_data->soc_data->quirks & TI_QUIRK_SYSCON_MAY_BE_MISSING 
>>> && ret == -EIO) {
>>
>>
> 


-- 
Thx and BRs,
Zhongqiu Han

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v4 1/1] cpufreq: ti: Add EPROBE_DEFER for K3 SoCs
  2026-05-28  9:05 ` [PATCH v4 1/1] cpufreq: ti: Add EPROBE_DEFER for K3 SoCs Akashdeep Kaur
  2026-06-01  3:28   ` Zhongqiu Han
@ 2026-06-08  5:47   ` Viresh Kumar
  1 sibling, 0 replies; 6+ messages in thread
From: Viresh Kumar @ 2026-06-08  5:47 UTC (permalink / raw)
  To: Akashdeep Kaur
  Cc: zhongqiu.han, praneeth, nm, vigneshr, rafael, linux-pm,
	linux-kernel, vishalm, sebin.francis, k-willis

On 28-05-26, 14:35, Akashdeep Kaur wrote:
> On K3 SoCs, ti-cpufreq relies on k3-socinfo to register the SoC
> device before soc_device_match() can return valid revision
> information. If ti-cpufreq probes before k3-socinfo,
> soc_device_match() returns NULL, leading to incorrect CPU frequency
> scaling behavior.
> Defer probe when k3-socinfo hasn't registered the SoC device yet.
> 
> Signed-off-by: Akashdeep Kaur <a-kaur@ti.com>
> ---
>  drivers/cpufreq/ti-cpufreq.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)

Applied. Thanks.

-- 
viresh

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-06-08  5:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-28  9:05 [PATCH v4 0/1] cpufreq: ti: Fix probe ordering with k3-socinfo Akashdeep Kaur
2026-05-28  9:05 ` [PATCH v4 1/1] cpufreq: ti: Add EPROBE_DEFER for K3 SoCs Akashdeep Kaur
2026-06-01  3:28   ` Zhongqiu Han
2026-06-03  7:23     ` Akashdeep Kaur
2026-06-03 14:02       ` Zhongqiu Han
2026-06-08  5:47   ` Viresh Kumar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®