Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a9303638 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt Committed by Linus Torvalds
Browse files

[PATCH] backlight last round of fixes



Fix some more problems (inverted use of semaphores in some places).  He
also moved my checks into within the protected section which is better.

Signed-off-by: default avatarMichael Hanselmann <linux-kernel@hansmi.ch>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 4cfb04a9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -167,11 +167,11 @@ void __init pmu_backlight_init()
				pmu_backlight_data.max_brightness / 15);
	}

	up(&bd->sem);
	down(&bd->sem);
	bd->props->brightness = level;
	bd->props->power = FB_BLANK_UNBLANK;
	bd->props->update_status(bd);
	down(&bd->sem);
	up(&bd->sem);

	mutex_lock(&pmac_backlight_mutex);
	if (!pmac_backlight)
+10 −9
Original line number Diff line number Diff line
@@ -1800,14 +1800,15 @@ static struct backlight_properties aty128_bl_data = {

static void aty128_bl_set_power(struct fb_info *info, int power)
{
	if (info->bl_dev == NULL)
		return;

	mutex_lock(&info->bl_mutex);
	up(&info->bl_dev->sem);

	if (info->bl_dev) {
		down(&info->bl_dev->sem);
		info->bl_dev->props->power = power;
		__aty128_bl_update_status(info->bl_dev);
	down(&info->bl_dev->sem);
		up(&info->bl_dev->sem);
	}

	mutex_unlock(&info->bl_mutex);
}

@@ -1842,11 +1843,11 @@ static void aty128_bl_init(struct aty128fb_par *par)
		219 * FB_BACKLIGHT_MAX / MAX_LEVEL);
	mutex_unlock(&info->bl_mutex);

	up(&bd->sem);
	down(&bd->sem);
	bd->props->brightness = aty128_bl_data.max_brightness;
	bd->props->power = FB_BLANK_UNBLANK;
	bd->props->update_status(bd);
	down(&bd->sem);
	up(&bd->sem);

#ifdef CONFIG_PMAC_BACKLIGHT
	mutex_lock(&pmac_backlight_mutex);
+10 −9
Original line number Diff line number Diff line
@@ -2199,14 +2199,15 @@ static struct backlight_properties aty_bl_data = {

static void aty_bl_set_power(struct fb_info *info, int power)
{
	if (info->bl_dev == NULL)
		return;

	mutex_lock(&info->bl_mutex);
	up(&info->bl_dev->sem);

	if (info->bl_dev) {
		down(&info->bl_dev->sem);
		info->bl_dev->props->power = power;
		__aty_bl_update_status(info->bl_dev);
	down(&info->bl_dev->sem);
		up(&info->bl_dev->sem);
	}

	mutex_unlock(&info->bl_mutex);
}

@@ -2237,11 +2238,11 @@ static void aty_bl_init(struct atyfb_par *par)
		0xFF * FB_BACKLIGHT_MAX / MAX_LEVEL);
	mutex_unlock(&info->bl_mutex);

	up(&bd->sem);
	down(&bd->sem);
	bd->props->brightness = aty_bl_data.max_brightness;
	bd->props->power = FB_BLANK_UNBLANK;
	bd->props->update_status(bd);
	down(&bd->sem);
	up(&bd->sem);

#ifdef CONFIG_PMAC_BACKLIGHT
	mutex_lock(&pmac_backlight_mutex);
+2 −2
Original line number Diff line number Diff line
@@ -195,11 +195,11 @@ void radeonfb_bl_init(struct radeonfb_info *rinfo)
		217 * FB_BACKLIGHT_MAX / MAX_RADEON_LEVEL);
	mutex_unlock(&rinfo->info->bl_mutex);

	up(&bd->sem);
	down(&bd->sem);
	bd->props->brightness = radeon_bl_data.max_brightness;
	bd->props->power = FB_BLANK_UNBLANK;
	bd->props->update_status(bd);
	down(&bd->sem);
	up(&bd->sem);

#ifdef CONFIG_PMAC_BACKLIGHT
	mutex_lock(&pmac_backlight_mutex);
+10 −8
Original line number Diff line number Diff line
@@ -112,13 +112,15 @@ static struct backlight_properties nvidia_bl_data = {

void nvidia_bl_set_power(struct fb_info *info, int power)
{
	if (info->bl_dev == NULL)
		return;
	mutex_lock(&info->bl_mutex);
	up(&info->bl_dev->sem);

	if (info->bl_dev) {
		down(&info->bl_dev->sem);
		info->bl_dev->props->power = power;
		__nvidia_bl_update_status(info->bl_dev);
	down(&info->bl_dev->sem);
		up(&info->bl_dev->sem);
	}

	mutex_unlock(&info->bl_mutex);
}

@@ -153,11 +155,11 @@ void nvidia_bl_init(struct nvidia_par *par)
		0x534 * FB_BACKLIGHT_MAX / MAX_LEVEL);
	mutex_unlock(&info->bl_mutex);

	up(&bd->sem);
	down(&bd->sem);
	bd->props->brightness = nvidia_bl_data.max_brightness;
	bd->props->power = FB_BLANK_UNBLANK;
	bd->props->update_status(bd);
	down(&bd->sem);
	up(&bd->sem);

#ifdef CONFIG_PMAC_BACKLIGHT
	mutex_lock(&pmac_backlight_mutex);
Loading