* [PATCH 1/3] ACPI: utils: introduce acpi_get_local_u64_address()
[not found] <20240528192936.16180-1-pierre-louis.bossart@linux.intel.com>
@ 2024-05-28 19:29 ` Pierre-Louis Bossart
2024-06-07 18:51 ` Rafael J. Wysocki
2024-05-28 19:29 ` [PATCH 2/3] soundwire: slave: simplify code with acpi_get_local_u64_address() Pierre-Louis Bossart
2024-05-28 19:29 ` [PATCH 3/3] ALSA: hda: intel-sdw-acpi: use acpi_get_local_u64_address() Pierre-Louis Bossart
2 siblings, 1 reply; 8+ messages in thread
From: Pierre-Louis Bossart @ 2024-05-28 19:29 UTC (permalink / raw)
To: linux-sound
Cc: alsa-devel, tiwai, broonie, rafael, vkoul, andriy.shevchenko,
Pierre-Louis Bossart, Péter Ujfalusi, Bard Liao, Len Brown,
open list:ACPI, open list
The ACPI _ADR is a 64-bit value. We changed the definitions in commit
ca6f998cf9a2 ("ACPI: bus: change _ADR representation to 64 bits") but
some helpers still assume the value is a 32-bit value.
This patch adds a new helper to extract the full 64-bits. The existing
32-bit helper is kept for backwards-compatibility and cases where the
_ADR is known to fit in a 32-bit value.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
---
drivers/acpi/utils.c | 22 ++++++++++++++++------
include/linux/acpi.h | 1 +
2 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
index 202234ba54bd..ae9384282273 100644
--- a/drivers/acpi/utils.c
+++ b/drivers/acpi/utils.c
@@ -277,15 +277,25 @@ acpi_evaluate_integer(acpi_handle handle,
EXPORT_SYMBOL(acpi_evaluate_integer);
+int acpi_get_local_u64_address(acpi_handle handle, u64 *addr)
+{
+ acpi_status status;
+
+ status = acpi_evaluate_integer(handle, METHOD_NAME__ADR, NULL, addr);
+ if (ACPI_FAILURE(status))
+ return -ENODATA;
+ return 0;
+}
+EXPORT_SYMBOL(acpi_get_local_u64_address);
+
int acpi_get_local_address(acpi_handle handle, u32 *addr)
{
- unsigned long long adr;
- acpi_status status;
-
- status = acpi_evaluate_integer(handle, METHOD_NAME__ADR, NULL, &adr);
- if (ACPI_FAILURE(status))
- return -ENODATA;
+ u64 adr;
+ int ret;
+ ret = acpi_get_local_u64_address(handle, &adr);
+ if (ret < 0)
+ return ret;
*addr = (u32)adr;
return 0;
}
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 28c3fb2bef0d..65e7177bcb02 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -761,6 +761,7 @@ static inline u64 acpi_arch_get_root_pointer(void)
}
#endif
+int acpi_get_local_u64_address(acpi_handle handle, u64 *addr);
int acpi_get_local_address(acpi_handle handle, u32 *addr);
const char *acpi_get_subsystem_id(acpi_handle handle);
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/3] soundwire: slave: simplify code with acpi_get_local_u64_address()
[not found] <20240528192936.16180-1-pierre-louis.bossart@linux.intel.com>
2024-05-28 19:29 ` [PATCH 1/3] ACPI: utils: introduce acpi_get_local_u64_address() Pierre-Louis Bossart
@ 2024-05-28 19:29 ` Pierre-Louis Bossart
2024-06-02 14:49 ` Vinod Koul
2024-05-28 19:29 ` [PATCH 3/3] ALSA: hda: intel-sdw-acpi: use acpi_get_local_u64_address() Pierre-Louis Bossart
2 siblings, 1 reply; 8+ messages in thread
From: Pierre-Louis Bossart @ 2024-05-28 19:29 UTC (permalink / raw)
To: linux-sound
Cc: alsa-devel, tiwai, broonie, rafael, vkoul, andriy.shevchenko,
Pierre-Louis Bossart, Péter Ujfalusi, Bard Liao, Sanyog Kale,
open list
Now we have a helper so there's no need to open-code.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
---
drivers/soundwire/slave.c | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/drivers/soundwire/slave.c b/drivers/soundwire/slave.c
index 9963b92eb505..f1a4df6cfebd 100644
--- a/drivers/soundwire/slave.c
+++ b/drivers/soundwire/slave.c
@@ -97,18 +97,13 @@ static bool find_slave(struct sdw_bus *bus,
struct acpi_device *adev,
struct sdw_slave_id *id)
{
- u64 addr;
unsigned int link_id;
- acpi_status status;
+ u64 addr;
+ int ret;
- status = acpi_evaluate_integer(adev->handle,
- METHOD_NAME__ADR, NULL, &addr);
-
- if (ACPI_FAILURE(status)) {
- dev_err(bus->dev, "_ADR resolution failed: %x\n",
- status);
+ ret = acpi_get_local_u64_address(adev->handle, &addr);
+ if (ret < 0)
return false;
- }
if (bus->ops->override_adr)
addr = bus->ops->override_adr(bus, addr);
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/3] ALSA: hda: intel-sdw-acpi: use acpi_get_local_u64_address()
[not found] <20240528192936.16180-1-pierre-louis.bossart@linux.intel.com>
2024-05-28 19:29 ` [PATCH 1/3] ACPI: utils: introduce acpi_get_local_u64_address() Pierre-Louis Bossart
2024-05-28 19:29 ` [PATCH 2/3] soundwire: slave: simplify code with acpi_get_local_u64_address() Pierre-Louis Bossart
@ 2024-05-28 19:29 ` Pierre-Louis Bossart
2 siblings, 0 replies; 8+ messages in thread
From: Pierre-Louis Bossart @ 2024-05-28 19:29 UTC (permalink / raw)
To: linux-sound
Cc: alsa-devel, tiwai, broonie, rafael, vkoul, andriy.shevchenko,
Pierre-Louis Bossart, Péter Ujfalusi, Bard Liao,
Jaroslav Kysela, Takashi Iwai, Rander Wang, open list
Now we have a helper so there's no need to open-code.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
---
sound/hda/intel-sdw-acpi.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/sound/hda/intel-sdw-acpi.c b/sound/hda/intel-sdw-acpi.c
index d7417a40392b..f3b2a610df23 100644
--- a/sound/hda/intel-sdw-acpi.c
+++ b/sound/hda/intel-sdw-acpi.c
@@ -125,11 +125,11 @@ static acpi_status sdw_intel_acpi_cb(acpi_handle handle, u32 level,
void *cdata, void **return_value)
{
struct sdw_intel_acpi_info *info = cdata;
- acpi_status status;
u64 adr;
+ int ret;
- status = acpi_evaluate_integer(handle, METHOD_NAME__ADR, NULL, &adr);
- if (ACPI_FAILURE(status))
+ ret = acpi_get_local_u64_address(handle, &adr);
+ if (ret < 0)
return AE_OK; /* keep going */
if (!acpi_fetch_acpi_dev(handle)) {
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/3] soundwire: slave: simplify code with acpi_get_local_u64_address()
2024-05-28 19:29 ` [PATCH 2/3] soundwire: slave: simplify code with acpi_get_local_u64_address() Pierre-Louis Bossart
@ 2024-06-02 14:49 ` Vinod Koul
0 siblings, 0 replies; 8+ messages in thread
From: Vinod Koul @ 2024-06-02 14:49 UTC (permalink / raw)
To: Pierre-Louis Bossart
Cc: linux-sound, alsa-devel, tiwai, broonie, rafael,
andriy.shevchenko, Péter Ujfalusi, Bard Liao, Sanyog Kale,
open list
On 28-05-24, 14:29, Pierre-Louis Bossart wrote:
> Now we have a helper so there's no need to open-code.
Acked-by: Vinod Koul <vkoul@kernel.org>
--
~Vinod
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] ACPI: utils: introduce acpi_get_local_u64_address()
2024-05-28 19:29 ` [PATCH 1/3] ACPI: utils: introduce acpi_get_local_u64_address() Pierre-Louis Bossart
@ 2024-06-07 18:51 ` Rafael J. Wysocki
2024-06-07 20:33 ` Pierre-Louis Bossart
0 siblings, 1 reply; 8+ messages in thread
From: Rafael J. Wysocki @ 2024-06-07 18:51 UTC (permalink / raw)
To: Pierre-Louis Bossart
Cc: linux-sound, alsa-devel, tiwai, broonie, rafael, vkoul,
andriy.shevchenko, Péter Ujfalusi, Bard Liao, Len Brown,
open list:ACPI, open list
On Tue, May 28, 2024 at 9:29 PM Pierre-Louis Bossart
<pierre-louis.bossart@linux.intel.com> wrote:
>
> The ACPI _ADR is a 64-bit value. We changed the definitions in commit
> ca6f998cf9a2 ("ACPI: bus: change _ADR representation to 64 bits") but
> some helpers still assume the value is a 32-bit value.
>
> This patch adds a new helper to extract the full 64-bits. The existing
> 32-bit helper is kept for backwards-compatibility and cases where the
> _ADR is known to fit in a 32-bit value.
>
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Do you want me to apply this or do you want me to route it along with
the rest of the series?
In the latter case feel free to add
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
to it.
Thanks!
> ---
> drivers/acpi/utils.c | 22 ++++++++++++++++------
> include/linux/acpi.h | 1 +
> 2 files changed, 17 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
> index 202234ba54bd..ae9384282273 100644
> --- a/drivers/acpi/utils.c
> +++ b/drivers/acpi/utils.c
> @@ -277,15 +277,25 @@ acpi_evaluate_integer(acpi_handle handle,
>
> EXPORT_SYMBOL(acpi_evaluate_integer);
>
> +int acpi_get_local_u64_address(acpi_handle handle, u64 *addr)
> +{
> + acpi_status status;
> +
> + status = acpi_evaluate_integer(handle, METHOD_NAME__ADR, NULL, addr);
> + if (ACPI_FAILURE(status))
> + return -ENODATA;
> + return 0;
> +}
> +EXPORT_SYMBOL(acpi_get_local_u64_address);
I'd prefer EXPORT_SYMBOL_GPL() here unless you absolutely cannot live with it.
> +
> int acpi_get_local_address(acpi_handle handle, u32 *addr)
> {
> - unsigned long long adr;
> - acpi_status status;
> -
> - status = acpi_evaluate_integer(handle, METHOD_NAME__ADR, NULL, &adr);
> - if (ACPI_FAILURE(status))
> - return -ENODATA;
> + u64 adr;
> + int ret;
>
> + ret = acpi_get_local_u64_address(handle, &adr);
> + if (ret < 0)
> + return ret;
> *addr = (u32)adr;
> return 0;
> }
> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> index 28c3fb2bef0d..65e7177bcb02 100644
> --- a/include/linux/acpi.h
> +++ b/include/linux/acpi.h
> @@ -761,6 +761,7 @@ static inline u64 acpi_arch_get_root_pointer(void)
> }
> #endif
>
> +int acpi_get_local_u64_address(acpi_handle handle, u64 *addr);
> int acpi_get_local_address(acpi_handle handle, u32 *addr);
> const char *acpi_get_subsystem_id(acpi_handle handle);
>
> --
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] ACPI: utils: introduce acpi_get_local_u64_address()
2024-06-07 18:51 ` Rafael J. Wysocki
@ 2024-06-07 20:33 ` Pierre-Louis Bossart
2024-06-07 21:59 ` Mark Brown
2024-06-08 11:58 ` Rafael J. Wysocki
0 siblings, 2 replies; 8+ messages in thread
From: Pierre-Louis Bossart @ 2024-06-07 20:33 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: linux-sound, alsa-devel, tiwai, broonie, vkoul, andriy.shevchenko,
Péter Ujfalusi, Bard Liao, Len Brown, open list:ACPI,
open list
On 6/7/24 20:51, Rafael J. Wysocki wrote:
> On Tue, May 28, 2024 at 9:29 PM Pierre-Louis Bossart
> <pierre-louis.bossart@linux.intel.com> wrote:
>>
>> The ACPI _ADR is a 64-bit value. We changed the definitions in commit
>> ca6f998cf9a2 ("ACPI: bus: change _ADR representation to 64 bits") but
>> some helpers still assume the value is a 32-bit value.
>>
>> This patch adds a new helper to extract the full 64-bits. The existing
>> 32-bit helper is kept for backwards-compatibility and cases where the
>> _ADR is known to fit in a 32-bit value.
>>
>> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
>> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
>> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
>
> Do you want me to apply this or do you want me to route it along with
> the rest of the series?
>
> In the latter case feel free to add
>
> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Thanks Rafael. I think it's easier if Mark Brown takes the series in
ASoC, I have additional ASoC patches that use the u64 helper.
Mark?
>>
>> +int acpi_get_local_u64_address(acpi_handle handle, u64 *addr)
>> +{
>> + acpi_status status;
>> +
>> + status = acpi_evaluate_integer(handle, METHOD_NAME__ADR, NULL, addr);
>> + if (ACPI_FAILURE(status))
>> + return -ENODATA;
>> + return 0;
>> +}
>> +EXPORT_SYMBOL(acpi_get_local_u64_address);
>
> I'd prefer EXPORT_SYMBOL_GPL() here unless you absolutely cannot live with it.
I don't mind, but the existing helper was using EXPORT_SYMBOL so I just
copied. It'd be odd to have two helpers that only differ by the argument
size use a different EXPORT_ macro, no? Not to mention that the
get_local address uses EXPORT_SYMBOL but would become a wrapper for an
EXPORT_SYMBOL_GPL. That gives me a headache...
This was the original code:
int acpi_get_local_address(acpi_handle handle, u32 *addr)
{
unsigned long long adr;
acpi_status status;
status = acpi_evaluate_integer(handle, METHOD_NAME__ADR, NULL, &adr);
if (ACPI_FAILURE(status))
return -ENODATA;
*addr = (u32)adr;
return 0;
}
EXPORT_SYMBOL(acpi_get_local_address);
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] ACPI: utils: introduce acpi_get_local_u64_address()
2024-06-07 20:33 ` Pierre-Louis Bossart
@ 2024-06-07 21:59 ` Mark Brown
2024-06-08 11:58 ` Rafael J. Wysocki
1 sibling, 0 replies; 8+ messages in thread
From: Mark Brown @ 2024-06-07 21:59 UTC (permalink / raw)
To: Pierre-Louis Bossart
Cc: Rafael J. Wysocki, linux-sound, alsa-devel, tiwai, vkoul,
andriy.shevchenko, Péter Ujfalusi, Bard Liao, Len Brown,
open list:ACPI, open list
[-- Attachment #1: Type: text/plain, Size: 503 bytes --]
On Fri, Jun 07, 2024 at 10:33:00PM +0200, Pierre-Louis Bossart wrote:
> On 6/7/24 20:51, Rafael J. Wysocki wrote:
> > Do you want me to apply this or do you want me to route it along with
> > the rest of the series?
> > In the latter case feel free to add
> > Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Thanks Rafael. I think it's easier if Mark Brown takes the series in
> ASoC, I have additional ASoC patches that use the u64 helper.
> Mark?
Sure, no problem taking it via ASoC.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] ACPI: utils: introduce acpi_get_local_u64_address()
2024-06-07 20:33 ` Pierre-Louis Bossart
2024-06-07 21:59 ` Mark Brown
@ 2024-06-08 11:58 ` Rafael J. Wysocki
1 sibling, 0 replies; 8+ messages in thread
From: Rafael J. Wysocki @ 2024-06-08 11:58 UTC (permalink / raw)
To: Pierre-Louis Bossart
Cc: Rafael J. Wysocki, linux-sound, alsa-devel, tiwai, broonie, vkoul,
andriy.shevchenko, Péter Ujfalusi, Bard Liao, Len Brown,
open list:ACPI, open list
On Fri, Jun 7, 2024 at 10:33 PM Pierre-Louis Bossart
<pierre-louis.bossart@linux.intel.com> wrote:
>
>
>
> On 6/7/24 20:51, Rafael J. Wysocki wrote:
> > On Tue, May 28, 2024 at 9:29 PM Pierre-Louis Bossart
> > <pierre-louis.bossart@linux.intel.com> wrote:
> >>
> >> The ACPI _ADR is a 64-bit value. We changed the definitions in commit
> >> ca6f998cf9a2 ("ACPI: bus: change _ADR representation to 64 bits") but
> >> some helpers still assume the value is a 32-bit value.
> >>
> >> This patch adds a new helper to extract the full 64-bits. The existing
> >> 32-bit helper is kept for backwards-compatibility and cases where the
> >> _ADR is known to fit in a 32-bit value.
> >>
> >> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
> >> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
> >> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
> >
> > Do you want me to apply this or do you want me to route it along with
> > the rest of the series?
> >
> > In the latter case feel free to add
> >
> > Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> Thanks Rafael. I think it's easier if Mark Brown takes the series in
> ASoC, I have additional ASoC patches that use the u64 helper.
>
> Mark?
>
>
> >>
> >> +int acpi_get_local_u64_address(acpi_handle handle, u64 *addr)
> >> +{
> >> + acpi_status status;
> >> +
> >> + status = acpi_evaluate_integer(handle, METHOD_NAME__ADR, NULL, addr);
> >> + if (ACPI_FAILURE(status))
> >> + return -ENODATA;
> >> + return 0;
> >> +}
> >> +EXPORT_SYMBOL(acpi_get_local_u64_address);
> >
> > I'd prefer EXPORT_SYMBOL_GPL() here unless you absolutely cannot live with it.
>
> I don't mind, but the existing helper was using EXPORT_SYMBOL so I just
> copied. It'd be odd to have two helpers that only differ by the argument
> size use a different EXPORT_ macro, no? Not to mention that the
> get_local address uses EXPORT_SYMBOL but would become a wrapper for an
> EXPORT_SYMBOL_GPL. That gives me a headache...
OK, fair enough.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-06-08 11:58 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20240528192936.16180-1-pierre-louis.bossart@linux.intel.com>
2024-05-28 19:29 ` [PATCH 1/3] ACPI: utils: introduce acpi_get_local_u64_address() Pierre-Louis Bossart
2024-06-07 18:51 ` Rafael J. Wysocki
2024-06-07 20:33 ` Pierre-Louis Bossart
2024-06-07 21:59 ` Mark Brown
2024-06-08 11:58 ` Rafael J. Wysocki
2024-05-28 19:29 ` [PATCH 2/3] soundwire: slave: simplify code with acpi_get_local_u64_address() Pierre-Louis Bossart
2024-06-02 14:49 ` Vinod Koul
2024-05-28 19:29 ` [PATCH 3/3] ALSA: hda: intel-sdw-acpi: use acpi_get_local_u64_address() Pierre-Louis Bossart
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox