|
|
@@ -165,9 +165,9 @@ int set_color(unsigned int color)
|
|
|
unsigned char blue_pwm_l = 0;
|
|
|
unsigned char blue_pwm_h = 0;
|
|
|
|
|
|
- red = 255 - ((color >> 16) & 0xff);
|
|
|
- green = 255 - ((color >> 8) & 0xff);
|
|
|
- blue = 255 - (color & 0xff);
|
|
|
+ red = (255 - ((color >> 16) & 0xff)) * global_dev->lightring->brightness / 100;
|
|
|
+ green = (255 - ((color >> 8) & 0xff)) * global_dev->lightring->brightness / 100;
|
|
|
+ blue = (255 - (color & 0xff)) * global_dev->lightring->brightness / 100;
|
|
|
|
|
|
red_pwm_l = (red * 4095 / 255) & 0xff;
|
|
|
red_pwm_h = ((red * 4095 / 255) >> 8) & 0x0f;
|
|
|
@@ -213,10 +213,19 @@ static ssize_t brightness_store(struct kobject *kobj, struct kobj_attribute *att
|
|
|
|
|
|
ret = kstrtou32(buf, 10, &val);
|
|
|
if (ret < 0)
|
|
|
+ {
|
|
|
+ printk("Lightring: brightness format error\n");
|
|
|
return ret;
|
|
|
-
|
|
|
+ }
|
|
|
+ if(val > 100)
|
|
|
+ {
|
|
|
+ printk("Lightring: brightness out of range\n");
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
/* 硬件操作:设置亮度 */
|
|
|
global_dev->lightring->brightness = val;
|
|
|
+ set_color(global_dev->lightring->color);
|
|
|
+
|
|
|
pr_info("Lightring: brightness set to %u\n", val);
|
|
|
|
|
|
return count;
|
|
|
@@ -688,7 +697,7 @@ int light_ring_init(void)
|
|
|
}
|
|
|
|
|
|
/* 默认值 */
|
|
|
- global_dev->lightring->brightness = 128;
|
|
|
+ global_dev->lightring->brightness = 60;
|
|
|
global_dev->lightring->color = 0xFFFFFF; /* 白色 */
|
|
|
global_dev->lightring->max_fade_brightness = 255;
|
|
|
global_dev->lightring->mode = 0; /* static */
|