From: Andy Shevchenko <andriy.shevchenko@intel.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: "Rafael J . Wysocki" <rjw@rjwysocki.net>,
Andy Shevchenko <andy@kernel.org>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
Len Brown <lenb@kernel.org>,
linux-acpi@vger.kernel.org
Subject: Re: [PATCH 2/3] ACPI: PMIC: allow drivers to provide a custom lpat_raw_to_temp() function
Date: Fri, 26 Nov 2021 17:46:58 +0200 [thread overview]
Message-ID: <YaEBcuFw+W8LNtMW@smile.fi.intel.com> (raw)
In-Reply-To: <20211126152109.230986-2-hdegoede@redhat.com>
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@intel.com>
(see one nit-pick below)
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
> 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.
> 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
>
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2021-11-26 15:57 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-26 15:21 [PATCH 1/3] ACPI: PMIC: constify all struct intel_pmic_opregion_data declarations Hans de Goede
2021-11-26 15:21 ` [PATCH 2/3] ACPI: PMIC: allow drivers to provide a custom lpat_raw_to_temp() function Hans de Goede
2021-11-26 15:46 ` Andy Shevchenko [this message]
2021-11-27 21:57 ` Hans de Goede
2021-11-29 9:37 ` Andy Shevchenko
2021-11-26 15:21 ` [PATCH 3/3] ACPI: PMIC: xpower: Fix _TMP ACPI errors Hans de Goede
2021-11-26 15:56 ` Andy Shevchenko
2021-11-27 21:59 ` Hans de Goede
2021-11-29 9:34 ` Andy Shevchenko
2021-11-26 15:44 ` [PATCH 1/3] ACPI: PMIC: constify all struct intel_pmic_opregion_data declarations Andy Shevchenko
2021-12-08 14:37 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YaEBcuFw+W8LNtMW@smile.fi.intel.com \
--to=andriy.shevchenko@intel.com \
--cc=andy@kernel.org \
--cc=hdegoede@redhat.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=rjw@rjwysocki.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.