On Saturday 14 April 2018 12:45:12 Lukas Wunner wrote:
> On Thu, Apr 12, 2018 at 10:15:41PM +0800, Kai-Heng Feng wrote:
> > > >>@@ -1711,6 +1745,11 @@ static int azx_create(struct snd_card *card,
> > > >>struct pci_dev *pci,
> > > >> if (err < 0)
> > > >> return err;
> > > >>
> > > >>+ if (check_dell_switchable_gfx(pci)) {
> > > >>+ pci_disable_device(pci);
> > >
> > > Now looking at it again... This code disables all ATI and NVIDIA sound
> > > cards available in any Dell System (laptop or AIO) if system says that
> > > SG is enabled, right?
> > >
> > > It means that also any external ATI or NVIDIA PCI card with audio device
> > > connected to Thunderbolt (e.g. via PCI <--> TB bridge) is always
> > > unconditionally disabled too?
> >
> > I never thought of this case, thanks for bringing this up.
> > Do you have any suggestion to check if it connects to the system via
> > Thunderbolt?
>
> Just use pci_is_thunderbolt_attached(), introduced by 8531e283bee6,
> like this:
>
> if (check_dell_switchable_gfx(pci) && !pci_is_thunderbolt_attached(pci))And what about PCI-e device attached to ExpressCard slot? > > >>>+ /* Only need to check for Dell laptops and AIOs */ > > >>>+ if (!dmi_find_device(DMI_DEV_TYPE_OEM_STRING, "Dell System", > > >>>NULL) || > > >>>+ !(dmi_match(DMI_CHASSIS_TYPE, "10") || > > >>>+ dmi_match(DMI_CHASSIS_TYPE, "13")) || > > >>>+ !(pdev->vendor == PCI_VENDOR_ID_ATI || > > >>>+ pdev->vendor == PCI_VENDOR_ID_NVIDIA)) > > >>>+ return false; > > It sure would be nice if someone could add macros for the chassis type > to include/linux/dmi.h so that we don't have to use these magic numbers > everywhere: > > $ git grep -l DMI_CHASSIS_TYPE > drivers/firmware/dmi-id.c > drivers/firmware/dmi_scan.c > drivers/input/keyboard/atkbd.c > drivers/input/serio/i8042-x86ia64io.h > drivers/platform/x86/asus-wmi.c > drivers/platform/x86/dell-laptop.c > drivers/platform/x86/samsung-laptop.c > include/linux/mod_devicetable.h > scripts/mod/file2alias.c > > Thanks, > > Lukas -- Pali Rohár [email protected]
signature.asc
Description: PGP signature

