> -----Original Message----- > From: Kai-Heng Feng [mailto:kai.heng.feng@xxxxxxxxxxxxx] > Sent: Thursday, March 8, 2018 3:12 PM > To: mjg59@xxxxxxxxxxxxx; pali.rohar@xxxxxxxxx; dvhart@xxxxxxxxxxxxx; > andy@xxxxxxxxxxxxx; Limonciello, Mario <Mario_Limonciello@xxxxxxxx>; > tiwai@xxxxxxxx > Cc: platform-driver-x86@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; alsa- > devel@xxxxxxxxxxxxxxxx; Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx> > Subject: [PATCH 2/2] platform/x86: dell-*: Add interface for switchable graphics > status query > > On some Dell platforms, there's a BIOS option "Enable Switchable > Graphics". This information is useful if we want to do different things > based on this value, e.g. disable unused audio controller that comes > with the discrete graphics. > I was expecting the follow on patch that uses this interface too as part of the series. This patch itself however looks like. Reviewed-by: Mario Limonciello <mario.limonciello@xxxxxxxx> > Signed-off-by: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx> > --- > drivers/platform/x86/dell-laptop.c | 23 +++++++++++++++++++++++ > drivers/platform/x86/dell-smbios.c | 2 ++ > drivers/platform/x86/dell-smbios.h | 2 ++ > 3 files changed, 27 insertions(+) > > diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c > index 8ba820e6c3d0..3f6fc07b8cf2 100644 > --- a/drivers/platform/x86/dell-laptop.c > +++ b/drivers/platform/x86/dell-laptop.c > @@ -2116,6 +2116,29 @@ int dell_micmute_led_set(int state) > } > EXPORT_SYMBOL_GPL(dell_micmute_led_set); > > +int dell_switchable_gfx_enabled(bool *enabled) > +{ > + struct calling_interface_buffer buffer; > + struct calling_interface_token *token; > + int ret; > + > + *enabled = false; > + > + token = dell_smbios_find_token(SWITCHABLE_GRAPHICS_ENABLE); > + if (!token) > + return -ENODEV; > + > + dell_fill_request(&buffer, token->location, 0, 0, 0); > + ret = dell_send_request(&buffer, CLASS_TOKEN_READ, > SELECT_TOKEN_STD); > + if (ret) > + return ret; > + > + *enabled = !!buffer.output[1]; > + > + return 0; > +} > +EXPORT_SYMBOL_GPL(dell_switchable_gfx_enabled); > + > static int __init dell_init(void) > { > struct calling_interface_token *token; > diff --git a/drivers/platform/x86/dell-smbios.c b/drivers/platform/x86/dell-smbios.c > index 8541cde4cb7d..ca38b9d9dcf4 100644 > --- a/drivers/platform/x86/dell-smbios.c > +++ b/drivers/platform/x86/dell-smbios.c > @@ -86,6 +86,8 @@ struct token_range { > static struct token_range token_whitelist[] = { > /* used by userspace: fwupdate */ > {CAP_SYS_ADMIN, CAPSULE_EN_TOKEN, CAPSULE_DIS_TOKEN}, > + /* can indicate to userspace Switchable Graphics enable status */ > + {CAP_SYS_ADMIN, SWITCHABLE_GRAPHICS_ENABLE, > SWITCHABLE_GRAPHICS_DISABLE}, > /* can indicate to userspace that WMI is needed */ > {0x0000, WSMT_EN_TOKEN, WSMT_DIS_TOKEN} > }; > diff --git a/drivers/platform/x86/dell-smbios.h b/drivers/platform/x86/dell-smbios.h > index 138d478d9adc..b012d4abd239 100644 > --- a/drivers/platform/x86/dell-smbios.h > +++ b/drivers/platform/x86/dell-smbios.h > @@ -37,6 +37,8 @@ > #define KBD_LED_AUTO_100_TOKEN 0x02F6 > #define GLOBAL_MIC_MUTE_ENABLE 0x0364 > #define GLOBAL_MIC_MUTE_DISABLE 0x0365 > +#define SWITCHABLE_GRAPHICS_ENABLE 0x037A > +#define SWITCHABLE_GRAPHICS_DISABLE 0x037B > > struct notifier_block; > > -- > 2.15.1