On Tue, 19 Sep 2023 16:22:39 +0200, Stefan Binding wrote: > > From: Vitaly Rodionov <vitalyr@xxxxxxxxxxxxxxxxxxxxx> > > Some laptops require a hardware based mute system, where when a hotkey > is pressed, it forces the amp to be muted. > > For CS35L41, when the hotkey is pressed, an acpi notification is sent > to the CS35L41 Device Node. The driver needs to handle this notification > and call a _DSM function to retrieve the mute state. > > Since the amp is only muted during playback, the driver will only mute > or unmute if playback is occurring, otherwise it will save the mute > state for when playback starts. > > Only one handler can be registered for the acpi notification, but all > amps need to receive that notification, we can register a single handler > inside the Realtek HDA driver, so that it can then notify through the > component framework. > > Signed-off-by: Vitaly Rodionov <vitalyr@xxxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Stefan Binding <sbinding@xxxxxxxxxxxxxxxxxxxxx> The patch is a bit lengthy. I'd split the binding of patch_realtek.c into another patch. That part is fairly generic. > --- a/sound/pci/hda/patch_realtek.c > +++ b/sound/pci/hda/patch_realtek.c (snip) > +static void comp_acpi_device_notify(acpi_handle handle, u32 event, void *data) > +{ > + struct hda_codec *cdc = data; > + struct alc_spec *spec = cdc->spec; > + int i; > + > + codec_info(cdc, "ACPI Notification %d\n", event); > + > + for (i = 0; i < HDA_MAX_COMPONENTS; i++) { > + if (spec->comps[i].dev && spec->comps[i].acpi_notify) > + spec->comps[i].acpi_notify(acpi_device_handle(spec->comps[i].adev), event, > + spec->comps[i].dev); > + } > +} This function should be in #ifdef CONFIG_ACPI, too. thanks, Takashi