> -----Original Message----- > From: Kai-Heng Feng [mailto:kai.heng.f...@canonical.com] > Sent: Thursday, March 8, 2018 3:12 PM > To: mj...@srcf.ucam.org; pali.ro...@gmail.com; dvh...@infradead.org; > a...@infradead.org; Limonciello, Mario <mario_limoncie...@dell.com>; > ti...@suse.com > Cc: platform-driver-...@vger.kernel.org; linux-kernel@vger.kernel.org; alsa- > de...@alsa-project.org; Kai-Heng Feng <kai.heng.f...@canonical.com> > 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.limoncie...@dell.com> > Signed-off-by: Kai-Heng Feng <kai.heng.f...@canonical.com> > --- > 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