在 2018/7/14 0:38, Takashi Iwai 写道:
On Fri, 13 Jul 2018 17:25:39 +0200, jimqu wrote:在 2018/7/13 16:46, Takashi Iwai 写道: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@xxxxxxx>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.The hda->use_vga_switcheroo is set to 1 in init_vga_switcheroo() if bound vga pci dev is not NULL. Since the hda->use_vga_switcheroo is checked at beginning of the function. so the p which pass into vga_switcheroo_register_audio_client() is constant valid value.So the NULL-check in the patch is also useless, no? :) Ha-ha, indeed, the NULL-check of p is unnecessary. will update in v2. Thanks JimQu Takashi |
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel