Hi, On 11/26/21 16:46, Andy Shevchenko wrote: > On Fri, Nov 26, 2021 at 04:21:08PM +0100, Hans de Goede wrote: >> The LPAT tables used in the DSDT for some PMICs require special handling, >> allow the PMIC OpRegion drivers to provide an alternative implementation >> by adding a lpat_raw_to_temp function pointer to struct pmic_table; >> and initialize this to the default acpi_lpat_raw_to_temp function > > acpi_lpat_raw_to_temp() > >> for all PMICs. > > Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxx> > > (see one nit-pick below) > >> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> >> --- >> drivers/acpi/pmic/intel_pmic.c | 2 +- >> drivers/acpi/pmic/intel_pmic.h | 4 ++++ >> drivers/acpi/pmic/intel_pmic_bxtwc.c | 1 + >> drivers/acpi/pmic/intel_pmic_bytcrc.c | 1 + >> drivers/acpi/pmic/intel_pmic_chtcrc.c | 1 + >> drivers/acpi/pmic/intel_pmic_chtdc_ti.c | 1 + >> drivers/acpi/pmic/intel_pmic_chtwc.c | 1 + >> drivers/acpi/pmic/intel_pmic_xpower.c | 1 + >> 8 files changed, 11 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/acpi/pmic/intel_pmic.c b/drivers/acpi/pmic/intel_pmic.c >> index 98bbfd99c709..f20dbda1a831 100644 >> --- a/drivers/acpi/pmic/intel_pmic.c >> +++ b/drivers/acpi/pmic/intel_pmic.c >> @@ -95,7 +95,7 @@ static int pmic_read_temp(struct intel_pmic_opregion *opregion, >> return 0; >> } >> >> - temp = acpi_lpat_raw_to_temp(opregion->lpat_table, raw_temp); >> + temp = opregion->data->lpat_raw_to_temp(opregion->lpat_table, raw_temp); >> if (temp < 0) >> return temp; >> >> diff --git a/drivers/acpi/pmic/intel_pmic.h b/drivers/acpi/pmic/intel_pmic.h >> index 467a39966dc8..d956b03a6ca0 100644 >> --- a/drivers/acpi/pmic/intel_pmic.h >> +++ b/drivers/acpi/pmic/intel_pmic.h >> @@ -2,6 +2,8 @@ >> #ifndef __INTEL_PMIC_H >> #define __INTEL_PMIC_H >> >> +#include <acpi/acpi_lpat.h> >> + >> struct pmic_table { >> int address; /* operation region address */ >> int reg; /* corresponding thermal register */ >> @@ -17,6 +19,8 @@ struct intel_pmic_opregion_data { >> int (*update_policy)(struct regmap *r, int reg, int bit, int enable); >> int (*exec_mipi_pmic_seq_element)(struct regmap *r, u16 i2c_address, >> u32 reg_address, u32 value, u32 mask); > >> + int (*lpat_raw_to_temp)(struct acpi_lpat_conversion_table *lpat_table, >> + int raw); > > Can be on one line. I tried to stay within (or at least close too) 80 lines here as that is still the recommended limit. The new 100 is more of a checkpatch only change, not a change in the codingstyle docs. With that said I'm fine with changing this. Rafael, feel free to change this while merging. Or let me know if you want a v2. Regards, Hans > >> struct pmic_table *power_table; >> int power_table_count; >> struct pmic_table *thermal_table; >> diff --git a/drivers/acpi/pmic/intel_pmic_bxtwc.c b/drivers/acpi/pmic/intel_pmic_bxtwc.c >> index 6620ce0833f6..e247615189fa 100644 >> --- a/drivers/acpi/pmic/intel_pmic_bxtwc.c >> +++ b/drivers/acpi/pmic/intel_pmic_bxtwc.c >> @@ -376,6 +376,7 @@ static const struct intel_pmic_opregion_data intel_bxtwc_pmic_opregion_data = { >> .update_aux = intel_bxtwc_pmic_update_aux, >> .get_policy = intel_bxtwc_pmic_get_policy, >> .update_policy = intel_bxtwc_pmic_update_policy, >> + .lpat_raw_to_temp = acpi_lpat_raw_to_temp, >> .power_table = power_table, >> .power_table_count = ARRAY_SIZE(power_table), >> .thermal_table = thermal_table, >> diff --git a/drivers/acpi/pmic/intel_pmic_bytcrc.c b/drivers/acpi/pmic/intel_pmic_bytcrc.c >> index 8a1d895ed689..9ea79f210965 100644 >> --- a/drivers/acpi/pmic/intel_pmic_bytcrc.c >> +++ b/drivers/acpi/pmic/intel_pmic_bytcrc.c >> @@ -278,6 +278,7 @@ static const struct intel_pmic_opregion_data intel_crc_pmic_opregion_data = { >> .update_aux = intel_crc_pmic_update_aux, >> .get_policy = intel_crc_pmic_get_policy, >> .update_policy = intel_crc_pmic_update_policy, >> + .lpat_raw_to_temp = acpi_lpat_raw_to_temp, >> .power_table = power_table, >> .power_table_count= ARRAY_SIZE(power_table), >> .thermal_table = thermal_table, >> diff --git a/drivers/acpi/pmic/intel_pmic_chtcrc.c b/drivers/acpi/pmic/intel_pmic_chtcrc.c >> index d8266d22cd8e..f9301c6f098e 100644 >> --- a/drivers/acpi/pmic/intel_pmic_chtcrc.c >> +++ b/drivers/acpi/pmic/intel_pmic_chtcrc.c >> @@ -24,6 +24,7 @@ >> * CHT Crystal Cove PMIC. >> */ >> static const struct intel_pmic_opregion_data intel_chtcrc_pmic_opregion_data = { >> + .lpat_raw_to_temp = acpi_lpat_raw_to_temp, >> .pmic_i2c_address = 0x6e, >> }; >> >> diff --git a/drivers/acpi/pmic/intel_pmic_chtdc_ti.c b/drivers/acpi/pmic/intel_pmic_chtdc_ti.c >> index cb444ddec5a0..418eec523025 100644 >> --- a/drivers/acpi/pmic/intel_pmic_chtdc_ti.c >> +++ b/drivers/acpi/pmic/intel_pmic_chtdc_ti.c >> @@ -98,6 +98,7 @@ static const struct intel_pmic_opregion_data chtdc_ti_pmic_opregion_data = { >> .get_power = chtdc_ti_pmic_get_power, >> .update_power = chtdc_ti_pmic_update_power, >> .get_raw_temp = chtdc_ti_pmic_get_raw_temp, >> + .lpat_raw_to_temp = acpi_lpat_raw_to_temp, >> .power_table = chtdc_ti_power_table, >> .power_table_count = ARRAY_SIZE(chtdc_ti_power_table), >> .thermal_table = chtdc_ti_thermal_table, >> diff --git a/drivers/acpi/pmic/intel_pmic_chtwc.c b/drivers/acpi/pmic/intel_pmic_chtwc.c >> index 59385a9a05e5..f2c42f4c79ca 100644 >> --- a/drivers/acpi/pmic/intel_pmic_chtwc.c >> +++ b/drivers/acpi/pmic/intel_pmic_chtwc.c >> @@ -257,6 +257,7 @@ static const struct intel_pmic_opregion_data intel_cht_wc_pmic_opregion_data = { >> .get_power = intel_cht_wc_pmic_get_power, >> .update_power = intel_cht_wc_pmic_update_power, >> .exec_mipi_pmic_seq_element = intel_cht_wc_exec_mipi_pmic_seq_element, >> + .lpat_raw_to_temp = acpi_lpat_raw_to_temp, >> .power_table = power_table, >> .power_table_count = ARRAY_SIZE(power_table), >> }; >> diff --git a/drivers/acpi/pmic/intel_pmic_xpower.c b/drivers/acpi/pmic/intel_pmic_xpower.c >> index b5f4d81c621f..e844bc1f3df5 100644 >> --- a/drivers/acpi/pmic/intel_pmic_xpower.c >> +++ b/drivers/acpi/pmic/intel_pmic_xpower.c >> @@ -298,6 +298,7 @@ static const struct intel_pmic_opregion_data intel_xpower_pmic_opregion_data = { >> .update_power = intel_xpower_pmic_update_power, >> .get_raw_temp = intel_xpower_pmic_get_raw_temp, >> .exec_mipi_pmic_seq_element = intel_xpower_exec_mipi_pmic_seq_element, >> + .lpat_raw_to_temp = acpi_lpat_raw_to_temp, >> .power_table = power_table, >> .power_table_count = ARRAY_SIZE(power_table), >> .thermal_table = thermal_table, >> -- >> 2.33.1 >> >