Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7517a17c authored by Mattia Dongili's avatar Mattia Dongili Committed by Matthew Garrett
Browse files

sony-laptop: support basic functions for handle 0x14B and 0x14C



Z series and other recent models have 0x14? for lid and keyboard
backlight.

Signed-off-by: default avatarMattia Dongili <malattia@linux.it>
Signed-off-by: default avatarMatthew Garrett <matthew.garrett@nebula.com>
parent 3a7abcd8
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -1373,6 +1373,8 @@ static void sony_nc_function_setup(struct acpi_device *device,
			break;
		case 0x0137:
		case 0x0143:
		case 0x014b:
		case 0x014c:
			result = sony_nc_kbd_backlight_setup(pf_device, handle);
			if (result)
				pr_err("couldn't set up keyboard backlight function (%d)\n",
@@ -1435,6 +1437,8 @@ static void sony_nc_function_cleanup(struct platform_device *pd)
			break;
		case 0x0137:
		case 0x0143:
		case 0x014b:
		case 0x014c:
			sony_nc_kbd_backlight_cleanup(pd);
			break;
		default:
@@ -1479,6 +1483,8 @@ static void sony_nc_function_resume(void)
			break;
		case 0x0137:
		case 0x0143:
		case 0x014b:
		case 0x014c:
			sony_nc_kbd_backlight_resume();
			break;
		default:
@@ -2636,6 +2642,8 @@ static void sony_nc_backlight_ng_read_limits(int handle,
		lvl_table_len = 9;
		break;
	case 0x143:
	case 0x14b:
	case 0x14c:
		lvl_table_len = 16;
		break;
	}
@@ -2687,6 +2695,18 @@ static void sony_nc_backlight_setup(void)
		sony_nc_backlight_ng_read_limits(0x143, &sony_bl_props);
		max_brightness = sony_bl_props.maxlvl - sony_bl_props.offset;

	} else if (sony_find_snc_handle(0x14b) >= 0) {
		ops = &sony_backlight_ng_ops;
		sony_bl_props.cmd_base = 0x3000;
		sony_nc_backlight_ng_read_limits(0x14b, &sony_bl_props);
		max_brightness = sony_bl_props.maxlvl - sony_bl_props.offset;

	} else if (sony_find_snc_handle(0x14c) >= 0) {
		ops = &sony_backlight_ng_ops;
		sony_bl_props.cmd_base = 0x3000;
		sony_nc_backlight_ng_read_limits(0x14c, &sony_bl_props);
		max_brightness = sony_bl_props.maxlvl - sony_bl_props.offset;

	} else if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "GBRT",
						&unused))) {
		ops = &sony_backlight_ops;