[PATCH 1/1] sony-laptop: SVS151290S kbd backlight and gfx switch support

2013-03-17 Thread Arthur Wirski
SVS151290S series uses handle 0x0163 for keyboard backlight and 0x015B for the 
graphics switch.

Signed-off-by: Arthur Wirski 
---
 drivers/platform/x86/sony-laptop.c |   20 +++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/drivers/platform/x86/sony-laptop.c 
b/drivers/platform/x86/sony-laptop.c
index 14d4dce..997264e 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -1255,6 +1255,11 @@ static void sony_nc_notify(struct acpi_device *device, 
u32 event)
real_ev = __sony_nc_gfx_switch_status_get();
break;
 
+   case 0x015B:
+   /* Hybrid GFX switching SVS151290S */
+   ev_type = GFX_SWITCH;
+   real_ev = __sony_nc_gfx_switch_status_get();
+   break;
default:
dprintk("Unknown event 0x%x for handle 0x%x\n",
event, handle);
@@ -1353,6 +1358,7 @@ static void sony_nc_function_setup(struct acpi_device 
*device,
break;
case 0x0128:
case 0x0146:
+   case 0x015B:
result = sony_nc_gfx_switch_setup(pf_device, handle);
if (result)
pr_err("couldn't set up GFX Switch status 
(%d)\n",
@@ -1375,6 +1381,7 @@ static void sony_nc_function_setup(struct acpi_device 
*device,
case 0x0143:
case 0x014b:
case 0x014c:
+   case 0x0163:
result = sony_nc_kbd_backlight_setup(pf_device, handle);
if (result)
pr_err("couldn't set up keyboard backlight 
function (%d)\n",
@@ -1426,6 +1433,7 @@ static void sony_nc_function_cleanup(struct 
platform_device *pd)
break;
case 0x0128:
case 0x0146:
+   case 0x015B:
sony_nc_gfx_switch_cleanup(pd);
break;
case 0x0131:
@@ -1439,6 +1447,7 @@ static void sony_nc_function_cleanup(struct 
platform_device *pd)
case 0x0143:
case 0x014b:
case 0x014c:
+   case 0x0163:
sony_nc_kbd_backlight_cleanup(pd);
break;
default:
@@ -1485,6 +1494,7 @@ static void sony_nc_function_resume(void)
case 0x0143:
case 0x014b:
case 0x014c:
+   case 0x0163:
sony_nc_kbd_backlight_resume();
break;
default:
@@ -2390,7 +2400,9 @@ static int __sony_nc_gfx_switch_status_get(void)
 {
unsigned int result;
 
-   if (sony_call_snc_handle(gfxs_ctl->handle, 0x0100, &result))
+   if (sony_call_snc_handle(gfxs_ctl->handle,
+   gfxs_ctl->handle == 0x015B ? 0x : 0x0100,
+   &result))
return -EIO;
 
switch (gfxs_ctl->handle) {
@@ -2400,6 +2412,12 @@ static int __sony_nc_gfx_switch_status_get(void)
 */
return result & 0x1 ? SPEED : STAMINA;
break;
+   case 0x015B:
+   /* 0: discrete GFX (speed)
+* 1: integrated GFX (stamina)
+*/
+   return result & 0x1 ? STAMINA : SPEED;
+   break;
case 0x0128:
/* it's a more elaborated bitmask, for now:
 * 2: integrated GFX (stamina)
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 1/1] sony-laptop: SVS151290S kbd backlight and gfx switch support

2013-03-17 Thread Mattia Dongili
On Sun, Mar 17, 2013 at 08:21:35PM +0100, Arthur Wirski wrote:
> SVS151290S series uses handle 0x0163 for keyboard backlight and 0x015B for 
> the graphics switch.
> 
> Signed-off-by: Arthur Wirski 

Acked-by: Mattia Dongili 


Matthew,
could you pick this up for 3.10?

Thanks
-- 
mattia
:wq!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/