|
@@ -397,6 +397,12 @@ static ssize_t store_bl_curve(struct class_device *class_device,
|
|
|
u8 tmp_curve[FB_BACKLIGHT_LEVELS];
|
|
|
unsigned int i;
|
|
|
|
|
|
+ /* Some drivers don't use framebuffer_alloc(), but those also
|
|
|
+ * don't have backlights.
|
|
|
+ */
|
|
|
+ if (!fb_info || !fb_info->bl_dev)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
if (count != (FB_BACKLIGHT_LEVELS / 8 * 24))
|
|
|
return -EINVAL;
|
|
|
|
|
@@ -430,6 +436,12 @@ static ssize_t show_bl_curve(struct class_device *class_device, char *buf)
|
|
|
ssize_t len = 0;
|
|
|
unsigned int i;
|
|
|
|
|
|
+ /* Some drivers don't use framebuffer_alloc(), but those also
|
|
|
+ * don't have backlights.
|
|
|
+ */
|
|
|
+ if (!fb_info || !fb_info->bl_dev)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
mutex_lock(&fb_info->bl_mutex);
|
|
|
for (i = 0; i < FB_BACKLIGHT_LEVELS; i += 8)
|
|
|
len += snprintf(&buf[len], PAGE_SIZE,
|