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;
|
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,
|
static inline int lnp_register_rgb_led(struct lnp_device *lnp_dev,
|
||||||
struct lnp_fan *fan_data,
|
struct lnp_fan *fan_data,
|
||||||
struct lnp_rgb_led *rgb_led_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->brightness = 0;
|
||||||
led_cdev->max_brightness = 255;
|
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,
|
ret = devm_led_classdev_multicolor_register(&hdev->dev,
|
||||||
&rgb_led_data->cdev);
|
&rgb_led_data->cdev);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue