All of lore.kernel.org
 help / color / mirror / Atom feed
From: Len Brown <lenb@kernel.org>
To: akpm@osdl.org
Cc: linux-acpi@vger.kernel.org, linux-kernel@ttuttle.net,
	len.brown@intel.com
Subject: Re: [patch 08/19] Implementation of acpi_video_get_next_level()
Date: Wed, 20 Dec 2006 01:39:46 -0500	[thread overview]
Message-ID: <200612200139.46520.lenb@kernel.org> (raw)
In-Reply-To: <200612192056.kBJKuEsM010029@shell0.pdx.osdl.net>

Applied.

thanks,
-Len

On Tuesday 19 December 2006 15:56, akpm@osdl.org wrote:
> From: Thomas Tuttle <linux-kernel@ttuttle.net>
> 
> acpi_video_get_next_level was supposed to implement an algorithm to select
> a new brightness level based on the old brightness level of an ACPI video
> device, but it simply says "/* Fix me */" and returns the current
> brightness.
> 
> This patch implements acpi_video_get_next_level properly.  It had to change
> a few constants at the top of the file because they were (apparently)
> wrong, but it appears to work on my Dell Inspiron e1405 (with BIOS A05
> only--BIOS A04 doesn't seem to send ACPI video hotkey events).
> 
> [akpm@osdl.org: cleanups]
> Cc: Len Brown <len.brown@intel.com>
> Signed-off-by: Thomas Tuttle <linux-kernel@ttuttle.net>
> Signed-off-by: Andrew Morton <akpm@osdl.org>
> ---
> 
>  drivers/acpi/video.c |   41 ++++++++++++++++++++++++++++++++++-------
>  1 files changed, 34 insertions(+), 7 deletions(-)
> 
> diff -puN drivers/acpi/video.c~implementation-of-acpi_video_get_next_level drivers/acpi/video.c
> --- a/drivers/acpi/video.c~implementation-of-acpi_video_get_next_level
> +++ a/drivers/acpi/video.c
> @@ -3,6 +3,7 @@
>   *
>   *  Copyright (C) 2004 Luming Yu <luming.yu@intel.com>
>   *  Copyright (C) 2004 Bruno Ducrot <ducrot@poupinou.org>
> + *  Copyright (C) 2006 Thomas Tuttle <linux-kernel@ttuttle.net>
>   *
>   * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   *
> @@ -47,11 +48,11 @@
>  #define ACPI_VIDEO_NOTIFY_NEXT_OUTPUT	0x83
>  #define ACPI_VIDEO_NOTIFY_PREV_OUTPUT	0x84
>  
> -#define ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS	0x82
> -#define	ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS	0x83
> -#define ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS	0x84
> -#define ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS	0x85
> -#define ACPI_VIDEO_NOTIFY_DISPLAY_OFF		0x86
> +#define ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS	0x85
> +#define	ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS	0x86
> +#define ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS	0x87
> +#define ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS	0x88
> +#define ACPI_VIDEO_NOTIFY_DISPLAY_OFF		0x89
>  
>  #define ACPI_VIDEO_HEAD_INVALID		(~0u - 1)
>  #define ACPI_VIDEO_HEAD_END		(~0u)
> @@ -1502,8 +1503,34 @@ static int
>  acpi_video_get_next_level(struct acpi_video_device *device,
>  			  u32 level_current, u32 event)
>  {
> -	/*Fix me */
> -	return level_current;
> +	int min, max, min_above, max_below, i, l;
> +	max = max_below = 0;
> +	min = min_above = 255;
> +	for (i = 0; i < device->brightness->count; i++) {
> +		l = device->brightness->levels[i];
> +		if (l < min)
> +			min = l;
> +		if (l > max)
> +			max = l;
> +		if (l < min_above && l > level_current)
> +			min_above = l;
> +		if (l > max_below && l < level_current)
> +			max_below = l;
> +	}
> +
> +	switch (event) {
> +	case ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS:
> +		return (level_current < max) ? min_above : min;
> +	case ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS:
> +		return (level_current < max) ? min_above : max;
> +	case ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS:
> +		return (level_current > min) ? max_below : min;
> +	case ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS:
> +	case ACPI_VIDEO_NOTIFY_DISPLAY_OFF:
> +		return 0;
> +	default:
> +		return level_current;
> +	}
>  }
>  
>  static void
> _
> 

      reply	other threads:[~2006-12-20  6:40 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-19 20:56 [patch 08/19] Implementation of acpi_video_get_next_level() akpm
2006-12-20  6:39 ` Len Brown [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200612200139.46520.lenb@kernel.org \
    --to=lenb@kernel.org \
    --cc=akpm@osdl.org \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@ttuttle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.