Re: [PATCH 2/5] cpufreq: loongson3: Adjust the width of id and val in smc_message

Zhongqiu Han <[email protected]>
Newsgroups org.kernel.vger.linux-pm,dev.linux.lists.loongarch,org.kernel.vger.linux-kernel,org.kernel.vger.stable
Message-ID <[email protected]>
Hi Huacai,

Please feel free to comment on the question below, or simply ignore it
if you do not think it is worth addressing from an architectural
perspective.

On 8/18/2026 8:39 PM, Huacai Chen wrote:
> The id field of smc_message is usually stand for the CPU ID. In the past
> this driver was only tested for desktop and laptop productions so 4-bits
> are enough. But now we have servers that can have as many as 256 cores,
> so we need 8-bits CPU ID.
> 
> On the other hand, the val field is usually stand for CPU frequency so
> 12-bits are enough to represent 4GHz, and for higher frequencies there
> is an extra bit to extend (enough for 8GHz).

The extra bit appears to be unused in the current implementation.
Perhaps it would be better to enforce the limit explicitly for id and
val bits, for example by using FIELD_MAX().

> 
> In theory, this is a incompatible change, but fortunately the old SMC
> firmwares are not widely shipped and can be updated on the air, thus we
> can safely adjust the widths.

Not sure if using CMD_GET_VERSION check can avoid such incompatible
issue?

> 
> Cc: [email protected]
> Signed-off-by: Hongliang Wang <[email protected]>
> Signed-off-by: Huacai Chen <[email protected]>
> ---
>   drivers/cpufreq/loongson3_cpufreq.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/cpufreq/loongson3_cpufreq.c b/drivers/cpufreq/loongson3_cpufreq.c
> index 1e8715ea1b77..630f679aa739 100644
> --- a/drivers/cpufreq/loongson3_cpufreq.c
> +++ b/drivers/cpufreq/loongson3_cpufreq.c
> @@ -21,9 +21,9 @@
>   union smc_message {
>   	u32 value;
>   	struct {
> -		u32 id		: 4;
> +		u32 id		: 8;
>   		u32 info	: 4;
> -		u32 val		: 16;
> +		u32 val		: 12;
>   		u32 cmd		: 6;
>   		u32 extra	: 1;
>   		u32 complete	: 1;


-- 
Thx and BRs,
Zhongqiu Han
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.