X86 platform drivers
 help / color / mirror / Atom feed
From: Mattia Dongili <malattia@linux.it>
To: Zhang Rui <rui.zhang@intel.com>
Cc: "platform-driver-x86@vger.kernel.org"
	<platform-driver-x86@vger.kernel.org>
Subject: Re: sony-laptop: fix SNC buffer calls when SN06 returns Integers
Date: Thu, 20 Dec 2012 07:08:03 +0900	[thread overview]
Message-ID: <20121219220803.GA30941@kamineko.org> (raw)
In-Reply-To: <1355878834.2280.2.camel@rzhang1-mobl4>

On Wed, Dec 19, 2012 at 09:00:34AM +0800, Zhang Rui wrote:
> On Wed, 2012-12-19 at 06:39 +0900, Mattia Dongili wrote:
> > On Tue, Dec 18, 2012 at 03:08:44PM +0800, Zhang Rui wrote:
> > > Hi, Mattia,
> > 
> > Hi Rui!
> > 
> > > I generated a similar patch as yours but I still have one concern about the fix.
> > 
> > thanks for taking care of that.
> > 
> > > memcpy(buffer, (void *)&object->integer.value, len) may break the byte order but
> > > sony_nc_rfkill_setup() terminates if byte 0xff is checked.
> > > is this true? or am I thinking wrong?
> > 
> > You're correct, sony_nc_rfkill_setup() stops looking at the buffer as
> > soon as it hits 0xff but why do you think memcpy would break the byte
> > order?
> > 
> I'm not sure how SN06 works.
> say, you have supported codes 0x00, 0x10, and 0x20, what would SN06
> return?
> 0x001020FF00000000 or 0x00000000FF201000?

The return buffer is filled in sequentially and we go through it in the
same way in sony_nc_rfkill_setup(), it should be safe but here's an
example:

    Name (BUFF, Buffer (0x0410) {})                                                                              
    CreateDWordField (BUFF, Zero, BUFS)                                                                          
...

    Store (Zero, Local3)                                                                                 
    If (WLAP)                                                                                            
    {                                                                                                    
	Store (Zero, Index (BUFF, Local3))                                                               
	Add (Local3, One, Local3)                                                                        
    }                                                                                                    
													 
    If (BLTH)                                                                                            
    {                                                                                                    
	Store (0x10, Index (BUFF, Local3))                                                               
	Add (Local3, One, Local3)                                                                        
    }                                                                                                    
													 
    If (WNED)                                                                                            
    {                                                                                                    
	Store (0x20, Index (BUFF, Local3))                                                               
	Add (Local3, One, Local3)                                                                        
    }                                                                                                    

Then based on some odd consideration the method may return BUFF or BUFS
and that's where we have to take either integer.value or buffer.pointer.

Thanks!!
-- 
mattia
:wq!

      reply	other threads:[~2012-12-19 22:08 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-18  7:08 sony-laptop: fix SNC buffer calls when SN06 returns Integers Zhang Rui
2012-12-18 21:39 ` Mattia Dongili
2012-12-19  1:00   ` Zhang Rui
2012-12-19 22:08     ` Mattia Dongili [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=20121219220803.GA30941@kamineko.org \
    --to=malattia@linux.it \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=rui.zhang@intel.com \
    /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