Re: [alsa-devel] [PATCH] ASoC: Intel: common: Replace sst_acpi_check_hid with acpi_dev_present

From: Pierre-Louis Bossart
Date: Fri Nov 10 2017 - 09:39:52 EST




On 11/10/2017 05:33 AM, Hans de Goede wrote:
Hi,

On 09-11-17 22:07, Jeremy Cline wrote:
Replace the sst_acpi_check_hid helper function added in
commit 915ae2b9f0fe ("ASoC: Intel: Create a helper to search for
matching machine") with the generic acpi_dev_present helper function
and remove the now unused sst_acpi_check_hid function. This should have
no functional change.

Signed-off-by: Jeremy Cline <jeremy@xxxxxxxxxx>

I've just successfully tested this on an Assu T100HA:

Tested-by: Hans de Goede <hdegoede@xxxxxxxxxx>
Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx>

I don't mind this change, but I'd also like to see a bit more testing with weird devices to check that the code is indeed equivalent (not obvious from a quick code inspection). Surface 3 was broken recently due to lack of testing of a change that 'should have been functionally equivalent'.

Also this patch will not apply, the code was changed to remove any reference to the sst driver, you need to rebase against broonie/for-next.


Regards,

Hans



---
 sound/soc/intel/common/sst-acpi.h | 3 ---
 sound/soc/intel/common/sst-match-acpi.c | 32 ++------------------------------
 2 files changed, 2 insertions(+), 33 deletions(-)

diff --git a/sound/soc/intel/common/sst-acpi.h b/sound/soc/intel/common/sst-acpi.h
index afe9b87b8bd5..d7facac83b7e 100644
--- a/sound/soc/intel/common/sst-acpi.h
+++ b/sound/soc/intel/common/sst-acpi.h
@@ -43,9 +43,6 @@ static inline bool sst_acpi_find_package_from_hid(const u8 hid[ACPI_ID_LEN],
 /* acpi match */
 struct sst_acpi_mach *sst_acpi_find_machine(struct sst_acpi_mach *machines);
 -/* acpi check hid */
-bool sst_acpi_check_hid(const u8 hid[ACPI_ID_LEN]);
-
 /* Descriptor for SST ASoC machine driver */
 struct sst_acpi_mach {
ÂÂÂÂÂ /* ACPI ID for the matching machine driver. Audio codec for instance */
diff --git a/sound/soc/intel/common/sst-match-acpi.c b/sound/soc/intel/common/sst-match-acpi.c
index 56d26f36a3cb..f8e1b92de79a 100644
--- a/sound/soc/intel/common/sst-match-acpi.c
+++ b/sound/soc/intel/common/sst-match-acpi.c
@@ -49,40 +49,12 @@ const char *sst_acpi_find_name_from_hid(const u8 hid[ACPI_ID_LEN])
 }
 EXPORT_SYMBOL_GPL(sst_acpi_find_name_from_hid);
 -static acpi_status sst_acpi_mach_match(acpi_handle handle, u32 level,
-ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ void *context, void **ret)
-{
-ÂÂÂ unsigned long long sta;
-ÂÂÂ acpi_status status;
-
-ÂÂÂ *(bool *)context = true;
-ÂÂÂ status = acpi_evaluate_integer(handle, "_STA", NULL, &sta);
-ÂÂÂ if (ACPI_FAILURE(status) || !(sta & ACPI_STA_DEVICE_PRESENT))
-ÂÂÂÂÂÂÂ *(bool *)context = false;
-
-ÂÂÂ return AE_OK;
-}
-
-bool sst_acpi_check_hid(const u8 hid[ACPI_ID_LEN])
-{
-ÂÂÂ acpi_status status;
-ÂÂÂ bool found = false;
-
-ÂÂÂ status = acpi_get_devices(hid, sst_acpi_mach_match, &found, NULL);
-
-ÂÂÂ if (ACPI_FAILURE(status))
-ÂÂÂÂÂÂÂ return false;
-
-ÂÂÂ return found;
-}
-EXPORT_SYMBOL_GPL(sst_acpi_check_hid);
-
 struct sst_acpi_mach *sst_acpi_find_machine(struct sst_acpi_mach *machines)
 {
ÂÂÂÂÂ struct sst_acpi_mach *mach;
 Â for (mach = machines; mach->id[0]; mach++) {
-ÂÂÂÂÂÂÂ if (sst_acpi_check_hid(mach->id) == true) {
+ÂÂÂÂÂÂÂ if (acpi_dev_present(mach->id, NULL, -1) == true) {
ÂÂÂÂÂÂÂÂÂÂÂÂÂ if (mach->machine_quirk == NULL)
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ return mach;
 @@ -161,7 +133,7 @@ struct sst_acpi_mach *sst_acpi_codec_list(void *arg)
ÂÂÂÂÂÂÂÂÂ return mach;
 Â for (i = 0; i < codec_list->num_codecs; i++) {
-ÂÂÂÂÂÂÂ if (sst_acpi_check_hid(codec_list->codecs[i]) != true)
+ÂÂÂÂÂÂÂ if (acpi_dev_present(codec_list->codecs[i], NULL, -1) != true)
ÂÂÂÂÂÂÂÂÂÂÂÂÂ return NULL;
ÂÂÂÂÂ }

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel