static enum led_brightness g19_led_screen_bl_get(struct led_classdev *led_cdev) { struct hid_device *hdev = gcore_led_classdev_to_hdev(led_cdev); struct gcore_data *gdata = hid_get_gdata(hdev); struct g19_data *g19data = gdata->data; if (led_cdev == gdata->led_cdev[G19_LED_BL_SCREEN]) return g19data->screen_bl; dev_err(&hdev->dev, G19_NAME " error retrieving LED brightness\n"); return LED_OFF; }
static void g19_led_screen_bl_set(struct led_classdev *led_cdev, enum led_brightness value) { struct hid_device *hdev = gcore_led_classdev_to_hdev(led_cdev); struct gcore_data *gdata = hid_get_gdata(hdev); struct g19_data *g19data = gdata->data; if (led_cdev == gdata->led_cdev[G19_LED_BL_SCREEN]) { if (value > 100) value = 100; g19data->screen_bl = value; g19_led_screen_bl_send(hdev); } }
static enum led_brightness g15v2_led_bl_get(struct led_classdev *led_cdev) { struct hid_device *hdev = gcore_led_classdev_to_hdev(led_cdev); struct gcore_data *gdata = hid_get_gdata(hdev); struct g15v2_data *g15data = gdata->data; if (led_cdev == gdata->led_cdev[G15V2_LED_BL_KEYS]) return g15data->backlight; else if (led_cdev == gdata->led_cdev[G15V2_LED_BL_SCREEN]) return g15data->screen_bl; else if (led_cdev == gdata->led_cdev[G15V2_LED_BL_CONTRAST]) return g15data->screen_contrast; dev_err(&hdev->dev, G15V2_NAME " error retrieving LED brightness\n"); return LED_OFF; }
static void g510_led_bl_brightness_set(struct led_classdev *led_cdev, enum led_brightness value) { struct hid_device *hdev = gcore_led_classdev_to_hdev(led_cdev); struct gcore_data *gdata = hid_get_gdata(hdev); struct g510_data *g510data = gdata->data; if (led_cdev == gdata->led_cdev[G510_LED_BL_R]) g510data->backlight_rgb[0] = value; else if (led_cdev == gdata->led_cdev[G510_LED_BL_G]) g510data->backlight_rgb[1] = value; else if (led_cdev == gdata->led_cdev[G510_LED_BL_B]) g510data->backlight_rgb[2] = value; g510_led_bl_send(hdev); }
static enum led_brightness g510_led_bl_brightness_get(struct led_classdev *led_cdev) { struct hid_device *hdev = gcore_led_classdev_to_hdev(led_cdev); struct gcore_data *gdata = hid_get_gdata(hdev); struct g510_data *g510data = gdata->data; if (led_cdev == gdata->led_cdev[G510_LED_BL_R]) return g510data->backlight_rgb[0]; else if (led_cdev == gdata->led_cdev[G510_LED_BL_G]) return g510data->backlight_rgb[1]; else if (led_cdev == gdata->led_cdev[G510_LED_BL_B]) return g510data->backlight_rgb[2]; dev_err(&hdev->dev, G510_NAME " error retrieving LED brightness\n"); return LED_OFF; }
static enum led_brightness g15v2_led_mbtns_brightness_get(struct led_classdev *led_cdev) { struct hid_device *hdev = gcore_led_classdev_to_hdev(led_cdev); struct gcore_data *gdata = hid_get_gdata(hdev); struct g15v2_data *g15data = gdata->data; int value = 0; if (led_cdev == gdata->led_cdev[G15V2_LED_M1]) value = g15data->led_mbtns & 0x01; else if (led_cdev == gdata->led_cdev[G15V2_LED_M2]) value = g15data->led_mbtns & 0x02; else if (led_cdev == gdata->led_cdev[G15V2_LED_M3]) value = g15data->led_mbtns & 0x04; else if (led_cdev == gdata->led_cdev[G15V2_LED_MR]) value = g15data->led_mbtns & 0x08; else dev_err(&hdev->dev, G15V2_NAME " error retrieving LED brightness\n"); if (value) return LED_FULL; return LED_OFF; }
static void g15v2_led_bl_set(struct led_classdev *led_cdev, enum led_brightness value) { struct hid_device *hdev = gcore_led_classdev_to_hdev(led_cdev); struct gcore_data *gdata = hid_get_gdata(hdev); struct g15v2_data *g15data = gdata->data; if (led_cdev == gdata->led_cdev[G15V2_LED_BL_KEYS]) { if (value > 2) value = 2; g15data->backlight = value; g15v2_led_send(hdev, 0x01, g15data->backlight, 0); } else if (led_cdev == gdata->led_cdev[G15V2_LED_BL_SCREEN]) { if (value > 2) value = 2; g15data->screen_bl = value<<4; g15v2_led_send(hdev, 0x02, g15data->screen_bl, 0); } else if (led_cdev == gdata->led_cdev[G15V2_LED_BL_CONTRAST]) { if (value > 63) value = 63; g15data->screen_contrast = value; g15v2_led_send(hdev, 0x20, 0x81, g15data->screen_contrast); } }
static void g15v2_led_mbtns_brightness_set(struct led_classdev *led_cdev, enum led_brightness value) { struct hid_device *hdev = gcore_led_classdev_to_hdev(led_cdev); struct gcore_data *gdata = hid_get_gdata(hdev); struct g15v2_data *g15data = gdata->data; u8 mask = 0; if (led_cdev == gdata->led_cdev[G15V2_LED_M1]) mask = 0x01; else if (led_cdev == gdata->led_cdev[G15V2_LED_M2]) mask = 0x02; else if (led_cdev == gdata->led_cdev[G15V2_LED_M3]) mask = 0x04; else if (led_cdev == gdata->led_cdev[G15V2_LED_MR]) mask = 0x08; if (mask && value) g15data->led_mbtns |= mask; else g15data->led_mbtns &= ~mask; g15v2_led_mbtns_send(hdev); }