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 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 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 void g19_ep1_urb_completion(struct urb *urb) { /* don't process unlinked or failed urbs */ if (likely(urb->status == 0)) { struct hid_device *hdev = urb->context; struct gcommon_data *gdata = hid_get_gdata(hdev); struct g19_data *g19data = gdata->data; int i; for (i = 0; i < 8; i++) ginput_handle_key_event(gdata, 24+i, g19data->ep1keys[0]&(1<<i)); input_sync(gdata->input_dev); usb_submit_urb(urb, GFP_ATOMIC); } }
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); }