Begin add get lnp_rgb_led from cdev
This commit is contained in:
parent
5095cabcad
commit
0d285558c3
1 changed files with 31 additions and 0 deletions
|
@ -49,6 +49,35 @@ struct lnp_device {
|
|||
void *fans_data;
|
||||
};
|
||||
|
||||
static int lnp_rgb_let_brightness_set(struct led_classdev *cdev,
|
||||
enum led_brightness)
|
||||
{
|
||||
struct hid_device *hdev = to_hid_device(cdev->dev->parent);
|
||||
struct led_classdev_mc *mc_cdev = lcdev_to_mccdev(cdev);
|
||||
struct lnp_device *lnp_dev = hid_get_drvdata(hdev);
|
||||
|
||||
int ret, fan_index, led_index;
|
||||
ret = sscanf(cdev->name, "%*[^:]:%*[^:]:fan-%d-led-%d", &fan_index,
|
||||
&led_index);
|
||||
if (ret != 2) {
|
||||
hid_warn(hdev, "Failed to get fan index and led_index for %s",
|
||||
lnp_dev->dev_name);
|
||||
return -ENOMSG;
|
||||
}
|
||||
|
||||
hid_info(hdev, "Fan Index: %d, Led Index: %d", fan_index, led_index);
|
||||
|
||||
struct lnp_fan *lnp_fan = lnp_dev->fans_data + fan_index;
|
||||
struct lnp_rgb_led *lnp_rgb_led = lnp_fan->rgb_leds_data + led_index;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static enum led_brightness lnp_rgb_let_brightness_get(struct led_classdev *cdev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int lnp_register_rgb_led(struct lnp_device *lnp_dev,
|
||||
struct lnp_fan *fan_data,
|
||||
struct lnp_rgb_led *rgb_led_data)
|
||||
|
@ -90,6 +119,8 @@ static inline int lnp_register_rgb_led(struct lnp_device *lnp_dev,
|
|||
|
||||
led_cdev->brightness = 0;
|
||||
led_cdev->max_brightness = 255;
|
||||
led_cdev->brightness_get = lnp_rgb_let_brightness_get;
|
||||
led_cdev->brightness_set_blocking = lnp_rgb_let_brightness_set;
|
||||
|
||||
ret = devm_led_classdev_multicolor_register(&hdev->dev,
|
||||
&rgb_led_data->cdev);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue