ALSA: HDA: intel-sdw-acpi: add kernel parameter to select alternate controller
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Thu, 8 Feb 2024 16:37:50 +0000 (10:37 -0600)
committerTakashi Iwai <tiwai@suse.de>
Fri, 9 Feb 2024 10:22:19 +0000 (11:22 +0100)
commit3d6a89a6dc58f2a96daf7fd4232970794ffbb188
tree62ae4a1b4e1d6ec0b3d7b18720e5a01356b96175
parent498e963ec7f0e26d505a84e17723a458b03fca72
ALSA: HDA: intel-sdw-acpi: add kernel parameter to select alternate controller

Existing DSDT or SSDT platforms hard-code clock and frame shape
configurations. For validation, we'd like to use alternate
configurations. It's not always possible to generate new tables due to
missing symbols, and modifying existing objects usually leads to
AE_OBJECT_EXIST errors.

The mechanism suggested in this patch is to add a NEW ACPI controller
device with a different _ADR value. e.g.

 Scope (_SB_.PC00.RP08.PXSX.HDAS) {

   Device (SDWP)
            {
                Name (_ADR, 0x40000001)  // _ADR: Address

The desired _ADR can be passed as a parameter with

options snd-intel-sdw-acpi sdw_ctrl_addr=0x40000001

This solution leads to minimal tables with just what the developers or
validation engineers need, and without overriding any of the existing
firmware definitions. It's consistent with the recommendation to
extend ACPI definitions and not redefine them with a risk of conflict.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20240208163750.92849-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/hda/intel-sdw-acpi.c