LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Finn Thain <fthain@telegraphics.com.au>
To: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: linux-kernel@vger.kernel.org, linux-m68k@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, Darren Hart <dvhart@infradead.org>,
	ibm-acpi-devel@lists.sourceforge.net,
	platform-driver-x86@vger.kernel.org
Subject: Re: [RFC 07/24] x86/thinkpad_acpi: Use arch_nvram_ops methods instead of nvram_read_byte() and nvram_write_byte()
Date: Sun, 31 May 2015 16:15:12 +1000 (AEST)	[thread overview]
Message-ID: <alpine.LNX.2.00.1505311605420.23528@nippy.intranet> (raw)
In-Reply-To: <20150531041114.GA30431@khazad-dum.debian.net>


On Sun, 31 May 2015, Henrique de Moraes Holschuh wrote:

> On Sun, 31 May 2015, Finn Thain wrote:
> > Make use of arch_nvram_ops in the thinkpad_acpi driver so that the 
> > nvram_* function exports can be removed.
> > 
> > This patch series was tested on a ThinkPad T43.
> 
> Can you describe how you did the testing?  A specific procedure is 
> required to test the hotkey NVRAM polling codepaths (which will read 
> several NVRAM bytes @10Hz by default) in a T43...
> 
> > Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
> 
> The patch looks correct, so I don't expect any problems.
> 
> Provided that your test procedure did enable hotkey NVRAM polling in the 
> T43 and your hotkeys all still worked fine, you have my Acked-by.

The procedure I used was this,

1. $ xev
2. # rmmod thinkpad_acpi
3. Press <Access IBM> key and confirm that xev does not report any
   events.
4. # modprobe thinkpad_acpi
5. Press <Access IBM> key and confirm that xev now reports the key press 
   events.

Is this sufficient?

Regards,
Finn

