Change the datatypes pf num_lpm_modes and lpm_en_modes[] from int
to u8. The u8 type is more appropriate and improves the readability
and maintainability of the code.
Signed-off-by: Xi Pardee <xi.pardee@linux.intel.com>
---
drivers/platform/x86/intel/pmc/core.c | 18 ++++++++++--------
drivers/platform/x86/intel/pmc/core.h | 4 ++--
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/drivers/platform/x86/intel/pmc/core.c b/drivers/platform/x86/intel/pmc/core.c
index 7d7ae8a40b0ec..3e916228e7ed2 100644
--- a/drivers/platform/x86/intel/pmc/core.c
+++ b/drivers/platform/x86/intel/pmc/core.c
@@ -779,7 +779,7 @@ static int pmc_core_substate_res_show(struct seq_file *s, void *unused)
struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN];
const int lpm_adj_x2 = pmc->map->lpm_res_counter_step_x2;
u32 offset = pmc->map->lpm_residency_offset;
- int mode;
+ u8 mode;
seq_printf(s, "%-10s %-15s\n", "Substate", "Residency");
@@ -838,7 +838,7 @@ static void pmc_core_substate_req_header_show(struct seq_file *s, int pmc_index,
enum header_type type)
{
struct pmc_dev *pmcdev = s->private;
- int mode;
+ u8 mode;
seq_printf(s, "%40s |", "Element");
pmc_for_each_mode(mode, pmcdev)
@@ -880,7 +880,7 @@ static int pmc_core_substate_blk_req_show(struct seq_file *s, void *unused)
const struct pmc_bit_map *map;
for (map = maps[r_idx]; map->name; map++) {
- int mode;
+ u8 mode;
if (!map->blk)
continue;
@@ -953,7 +953,8 @@ static int pmc_core_substate_req_regs_show(struct seq_file *s, void *unused)
u32 lpm_status;
u32 lpm_status_live;
const struct pmc_bit_map *map;
- int mode, i, len = 32;
+ int i, len = 32;
+ u8 mode;
/*
* Capture the requirements and create a mask so that we only
@@ -1065,7 +1066,7 @@ static int pmc_core_lpm_latch_mode_show(struct seq_file *s, void *unused)
struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN];
bool c10;
u32 reg;
- int mode;
+ u8 mode;
reg = pmc_core_reg_read(pmc, pmc->map->lpm_sts_latch_en_offset);
if (reg & LPM_STS_LATCH_MODE) {
@@ -1097,8 +1098,9 @@ static ssize_t pmc_core_lpm_latch_mode_write(struct file *file,
struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN];
bool clear = false, c10 = false;
unsigned char buf[8];
- int m, mode;
+ int mode;
u32 reg;
+ u8 m;
if (count > sizeof(buf) - 1)
return -EINVAL;
@@ -1490,8 +1492,8 @@ int pmc_core_pmt_get_lpm_req(struct pmc_dev *pmcdev, struct pmc *pmc, struct tel
{
const u8 *lpm_indices;
int num_maps, mode_offset = 0;
- int ret, mode;
- int lpm_size;
+ int ret, lpm_size;
+ u8 mode;
lpm_indices = pmc->map->lpm_reg_index;
num_maps = pmc->map->lpm_num_maps;
diff --git a/drivers/platform/x86/intel/pmc/core.h b/drivers/platform/x86/intel/pmc/core.h
index 272fb4f57f346..ead2f33ed3ed5 100644
--- a/drivers/platform/x86/intel/pmc/core.h
+++ b/drivers/platform/x86/intel/pmc/core.h
@@ -462,8 +462,8 @@ struct pmc_dev {
struct mutex lock; /* generic mutex lock for PMC Core */
u64 s0ix_counter;
- int num_lpm_modes;
- int lpm_en_modes[LPM_MAX_NUM_MODES];
+ u8 num_lpm_modes;
+ u8 lpm_en_modes[LPM_MAX_NUM_MODES];
void (*suspend)(struct pmc_dev *pmcdev);
int (*resume)(struct pmc_dev *pmcdev);
--
2.43.0
On Tue, 16 Dec 2025, Xi Pardee wrote:
> Change the datatypes pf num_lpm_modes and lpm_en_modes[] from int
> to u8. The u8 type is more appropriate and improves the readability
> and maintainability of the code.
>
> Signed-off-by: Xi Pardee <xi.pardee@linux.intel.com>
> ---
> drivers/platform/x86/intel/pmc/core.c | 18 ++++++++++--------
> drivers/platform/x86/intel/pmc/core.h | 4 ++--
> 2 files changed, 12 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/platform/x86/intel/pmc/core.c b/drivers/platform/x86/intel/pmc/core.c
> index 7d7ae8a40b0ec..3e916228e7ed2 100644
> --- a/drivers/platform/x86/intel/pmc/core.c
> +++ b/drivers/platform/x86/intel/pmc/core.c
> @@ -779,7 +779,7 @@ static int pmc_core_substate_res_show(struct seq_file *s, void *unused)
> struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN];
> const int lpm_adj_x2 = pmc->map->lpm_res_counter_step_x2;
> u32 offset = pmc->map->lpm_residency_offset;
> - int mode;
> + u8 mode;
>
> seq_printf(s, "%-10s %-15s\n", "Substate", "Residency");
>
> @@ -838,7 +838,7 @@ static void pmc_core_substate_req_header_show(struct seq_file *s, int pmc_index,
> enum header_type type)
> {
> struct pmc_dev *pmcdev = s->private;
> - int mode;
> + u8 mode;
>
> seq_printf(s, "%40s |", "Element");
> pmc_for_each_mode(mode, pmcdev)
> @@ -880,7 +880,7 @@ static int pmc_core_substate_blk_req_show(struct seq_file *s, void *unused)
> const struct pmc_bit_map *map;
>
> for (map = maps[r_idx]; map->name; map++) {
> - int mode;
> + u8 mode;
>
> if (!map->blk)
> continue;
> @@ -953,7 +953,8 @@ static int pmc_core_substate_req_regs_show(struct seq_file *s, void *unused)
> u32 lpm_status;
> u32 lpm_status_live;
> const struct pmc_bit_map *map;
> - int mode, i, len = 32;
> + int i, len = 32;
> + u8 mode;
>
> /*
> * Capture the requirements and create a mask so that we only
> @@ -1065,7 +1066,7 @@ static int pmc_core_lpm_latch_mode_show(struct seq_file *s, void *unused)
> struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN];
> bool c10;
> u32 reg;
> - int mode;
> + u8 mode;
>
> reg = pmc_core_reg_read(pmc, pmc->map->lpm_sts_latch_en_offset);
> if (reg & LPM_STS_LATCH_MODE) {
> @@ -1097,8 +1098,9 @@ static ssize_t pmc_core_lpm_latch_mode_write(struct file *file,
> struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN];
> bool clear = false, c10 = false;
> unsigned char buf[8];
> - int m, mode;
> + int mode;
> u32 reg;
> + u8 m;
>
> if (count > sizeof(buf) - 1)
> return -EINVAL;
> @@ -1490,8 +1492,8 @@ int pmc_core_pmt_get_lpm_req(struct pmc_dev *pmcdev, struct pmc *pmc, struct tel
> {
> const u8 *lpm_indices;
> int num_maps, mode_offset = 0;
> - int ret, mode;
> - int lpm_size;
> + int ret, lpm_size;
> + u8 mode;
>
> lpm_indices = pmc->map->lpm_reg_index;
> num_maps = pmc->map->lpm_num_maps;
Why is "mode" in pmc_core_get_low_power_modes() left untouched?
(Unrelated to the patch, it seems to contain a double empty line as well.)
> diff --git a/drivers/platform/x86/intel/pmc/core.h b/drivers/platform/x86/intel/pmc/core.h
> index 272fb4f57f346..ead2f33ed3ed5 100644
> --- a/drivers/platform/x86/intel/pmc/core.h
> +++ b/drivers/platform/x86/intel/pmc/core.h
> @@ -462,8 +462,8 @@ struct pmc_dev {
> struct mutex lock; /* generic mutex lock for PMC Core */
>
> u64 s0ix_counter;
> - int num_lpm_modes;
> - int lpm_en_modes[LPM_MAX_NUM_MODES];
> + u8 num_lpm_modes;
> + u8 lpm_en_modes[LPM_MAX_NUM_MODES];
> void (*suspend)(struct pmc_dev *pmcdev);
> int (*resume)(struct pmc_dev *pmcdev);
>
>
--
i.
Hi Ilpo,
Thanks for reviewing the patch. My response is inline.
On 12/23/2025 4:29 AM, Ilpo Järvinen wrote:
> On Tue, 16 Dec 2025, Xi Pardee wrote:
>
>> Change the datatypes pf num_lpm_modes and lpm_en_modes[] from int
>> to u8. The u8 type is more appropriate and improves the readability
>> and maintainability of the code.
>>
>> Signed-off-by: Xi Pardee <xi.pardee@linux.intel.com>
>> ---
>> drivers/platform/x86/intel/pmc/core.c | 18 ++++++++++--------
>> drivers/platform/x86/intel/pmc/core.h | 4 ++--
>> 2 files changed, 12 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/platform/x86/intel/pmc/core.c b/drivers/platform/x86/intel/pmc/core.c
>> index 7d7ae8a40b0ec..3e916228e7ed2 100644
>> --- a/drivers/platform/x86/intel/pmc/core.c
>> +++ b/drivers/platform/x86/intel/pmc/core.c
>> @@ -779,7 +779,7 @@ static int pmc_core_substate_res_show(struct seq_file *s, void *unused)
>> struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN];
>> const int lpm_adj_x2 = pmc->map->lpm_res_counter_step_x2;
>> u32 offset = pmc->map->lpm_residency_offset;
>> - int mode;
>> + u8 mode;
>>
>> seq_printf(s, "%-10s %-15s\n", "Substate", "Residency");
>>
>> @@ -838,7 +838,7 @@ static void pmc_core_substate_req_header_show(struct seq_file *s, int pmc_index,
>> enum header_type type)
>> {
>> struct pmc_dev *pmcdev = s->private;
>> - int mode;
>> + u8 mode;
>>
>> seq_printf(s, "%40s |", "Element");
>> pmc_for_each_mode(mode, pmcdev)
>> @@ -880,7 +880,7 @@ static int pmc_core_substate_blk_req_show(struct seq_file *s, void *unused)
>> const struct pmc_bit_map *map;
>>
>> for (map = maps[r_idx]; map->name; map++) {
>> - int mode;
>> + u8 mode;
>>
>> if (!map->blk)
>> continue;
>> @@ -953,7 +953,8 @@ static int pmc_core_substate_req_regs_show(struct seq_file *s, void *unused)
>> u32 lpm_status;
>> u32 lpm_status_live;
>> const struct pmc_bit_map *map;
>> - int mode, i, len = 32;
>> + int i, len = 32;
>> + u8 mode;
>>
>> /*
>> * Capture the requirements and create a mask so that we only
>> @@ -1065,7 +1066,7 @@ static int pmc_core_lpm_latch_mode_show(struct seq_file *s, void *unused)
>> struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN];
>> bool c10;
>> u32 reg;
>> - int mode;
>> + u8 mode;
>>
>> reg = pmc_core_reg_read(pmc, pmc->map->lpm_sts_latch_en_offset);
>> if (reg & LPM_STS_LATCH_MODE) {
>> @@ -1097,8 +1098,9 @@ static ssize_t pmc_core_lpm_latch_mode_write(struct file *file,
>> struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN];
>> bool clear = false, c10 = false;
>> unsigned char buf[8];
>> - int m, mode;
>> + int mode;
>> u32 reg;
>> + u8 m;
>>
>> if (count > sizeof(buf) - 1)
>> return -EINVAL;
>> @@ -1490,8 +1492,8 @@ int pmc_core_pmt_get_lpm_req(struct pmc_dev *pmcdev, struct pmc *pmc, struct tel
>> {
>> const u8 *lpm_indices;
>> int num_maps, mode_offset = 0;
>> - int ret, mode;
>> - int lpm_size;
>> + int ret, lpm_size;
>> + u8 mode;
>>
>> lpm_indices = pmc->map->lpm_reg_index;
>> num_maps = pmc->map->lpm_num_maps;
> Why is "mode" in pmc_core_get_low_power_modes() left untouched?
>
> (Unrelated to the patch, it seems to contain a double empty line as well.)
I missed this function. Will change the type of "mode" in
pmc_core_get_low_power_modes() in next version.
Will add another patch to remove one empty line in next version.
Thanks!
Xi
>
>> diff --git a/drivers/platform/x86/intel/pmc/core.h b/drivers/platform/x86/intel/pmc/core.h
>> index 272fb4f57f346..ead2f33ed3ed5 100644
>> --- a/drivers/platform/x86/intel/pmc/core.h
>> +++ b/drivers/platform/x86/intel/pmc/core.h
>> @@ -462,8 +462,8 @@ struct pmc_dev {
>> struct mutex lock; /* generic mutex lock for PMC Core */
>>
>> u64 s0ix_counter;
>> - int num_lpm_modes;
>> - int lpm_en_modes[LPM_MAX_NUM_MODES];
>> + u8 num_lpm_modes;
>> + u8 lpm_en_modes[LPM_MAX_NUM_MODES];
>> void (*suspend)(struct pmc_dev *pmcdev);
>> int (*resume)(struct pmc_dev *pmcdev);
>>
>>
© 2016 - 2026 Red Hat, Inc.