RE: Dell Studio 1555 eject key does not work ( small patch to fix included )

Previous thread: [PATCH] checkkconfigsymbols.sh: Kconfig symbols sometimes have lowercase letters by Roland Dreier on Wednesday, June 2, 2010 - 1:56 pm. (1 message)

Next thread: [PATCH 3/11] x86, UV: disable BAU on network congestion by Cliff Wickman on Wednesday, June 2, 2010 - 2:22 pm. (2 messages)
From: Islam Amer
Date: Wednesday, June 2, 2010 - 2:14 pm

Hello,

Pressing the eject key on my Dell Studio 1555 does not work and dmesg produces
this message :
dell-wmi: Unknown key 0 pressed

Adding a debugging printk in dell-wmi.c after line 222 like this :

printk(KERN_INFO "dell:wmi 0x%x , 0x%x \n", buffer_entry[1], buffer_entry[2]);

dmesg now shows :

dell:wmi 0x0 , 0xe009
dell-wmi: Unknown key 0 pressed

So for some reason buffer_entry[1] is used although it is empty.

Falling back to buffer_entry[2] in case buffer_entry[1] is 0x0 makes
the button work.

I suspect it might be better to fix the "dell_new_hk_type" logic though

I had submitted this as
https://bugzilla.kernel.org/show_bug.cgi?id=16075 but repeating the
information and patch
here as per Andrew Morton's suggestion.


Thanks.

--- linux-sidux-2.6-2.6.34/drivers/platform/x86/dell-wmi.c.orig	2010-06-03
01:02:17.418824168 +0400
+++ linux-sidux-2.6-2.6.34/drivers/platform/x86/dell-wmi.c	2010-06-03
01:01:40.641833249 +0400
@@ -221,7 +221,7 @@ static void dell_wmi_notify(u32 value, v
 			return;
 		}

-		if (dell_new_hk_type)
+		if (dell_new_hk_type || buffer_entry[1] == 0x0)
 			reported_key = (int)buffer_entry[2];
 		else
 			reported_key = (int)buffer_entry[1] & 0xffff;
--

From: Matthew Garrett
Date: Wednesday, June 2, 2010 - 2:34 pm

Hi Rez,

Any thoughts on this?

-- 
Matthew Garrett | mjg59@srcf.ucam.org
--

From: Rezwanul_Kabir
Date: Wednesday, June 2, 2010 - 6:57 pm

From the discussion below, it seems that this system does not implement the new
WMI scheme ( which is when dell_new_hk_type=true is set). So, at issue here is the
legacy code. Without knowing exactly why BIOS would behave differently in this particular case,
the fix seems arbitrary. Let me see if I can get hold of the BIOS developer(if possible) and provide feedback in this thread.

Islam Amer

   Can you attach dmidecode output from the system here?

Thanks..

From: Islam Amer
Date: Thursday, June 3, 2010 - 1:16 pm

Hello,

I suspected the same about dell_new_hk_type, but I am confused that
the rest of the fn keys work just fine out of the box. The only button
that didn't work was the eject key.

Attached is the dmidecode output.

Thanks

From: Islam Amer
Date: Tuesday, June 8, 2010 - 3:57 am

Dear Rezwanul,

I have been using this fix for quite some time without any visible ill
effects on the other keys or the system in general.
Of course it would be necessary to get feedback from other dell users.

Thanks.

--

From: Rezwanul_Kabir
Date: Tuesday, June 8, 2010 - 9:33 am

Hi Islam Amer

    I have asked feedback from the BIOS team and will update this thread as soon as I get it.
    Thanks..
       --rez



Rezwanul Kabir
Dell Linux Development

From: Rezwanul_Kabir
Date: Thursday, June 10, 2010 - 11:36 am

Hi Islam Amer

   I got report that "Ubuntu 10.04 + BIOS A11" was tested and the "Eject CD" key is working
   as expected. Sorry, I couldn't find any Studio 1555 to test myself and cannot provide you
   with more details. 

    Also, you may try acpi_osi="Windows 2009" kernel parameter and see if there is any difference.

Thanks..
   --rez



Rezwanul Kabir
Dell Linux Development

From: Matthew Garrett
Date: Thursday, June 10, 2010 - 11:40 am

That's the default on any kernel that has this support in dell-wmi. Rez, 
could you let me know if the proposed patch breaks the spec in ways that 
are likely to cause problems?

-- 
Matthew Garrett | mjg59@srcf.ucam.org
--

From: Islam Amer
Date: Thursday, June 10, 2010 - 4:51 pm

Hello all,

My bios version is A08 , I see that A11 was recently released but the
changelog doesn't say much.

Which is better, upgrade and hope the problem goes away, or wait until
we have a fix that is agreed upon ?

Thanks.

--