> 
> > ---
> >  drivers/platform/x86/thinkpad_acpi.c |   20 ++++++++++----------
> >  1 file changed, 10 insertions(+), 10 deletions(-)
> > 
> > Index: linux/drivers/platform/x86/thinkpad_acpi.c
> > ===================================================================
> > --- linux.orig/drivers/platform/x86/thinkpad_acpi.c	2015-05-31 11:00:59.000000000 +1000
> > +++ linux/drivers/platform/x86/thinkpad_acpi.c	2015-05-31 11:01:07.000000000 +1000
> > @@ -2311,30 +2311,30 @@ static void hotkey_read_nvram(struct tp_
> >  	u8 d;
> >  
> >  	if (m & TP_NVRAM_HKEY_GROUP_HK2) {
> > -		d = nvram_read_byte(TP_NVRAM_ADDR_HK2);
> > +		d = arch_nvram_ops.read_byte(TP_NVRAM_ADDR_HK2);
> >  		n->thinkpad_toggle = !!(d & TP_NVRAM_MASK_HKT_THINKPAD);
> >  		n->zoom_toggle = !!(d & TP_NVRAM_MASK_HKT_ZOOM);
> >  		n->display_toggle = !!(d & TP_NVRAM_MASK_HKT_DISPLAY);
> >  		n->hibernate_toggle = !!(d & TP_NVRAM_MASK_HKT_HIBERNATE);
> >  	}
> >  	if (m & TP_ACPI_HKEY_THNKLGHT_MASK) {
> > -		d = nvram_read_byte(TP_NVRAM_ADDR_THINKLIGHT);
> > +		d = arch_nvram_ops.read_byte(TP_NVRAM_ADDR_THINKLIGHT);
> >  		n->thinklight_toggle = !!(d & TP_NVRAM_MASK_THINKLIGHT);
> >  	}
> >  	if (m & TP_ACPI_HKEY_DISPXPAND_MASK) {
> > -		d = nvram_read_byte(TP_NVRAM_ADDR_VIDEO);
> > +		d = arch_nvram_ops.read_byte(TP_NVRAM_ADDR_VIDEO);
> >  		n->displayexp_toggle =
> >  				!!(d & TP_NVRAM_MASK_HKT_DISPEXPND);
> >  	}
> >  	if (m & TP_NVRAM_HKEY_GROUP_BRIGHTNESS) {
> > -		d = nvram_read_byte(TP_NVRAM_ADDR_BRIGHTNESS);
> > +		d = arch_nvram_ops.read_byte(TP_NVRAM_ADDR_BRIGHTNESS);
> >  		n->brightness_level = (d & TP_NVRAM_MASK_LEVEL_BRIGHTNESS)
> >  				>> TP_NVRAM_POS_LEVEL_BRIGHTNESS;
> >  		n->brightness_toggle =
> >  				!!(d & TP_NVRAM_MASK_HKT_BRIGHTNESS);
> >  	}
> >  	if (m & TP_NVRAM_HKEY_GROUP_VOLUME) {
> > -		d = nvram_read_byte(TP_NVRAM_ADDR_MIXER);
> > +		d = arch_nvram_ops.read_byte(TP_NVRAM_ADDR_MIXER);
> >  		n->volume_level = (d & TP_NVRAM_MASK_LEVEL_VOLUME)
> >  				>> TP_NVRAM_POS_LEVEL_VOLUME;
> >  		n->mute = !!(d & TP_NVRAM_MASK_MUTE);
> > @@ -6153,7 +6153,7 @@ static unsigned int tpacpi_brightness_nv
> >  {
> >  	u8 lnvram;
> >  
> > -	lnvram = (nvram_read_byte(TP_NVRAM_ADDR_BRIGHTNESS)
> > +	lnvram = (arch_nvram_ops.read_byte(TP_NVRAM_ADDR_BRIGHTNESS)
> >  		  & TP_NVRAM_MASK_LEVEL_BRIGHTNESS)
> >  		  >> TP_NVRAM_POS_LEVEL_BRIGHTNESS;
> >  	lnvram &= bright_maxlvl;
> > @@ -6178,7 +6178,7 @@ static void tpacpi_brightness_checkpoint
> >  	if (unlikely(!acpi_ec_read(TP_EC_BACKLIGHT, &lec)))
> >  		goto unlock;
> >  	lec &= TP_EC_BACKLIGHT_LVLMSK;
> > -	b_nvram = nvram_read_byte(TP_NVRAM_ADDR_BRIGHTNESS);
> > +	b_nvram = arch_nvram_ops.read_byte(TP_NVRAM_ADDR_BRIGHTNESS);
> >  
> >  	if (lec != ((b_nvram & TP_NVRAM_MASK_LEVEL_BRIGHTNESS)
> >  			     >> TP_NVRAM_POS_LEVEL_BRIGHTNESS)) {
> > @@ -6186,7 +6186,7 @@ static void tpacpi_brightness_checkpoint
> >  		b_nvram &= ~(TP_NVRAM_MASK_LEVEL_BRIGHTNESS <<
> >  				TP_NVRAM_POS_LEVEL_BRIGHTNESS);
> >  		b_nvram |= lec;
> > -		nvram_write_byte(b_nvram, TP_NVRAM_ADDR_BRIGHTNESS);
> > +		arch_nvram_ops.write_byte(b_nvram, TP_NVRAM_ADDR_BRIGHTNESS);
> >  		dbg_printk(TPACPI_DBG_BRGHT,
> >  			   "updated NVRAM backlight level to %u (0x%02x)\n",
> >  			   (unsigned int) lec, (unsigned int) b_nvram);
> > @@ -6794,13 +6794,13 @@ static void tpacpi_volume_checkpoint_nvr
> >  	if (unlikely(!acpi_ec_read(TP_EC_AUDIO, &lec)))
> >  		goto unlock;
> >  	lec &= ec_mask;
> > -	b_nvram = nvram_read_byte(TP_NVRAM_ADDR_MIXER);
> > +	b_nvram = arch_nvram_ops.read_byte(TP_NVRAM_ADDR_MIXER);
> >  
> >  	if (lec != (b_nvram & ec_mask)) {
> >  		/* NVRAM needs update */
> >  		b_nvram &= ~ec_mask;
> >  		b_nvram |= lec;
> > -		nvram_write_byte(b_nvram, TP_NVRAM_ADDR_MIXER);
> > +		arch_nvram_ops.write_byte(b_nvram, TP_NVRAM_ADDR_MIXER);
> >  		dbg_printk(TPACPI_DBG_MIXER,
> >  			   "updated NVRAM mixer status to 0x%02x (0x%02x)\n",
> >  			   (unsigned int) lec, (unsigned int) b_nvram);
> > 
> > 
> 
> 

  reply	other threads:[~2015-05-31  6:16 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-31  1:01 [RFC 00/24] Re-use nvram module Finn Thain
2015-05-31  1:01 ` [RFC 01/24] macintosh/nvram: Remove as unused Finn Thain
2015-06-01  7:40   ` Geert Uytterhoeven
2015-05-31  1:01 ` [RFC 02/24] scsi/atari_scsi: Dont select CONFIG_NVRAM Finn Thain
2015-05-31  1:01 ` [RFC 03/24] m68k/atari: Move Atari-specific code out of drivers/char/nvram.c Finn Thain
2015-05-31  1:01 ` [RFC 04/24] m68k/atari: Replace nvram_{read, write}_byte with arch_nvram_ops Finn Thain
2015-05-31  1:01 ` [RFC 05/24] char/nvram: Re-order functions to remove forward declarations and #ifdefs Finn Thain
2015-05-31  1:01 ` [RFC 06/24] char/nvram: Adopt arch_nvram_ops Finn Thain
2015-05-31  1:01 ` [RFC 07/24] x86/thinkpad_acpi: Use arch_nvram_ops methods instead of nvram_read_byte() and nvram_write_byte() Finn Thain
2015-05-31  4:11   ` Henrique de Moraes Holschuh
2015-05-31  6:15     ` Finn Thain [this message]
2015-05-31 14:34       ` Henrique de Moraes Holschuh
2015-06-02 10:09         ` Henrique de Moraes Holschuh
2015-06-03  3:34           ` Darren Hart
2015-06-03  7:38             ` Finn Thain
2015-06-03 10:37             ` Henrique de Moraes Holschuh
2015-06-04  5:14               ` Darren Hart
2015-05-31  1:01 ` [RFC 08/24] char/nvram: Allow the set_checksum and initialize ioctls to be omitted Finn Thain
2015-05-31  1:01 ` [RFC 09/24] char/nvram: Implement NVRAM read/write methods Finn Thain
2015-05-31  1:01 ` [RFC 10/24] char/nvram: Use generic fixed_size_llseek() Finn Thain
2015-05-31  1:01 ` [RFC 11/24] m68k/atari: Implement arch_nvram_ops methods and enable CONFIG_HAVE_ARCH_NVRAM_OPS Finn Thain
2015-05-31  1:01 ` [RFC 12/24] char/nvram: Add "devname:nvram" module alias Finn Thain
2015-05-31  1:01 ` [RFC 13/24] powerpc: Cleanup nvram includes Finn Thain
2015-05-31  1:01 ` [RFC 14/24] powerpc: Add missing ppc_md.nvram_size for CHRP and PowerMac Finn Thain
2015-05-31  1:01 ` [RFC 15/24] powerpc: Implement arch_nvram_ops.get_size() and remove old nvram_* exports Finn Thain
2015-05-31  1:01 ` [RFC 16/24] powerpc: Implement nvram sync ioctl Finn Thain
2015-05-31  1:01 ` [RFC 17/24] powerpc, fbdev: Use arch_nvram_ops methods instead of nvram_read_byte() and nvram_write_byte() Finn Thain
2015-05-31  1:01 ` [RFC 18/24] nvram: Drop nvram_* symbol exports and prototypes Finn Thain
2015-05-31  1:01 ` [RFC 19/24] powerpc: Remove CONFIG_GENERIC_NVRAM and adopt CONFIG_HAVE_ARCH_NVRAM_OPS Finn Thain
2015-05-31  1:01 ` [RFC 20/24] char/generic_nvram: Remove as unused Finn Thain
2015-05-31  1:01 ` [RFC 21/24] powerpc: Adopt nvram module for PPC64 Finn Thain
2015-05-31  1:01 ` [RFC 22/24] m68k/mac: Adopt nvram module Finn Thain
2015-05-31  1:01 ` [RFC 23/24] m68k/mac: Fix PRAM accessors Finn Thain
2015-05-31  1:01 ` [RFC 24/24] m68k: Dispatch nvram_ops calls to Atari or Mac functions Finn Thain
2015-06-01  8:31   ` Geert Uytterhoeven
2015-06-02  7:21     ` Finn Thain

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=alpine.LNX.2.00.1505311605420.23528@nippy.intranet \
    --to=fthain@telegraphics.com.au \
    --cc=dvhart@infradead.org \
    --cc=hmh@hmh.eng.br \
    --cc=ibm-acpi-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=platform-driver-x86@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox