mfd: use designated initializers for acpi_device_id
Subsystems (11)
v2 cover mfd: use designated initializers for acpi_device_id
This series is converting lists that contain the acpi_device_id struct, which is defined in the include/linux/device-id/acpi.h to make use of named initializers (which they do not use currently). This work is part of the on going effort in the kernel associated with device-ids [1]
The plan is to convert acpi_device_id::driver_data to have an anonymous union, similarly to what was introduced for PCI and I2C device ID tables. The goal is to increase type-safety (most of the existing casts are gone), to improve readability and to make use intent a bit more clear:
```
union {
kernel_ulong_t driver_data;
const void *driver_data_ptr;
}
```But for that to work all lists containing the structs need to use named initializers first to avoid triggering -Wmissing-braces. I already have patches that implement this and touching a lot of kernel subsystmes that use the acpi_device_id struct and that list keeps on growing. Therefore, I have decided to split the series per every subsystem into:
- pre-clean-ups that convert the lists to use named initializers (which is this series)
- actual implementations that make some of the modules use the new driver_data_ptr member
That way the task can be fragmented into manageable and independent chunks of work and makes this effort easier to review.
[1] https://lore.kernel.org/all/[email protected]/
---
Changes in v2:
- Split Intel LPSS into its own patch.
- Added a review tag from V1.
- Link to v1: https://patch.msgid.link/[email protected]
To: Andy Shevchenko <[email protected]>
To: Lee Jones <[email protected]>
To: Chen-Yu Tsai <[email protected]>
To: David Rhodes <[email protected]>
To: Richard Fitzgerald <[email protected]>
To: Mika Westerberg <[email protected]>
To: Zha Qipeng <[email protected]>
To: Andy Shevchenko <[email protected]>
To: Qunqin Zhao <[email protected]>
To: Thomas Richard <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
---
Pawel Zalewski (2):
mfd: intel-lpss-acpi: Use named initializers for acpi_device_id
mfd: Use named initializers for acpi_device_id
drivers/mfd/axp20x-i2c.c | 2 +- drivers/mfd/cs42l43-i2c.c | 8 ++--- drivers/mfd/intel-lpss-acpi.c | 58 +++++++++++++++++------------------ drivers/mfd/intel_pmc_bxt.c | 2 +- drivers/mfd/intel_soc_pmic_bxtwc.c | 2 +- drivers/mfd/intel_soc_pmic_chtdc_ti.c | 4 +-- drivers/mfd/intel_soc_pmic_chtwc.c | 2 +- drivers/mfd/intel_soc_pmic_crc.c | 4 +-- drivers/mfd/intel_soc_pmic_mrfld.c | 4 +-- drivers/mfd/kempld-core.c | 6 ++-- drivers/mfd/loongson-se.c | 2 +- drivers/mfd/upboard-fpga.c | 6 ++-- 12 files changed, 50 insertions(+), 50 deletions(-)
---
base-commit: 05441d697f7f9a927264f4058cbbc6a03dfcac9d
change-id: 20261030-acpi-mfd-a6ac9d16671b
Best regards,
Signature · 1 line
Pawel Zalewski <[email protected]>
PATCH v2 1/2 mfd: intel-lpss-acpi: Use named initializers for acpi_device_id
Use a designated initializer for the acpi_device_id fields which makes the code more readable and consistent with how lists are initialized in the rest of the kernel code base.
--- drivers/mfd/intel-lpss-acpi.c | 58 +++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 29 deletions(-)
drivers/mfd/intel-lpss-acpi.c +29 -29
@@ -137,38 +137,38 @@ static const struct intel_lpss_platform_info cnl_i2c_info = {static const struct acpi_device_id intel_lpss_acpi_ids[] = {/* SPT */ - {"INT3440" , (kernel_ulong_t)&spt_info }, - {"INT3441" , (kernel_ulong_t)&spt_info }, - {"INT3442" , (kernel_ulong_t)&spt_i2c_info }, - {"INT3443" , (kernel_ulong_t)&spt_i2c_info }, - {"INT3444" , (kernel_ulong_t)&spt_i2c_info }, - {"INT3445" , (kernel_ulong_t)&spt_i2c_info }, - {"INT3446" , (kernel_ulong_t)&spt_i2c_info }, - {"INT3447" , (kernel_ulong_t)&spt_i2c_info }, - {"INT3448" , (kernel_ulong_t)&spt_uart_info }, - {"INT3449" , (kernel_ulong_t)&spt_uart_info }, - {"INT344A" , (kernel_ulong_t)&spt_uart_info }, + { .id ="INT3440" , .driver_data = (kernel_ulong_t)&spt_info }, + { .id ="INT3441" , .driver_data = (kernel_ulong_t)&spt_info }, + { .id ="INT3442" , .driver_data = (kernel_ulong_t)&spt_i2c_info }, + { .id ="INT3443" , .driver_data = (kernel_ulong_t)&spt_i2c_info }, + { .id ="INT3444" , .driver_data = (kernel_ulong_t)&spt_i2c_info }, + { .id ="INT3445" , .driver_data = (kernel_ulong_t)&spt_i2c_info }, + { .id ="INT3446" , .driver_data = (kernel_ulong_t)&spt_i2c_info }, + { .id ="INT3447" , .driver_data = (kernel_ulong_t)&spt_i2c_info }, + { .id ="INT3448" , .driver_data = (kernel_ulong_t)&spt_uart_info }, + { .id ="INT3449" , .driver_data = (kernel_ulong_t)&spt_uart_info }, + { .id ="INT344A" , .driver_data = (kernel_ulong_t)&spt_uart_info },/* CNL */ - {"INT34B0" , (kernel_ulong_t)&cnl_info }, - {"INT34B1" , (kernel_ulong_t)&cnl_info }, - {"INT34B2" , (kernel_ulong_t)&cnl_i2c_info }, - {"INT34B3" , (kernel_ulong_t)&cnl_i2c_info }, - {"INT34B4" , (kernel_ulong_t)&cnl_i2c_info }, - {"INT34B5" , (kernel_ulong_t)&cnl_i2c_info }, - {"INT34B6" , (kernel_ulong_t)&cnl_i2c_info }, - {"INT34B7" , (kernel_ulong_t)&cnl_i2c_info }, - {"INT34B8" , (kernel_ulong_t)&spt_uart_info }, - {"INT34B9" , (kernel_ulong_t)&spt_uart_info }, - {"INT34BA" , (kernel_ulong_t)&spt_uart_info }, - {"INT34BC" , (kernel_ulong_t)&cnl_info }, + { .id ="INT34B0" , .driver_data = (kernel_ulong_t)&cnl_info }, + { .id ="INT34B1" , .driver_data = (kernel_ulong_t)&cnl_info }, + { .id ="INT34B2" , .driver_data = (kernel_ulong_t)&cnl_i2c_info }, + { .id ="INT34B3" , .driver_data = (kernel_ulong_t)&cnl_i2c_info }, + { .id ="INT34B4" , .driver_data = (kernel_ulong_t)&cnl_i2c_info }, + { .id ="INT34B5" , .driver_data = (kernel_ulong_t)&cnl_i2c_info }, + { .id ="INT34B6" , .driver_data = (kernel_ulong_t)&cnl_i2c_info }, + { .id ="INT34B7" , .driver_data = (kernel_ulong_t)&cnl_i2c_info }, + { .id ="INT34B8" , .driver_data = (kernel_ulong_t)&spt_uart_info }, + { .id ="INT34B9" , .driver_data = (kernel_ulong_t)&spt_uart_info }, + { .id ="INT34BA" , .driver_data = (kernel_ulong_t)&spt_uart_info }, + { .id ="INT34BC" , .driver_data = (kernel_ulong_t)&cnl_info },/* BXT */ - {"80860AAC" , (kernel_ulong_t)&bxt_i2c_info }, - {"80860ABC" , (kernel_ulong_t)&bxt_info }, - {"80860AC2" , (kernel_ulong_t)&bxt_info }, + { .id ="80860AAC" , .driver_data = (kernel_ulong_t)&bxt_i2c_info }, + { .id ="80860ABC" , .driver_data = (kernel_ulong_t)&bxt_info }, + { .id ="80860AC2" , .driver_data = (kernel_ulong_t)&bxt_info },/* APL */ - {"80865AAC" , (kernel_ulong_t)&apl_i2c_info }, - {"80865ABC" , (kernel_ulong_t)&bxt_info }, - {"80865AC2" , (kernel_ulong_t)&bxt_info }, + { .id ="80865AAC" , .driver_data = (kernel_ulong_t)&apl_i2c_info }, + { .id ="80865ABC" , .driver_data = (kernel_ulong_t)&bxt_info }, + { .id ="80865AC2" , .driver_data = (kernel_ulong_t)&bxt_info }, { } };MODULE_DEVICE_TABLE (acpi, intel_lpss_acpi_ids);
Signature · 1 line
2.53.0
[email protected]
AI reviewRe: [PATCH v2 1/2] mfd: intel-lpss-acpi: Use named initializers for acpi_device_id
Sashiko has reviewed this patch and found no issues.
Quoted 5 lines
Use a designated initializer for the
acpi_device_idfields which makes the code more readable and consistent with how lists are initialized in the rest of the kernel code base.Signed-off-by Pawel Zalewski <[email protected]>
Sashiko has reviewed this patch and found no issues.
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
Re: [PATCH v2 1/2] mfd: intel-lpss-acpi: Use named initializers for acpi_device_id
In reply to Pawel ZalewskiQuoted 3 lines · Pawel Zalewski
Use a designated initializer for the
acpi_device_idfields which makes the code more readable and consistent with how lists are initialized in the rest of the kernel code base.
Signature · 2 lines
With Best Regards, Andy Shevchenko
PATCH v2 2/2 mfd: Use named initializers for acpi_device_id
In reply to Pawel ZalewskiUse a designated initializer for the acpi_device_id fields which makes the code more readable and consistent with how lists are initialized in the rest of the kernel code base. Also drop explicitly setting fields to 0 where it is redundant.
Unify the list terminator to have a single space between the brackets and no trailing comma.
--- drivers/mfd/axp20x-i2c.c | 2 +- drivers/mfd/cs42l43-i2c.c | 8 ++++---- drivers/mfd/intel_pmc_bxt.c | 2 +- drivers/mfd/intel_soc_pmic_bxtwc.c | 2 +- drivers/mfd/intel_soc_pmic_chtdc_ti.c | 4 ++-- drivers/mfd/intel_soc_pmic_chtwc.c | 2 +- drivers/mfd/intel_soc_pmic_crc.c | 4 ++-- drivers/mfd/intel_soc_pmic_mrfld.c | 4 ++-- drivers/mfd/kempld-core.c | 6 +++--- drivers/mfd/loongson-se.c | 2 +- drivers/mfd/upboard-fpga.c | 6 +++--- 11 files changed, 21 insertions(+), 21 deletions(-)
drivers/mfd/axp20x-i2c.c +1 -1
@@ -97,7 +97,7 @@ static const struct acpi_device_id axp20x_i2c_acpi_match[] = { .id = "INT33F4", .driver_data = AXP288_ID, }, - { }, + { } };MODULE_DEVICE_TABLE (acpi, axp20x_i2c_acpi_match);#endif
drivers/mfd/cs42l43-i2c.c +4 -4
@@ -73,10 +73,10 @@ MODULE_DEVICE_TABLE(of, cs42l43_of_match);#if IS_ENABLED (CONFIG_ACPI )static const struct acpi_device_id cs42l43_acpi_match[] = { - {"CSC4243" ,CS42L43_DEVID_VAL }, - {"CSC2A3B" ,CS42L43B_DEVID_VAL }, - {"CSC4244" ,CS42L43B_DEVID_VAL }, - {} + { .id ="CSC4243" , .driver_data =CS42L43_DEVID_VAL }, + { .id ="CSC2A3B" , .driver_data =CS42L43B_DEVID_VAL }, + { .id ="CSC4244" , .driver_data =CS42L43B_DEVID_VAL }, + { } };MODULE_DEVICE_TABLE (acpi, cs42l43_acpi_match);#endif
drivers/mfd/intel_pmc_bxt.c +1 -1
@@ -414,7 +414,7 @@ static int intel_pmc_create_devices(struct intel_pmc_dev *pmc) }static const struct acpi_device_id intel_pmc_acpi_ids[] = { - {"INT34D2" }, + { .id ="INT34D2" }, { } };MODULE_DEVICE_TABLE (acpi, intel_pmc_acpi_ids);
drivers/mfd/intel_soc_pmic_bxtwc.c +1 -1
@@ -606,7 +606,7 @@ static int bxtwc_resume(struct device *dev) static DEFINE_SIMPLE_DEV_PM_OPS(bxtwc_pm_ops, bxtwc_suspend, bxtwc_resume);static const struct acpi_device_id bxtwc_acpi_ids[] = { - {"INT34D3" , }, + { .id ="INT34D3" }, { } };MODULE_DEVICE_TABLE (acpi, bxtwc_acpi_ids);
drivers/mfd/intel_soc_pmic_chtdc_ti.c +2 -2
@@ -162,8 +162,8 @@ static int chtdc_ti_resume(struct device *dev) static DEFINE_SIMPLE_DEV_PM_OPS(chtdc_ti_pm_ops, chtdc_ti_suspend, chtdc_ti_resume);static const struct acpi_device_id chtdc_ti_acpi_ids[] = { - {"INT33F5" }, - { }, + { .id ="INT33F5" }, + { } };MODULE_DEVICE_TABLE (acpi, chtdc_ti_acpi_ids);
drivers/mfd/intel_soc_pmic_chtwc.c +1 -1
@@ -261,7 +261,7 @@ static const struct i2c_device_id cht_wc_i2c_id[] = { };static const struct acpi_device_id cht_wc_acpi_ids[] = { - {"INT34D3" , }, + { .id ="INT34D3" }, { } };
drivers/mfd/intel_soc_pmic_crc.c +2 -2
@@ -252,8 +252,8 @@ static int crystal_cove_resume(struct device *dev) static DEFINE_SIMPLE_DEV_PM_OPS(crystal_cove_pm_ops, crystal_cove_suspend, crystal_cove_resume);static const struct acpi_device_id crystal_cove_acpi_match[] = { - {"INT33FD" }, - { }, + { .id ="INT33FD" }, + { } };MODULE_DEVICE_TABLE (acpi, crystal_cove_acpi_match);
drivers/mfd/intel_soc_pmic_mrfld.c +2 -2
@@ -139,8 +139,8 @@ static int bcove_probe(struct platform_device *pdev) }static const struct acpi_device_id bcove_acpi_ids[] = { - {"INTC100E" }, - {} + { .id ="INTC100E" }, + { } };MODULE_DEVICE_TABLE (acpi, bcove_acpi_ids);
drivers/mfd/kempld-core.c +3 -3
@@ -470,9 +470,9 @@ static void kempld_remove(struct platform_device *pdev) }static const struct acpi_device_id kempld_acpi_table[] = { - {"KEM0000" , (kernel_ulong_t)&kempld_platform_data_generic }, - {"KEM0001" , (kernel_ulong_t)&kempld_platform_data_generic }, - {} + { .id ="KEM0000" , .driver_data = (kernel_ulong_t)&kempld_platform_data_generic }, + { .id ="KEM0001" , .driver_data = (kernel_ulong_t)&kempld_platform_data_generic }, + { } };MODULE_DEVICE_TABLE (acpi, kempld_acpi_table);
drivers/mfd/loongson-se.c +1 -1
@@ -233,7 +233,7 @@ static int loongson_se_probe(struct platform_device *pdev) }static const struct acpi_device_id loongson_se_acpi_match[] = { - {"LOON0011" ,0 }, + { .id ="LOON0011" }, { } };MODULE_DEVICE_TABLE (acpi, loongson_se_acpi_match);
drivers/mfd/upboard-fpga.c +3 -3
@@ -300,9 +300,9 @@ static int upboard_fpga_probe(struct platform_device *pdev) }static const struct acpi_device_id upboard_fpga_acpi_match[] = { - {"AANT0F01" , (kernel_ulong_t)&upboard_up2_fpga_data }, - {"AANT0F04" , (kernel_ulong_t)&upboard_up_fpga_data }, - {} + { .id ="AANT0F01" , .driver_data = (kernel_ulong_t)&upboard_up2_fpga_data }, + { .id ="AANT0F04" , .driver_data = (kernel_ulong_t)&upboard_up_fpga_data }, + { } };MODULE_DEVICE_TABLE (acpi, upboard_fpga_acpi_match);
Signature · 1 line
2.53.0
[email protected]
AI reviewRe: [PATCH v2 2/2] mfd: Use named initializers for acpi_device_id
Sashiko has reviewed this patch and found no issues.
Quoted 10 lines
Use a designated initializer for the
acpi_device_idfields which makes the code more readable and consistent with how lists are initialized in the rest of the kernel code base. Also drop explicitly setting fields to 0 where it is redundant.Unify the list terminator to have a single space between the brackets and no trailing comma.
Reviewed-by Charles Keepax <[email protected]>Signed-off-by Pawel Zalewski <[email protected]>
Sashiko has reviewed this patch and found no issues.
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=2
Andy Shevchenko
reviewerRe: [PATCH v2 2/2] mfd: Use named initializers for acpi_device_id
In reply to Pawel ZalewskiQuoted 7 lines · Pawel Zalewski
Use a designated initializer for the
acpi_device_idfields which makes the code more readable and consistent with how lists are initialized in the rest of the kernel code base. Also drop explicitly setting fields to 0 where it is redundant.Unify the list terminator to have a single space between the brackets and no trailing comma.
Haven't I given the tag for Intel PMIC drivers?
Signature · 2 lines
With Best Regards, Andy Shevchenko
Re: [PATCH v2 2/2] mfd: Use named initializers for acpi_device_id
Quoted 1 line
Haven't I given the tag for Intel PMIC drivers?
No I do not see it, the only reply on lore and in my inbox from you on V1 is re splitting the Intel LPSS.
Re: [PATCH v2 2/2] mfd: Use named initializers for acpi_device_id
Quoted 3 lines · Pawel Zalewski
Quoted 1 line
Haven't I given the tag for Intel PMIC drivers?
No I do not see it, the only reply on lore and in my inbox from you on V1 is re splitting the Intel LPSS.
Oh, here we are then
Signature · 2 lines
With Best Regards, Andy Shevchenko
Re: [PATCH v2 2/2] mfd: Use named initializers for acpi_device_id
In reply to Pawel ZalewskiQuoted 10 lines · Pawel Zalewski
Use a designated initializer for the
acpi_device_idfields which makes the code more readable and consistent with how lists are initialized in the rest of the kernel code base. Also drop explicitly setting fields to 0 where it is redundant.Unify the list terminator to have a single space between the brackets and no trailing comma.
Reviewed-by Charles Keepax <[email protected]>Signed-off-by Pawel Zalewski <[email protected]>
Quoted 12 lines
--- drivers/mfd/axp20x-i2c.c | 2 +- drivers/mfd/cs42l43-i2c.c | 8 ++++---- drivers/mfd/intel_pmc_bxt.c | 2 +- drivers/mfd/intel_soc_pmic_bxtwc.c | 2 +- drivers/mfd/intel_soc_pmic_chtdc_ti.c | 4 ++-- drivers/mfd/intel_soc_pmic_chtwc.c | 2 +- drivers/mfd/intel_soc_pmic_crc.c | 4 ++-- drivers/mfd/intel_soc_pmic_mrfld.c | 4 ++-- drivers/mfd/kempld-core.c | 6 +++--- drivers/mfd/loongson-se.c | 2 +- drivers/mfd/upboard-fpga.c | 6 +++---
Best Regards,
Thomas