From: Rezwanul_Kabir
Date: Thursday, June 10, 2010 - 5:15 pm

Islam Amer

   Please try the new BIOS A11 and eliminate any potential BIOS issues. The BIOS team confirmed that
   they weren't able to reproduce the issue with Ubuntu 10.04 and A11.

Thanks..
   --rez




Rezwanul Kabir
Dell Linux Development

From: Islam Amer
Date: Friday, June 11, 2010 - 6:28 am

Rezwanul,

I've updated my bios to A11 and installed a new unmodified kernel. The
issue still persists that the eject key produces "dell-wmi: Unknown
key 0 pressed" in the dmesg output and it doesn't work.

It is possible that Ubuntu is including patches to fix stuff. The
latest patch for the Lucid kernel at
http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux_2.6.32-22.36.diff.gz
does include patches that touch wmi and dell-wmi code, but I can't
find a specific change that would fix this issue.

I might try to selectively apply patches from it and see if it gets fixed.

Thanks.


--

From: Tim Gardner
Date: Friday, June 11, 2010 - 7:08 am

Islam Amer,

You could try a vanilla stable kernel from 
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32.15.5-lucid/ to see 
if we've borked the dell-wmi code.

rtg



-- 
Tim Gardner tim.gardner@canonical.com
--

From: Islam Amer
Date: Friday, June 11, 2010 - 7:23 am

Tim I am running debian,

I think it's the other way round, the mainline kernel is borked (
regarding dell-wmi and eject key ) while the lucid patched kernel
works ( as reported by dell team ).

I guess I could download a Lucid livecd and see if the eject key works
there ( event only as it won't eject the lived while it is running :)
)

--

From: Islam Amer
Date: Friday, June 11, 2010 - 11:02 am

Dear Tim,

I tried the mainline kernel 2.6.32-0206321505-generic as you suggested
and the eject key doesn't work but it also doesn't produce the error
message in dmesg.

I then tried the 2.6.32-22.36-generic from
http://packages.ubuntu.com/lucid/linux-image-2.6.32-22-generic and I
found the eject key working fine.

So there is something in the ubuntu patchset that fixes this issue.

--

From: Tim Gardner
Date: Friday, June 11, 2010 - 11:35 am

The only difference between 2.6.32.15 and Ubuntu Lucid wrt dell-wmi.c is 
this:

43,46d42
< /* Temporary workaround until the WMI sysfs interface goes in.
<    Borrowed from acer-wmi */
< MODULE_ALIAS("dmi:*:*Dell*:*:");
<

I wonder about input event filtering? There are substantial differences 
in drivers/input/input.c.

rtg



-- 
Tim Gardner tim.gardner@canonical.com
--

From: Islam Amer
Date: Friday, June 11, 2010 - 6:26 pm

What would you like me to do now? I want to help :)

Thanks.

--

From: Rezwanul_Kabir
Date: Tuesday, June 15, 2010 - 10:23 am

Hi Matthew/Islam

   I don't know how Ubuntu 10.04 fixed the issue, but from my communications with the BIOS team, I think 
 Islam's patch would be acceptable. "buffer_entry[1] == 0x0" would indicate HotKey events on these platforms.

Thanks..
   --rez

 

Rezwanul Kabir
Dell Linux Development

From: Matthew Garrett
Date: Tuesday, June 15, 2010 - 10:28 am

Ok, thanks, I'll queue that up.

-- 
Matthew Garrett | mjg59@srcf.ucam.org
--

From: Matthew Garrett
Date: Thursday, June 24, 2010 - 8:09 am

Hi Islam,

Before I apply this, can I ask you to send it along with a 
"Signed-off-by:" line as described in Documentation/SubmittingPatches ? 
Once that's done I'll put it in my tree.

Thanks,
-- 
Matthew Garrett | mjg59@srcf.ucam.org
--

From: Kyle McMartin
Date: Monday, September 6, 2010 - 12:12 pm

Thanks for sending this fix in, Islam. Adding stable@ to the Cc.

Greg, could you apply this to the stable tree as well? Should apply a
few releases back. We applied it to .34 and .35 in Fedora, at least.

The upstream commit id was d5164dbf1f651d1e955b158fb70a9c844cc91cd1.

regards, Kyle


--

From: Greg KH
Date: Thursday, September 23, 2010 - 11:43 am

Now queued up in the .35-stable tree.

thanks,

greg k-h
--

Previous thread: [PATCH] checkkconfigsymbols.sh: Kconfig symbols sometimes have lowercase letters by Roland Dreier on Wednesday, June 2, 2010 - 1:56 pm. (1 message)

Next thread: [PATCH 3/11] x86, UV: disable BAU on network congestion by Cliff Wickman on Wednesday, June 2, 2010 - 2:22 pm. (2 messages)