[alsa-devel] [PATCH 2/2] vgaswitchreoo: set audio client id in vgaswitchreoo enable function
Takashi Iwai
tiwai at suse.de
Fri Jul 13 10:46:34 CEST 2018
On Fri, 13 Jul 2018 10:06:02 +0200,
Jim Qu wrote:
>
> On modern laptop, there are more and more platforms
> have two GPUs, and each of them maybe have audio codec
> for HDMP/DP output. For some dGPU which is no output,
> audio codec usually is disabled.
>
> In currect HDA audio driver, it will set all codec as
> VGA_SWITCHEROO_DIS, the audio which is binded to UMA
> will be suspended if user use debugfs to contorl power
>
> In HDA driver side, it is difficult to know which GPU
> the audio has binded to. So set the bound gpu pci dev
> to vgaswitchroo, the correct audio id will be set in
> vgaswitchreoo enable function.
>
> Signed-off-by: Jim Qu <Jim.Qu at amd.com>
The idea looks good to me. Just a nitpick:
> @@ -1319,15 +1319,16 @@ static const struct vga_switcheroo_client_ops azx_vs_ops = {
> static int register_vga_switcheroo(struct azx *chip)
> {
> struct hda_intel *hda = container_of(chip, struct hda_intel, chip);
> + struct pci_dev * p;
> int err;
>
> if (!hda->use_vga_switcheroo)
> return 0;
> - /* FIXME: currently only handling DIS controller
> - * is there any machine with two switchable HDMI audio controllers?
> - */
> - err = vga_switcheroo_register_audio_client(chip->pci, &azx_vs_ops,
> - VGA_SWITCHEROO_DIS);
> +
> + p = get_bound_vga(chip->pci);
> + err = vga_switcheroo_register_audio_client(chip->pci, &azx_vs_ops, p);
> + if (p)
> + pci_dev_put(p);
Passing a NULL vga_dev won't work, so the NULL check after calling
vga_switcheroo_register_audio_client() is moot. If any, it should be
checked before that.
thanks,
Takashi
More information about the Alsa-devel
mailing list