On Thursday 12 April 2018 12:50:02 Takashi Iwai wrote:
...+#if IS_ENABLED(CONFIG_DELL_LAPTOP)
+static bool check_dell_switchable_gfx(struct pci_dev *pdev)
+{
+ bool (*dell_switchable_gfx_is_enabled_func)(void);
+ bool enabled;
+
+ /* 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;
@@ -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);
Hi!
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?
+ return -ENODEV;
+ }
--
Pali RohÃr
pali.rohar@xxxxxxxxx