Thread (23 messages) 23 messages, 7 authors, 2009-09-19

Re: [PATCH] Input: add MAX7359 key switch controller driver, v2

From: Joonyoung Shim <hidden>
Date: 2009-09-18 08:14:40
Also in: lkml

On 9/16/2009 5:57 PM, Dmitry Torokhov wrote:
On Wed, Jul 15, 2009 at 09:15:34AM +0200, Marek Szyprowski wrote:
quoted
Hello,

On Tuesday, July 14, 2009 12:23 PM Trilok Soni wrote:
quoted
On Tue, Jul 14, 2009 at 3:48 PM, Marek
Szyprowski[off-list ref] wrote:
quoted
Hello,

On Tuesday, July 14, 2009 11:12 AM, Trilok Soni wrote:
quoted
On Tue, Jul 14, 2009 at 2:37 PM, Marek
Szyprowski[off-list ref] wrote:
quoted
Hello,

On Tuesday, July 14, 2009 10:25 AM, Dmitry Torokhov wrote:
quoted
On Tue, Jul 14, 2009 at 08:28:05AM +0200, Marek Szyprowski wrote:
quoted
Hello,
On Tuesday, July 14, 2009 5:10 AM, Kim Kyuwon wrote:
quoted
Dmitry Torokhov wrote:
quoted
On Mon, Jul 13, 2009 at 02:22:10PM +0530, Trilok Soni wrote:
quoted
I don't see this driver picked up yet in your -next branch. We should
target this driver to be mainlined in next merge window. This is very
important driver for some of the embedded systems, including palm pre
:)
I was wondering if somebody could test the patch below and if it still
works then I will apply to the next branch. Thanks!
Dear Marek,

Because I don't have the NCP board(which includes the max7359 keypad)
now, I can't test this patch. Marek, could you please test this patch?
I would like to, but I could not find the base version to which I can apply
that patch. I've tried v2 version posted in '[PATCH] Input: add MAX7359 key
switch controller driver, v2' mail from Sat 2009-05-09 04:10 with 2 patches
posted in replies to that main, but the latest patch still fails to apply.

Could someone send me a complete patch, so I can do a test?
Sending everything as attachments, maybe that will help...
Ok. I've did the tests.

MAX7359 keypad driver works after your patch, but reports much more events than
the previous version. In this test I pressed quickly the first button on the
keypad.

Old version:
NCP:~# hexdump /dev/input/event0
0000000 0037 0000 e733 000b 0001 00e7 0001 0000
0000010 0037 0000 e748 000b 0000 0000 0000 0000
0000020 0037 0000 94e2 000d 0001 00e7 0000 0000
0000030 0037 0000 94f3 000d 0000 0000 0000 0000
Please use evtest instead. It will give better output atleast.
Ok.

Old version (clean v2 patch):

NCP:~# evtest /dev/input/event0
Input driver version is 1.0.0
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
Input device name: "max7359"
Supported events:
잾vent type 0 (Sync)
잾vent type 1 (Key)
  잾vent code 107 (End)
  잾vent code 139 (Menu)
  잾vent code 148 (Prog1)
  잾vent code 149 (Prog2)
  잾vent code 177 (ScrollUp)
  잾vent code 178 (ScrollDown)
  잾vent code 212 (Camera)
  잾vent code 231 (?)
  잾vent code 474 (?)
잾vent type 20 (Repeat)
Testing ... (interrupt to exit)
Event: time 38.740081, type 1 (Key), code 139 (Menu), value 1
Event: time 38.740101, -------------- Report Sync ------------
Event: time 38.850061, type 1 (Key), code 139 (Menu), value 0
Event: time 38.850077, -------------- Report Sync ------------

New version (updated platform definition to use struct matrix_keymap_data instead of
max7359_keypad_platform_data):
quoted
NCP:~# evtest /dev/input/event0
Input driver version is 1.0.0
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
Input device name: "max7359"
Supported events:
잾vent type 0 (Sync)
잾vent type 1 (Key)
  잾vent code 107 (End)
  잾vent code 139 (Menu)
  잾vent code 148 (Prog1)
  잾vent code 149 (Prog2)
  잾vent code 177 (ScrollUp)
  잾vent code 178 (ScrollDown)
  잾vent code 212 (Camera)
  잾vent code 231 (?)
  잾vent code 474 (?)
잾vent type 4 (Misc)
  잾vent code 4 (ScanCode)
잾vent type 20 (Repeat)
Testing ... (interrupt to exit)
Event: time 75.680066, type 4 (Misc), code 4 (ScanCode), value 01
Event: time 75.680095, type 1 (Key), code 139 (Menu), value 1
Event: time 75.680107, -------------- Report Sync ------------
Event: time 75.700072, type 4 (Misc), code 4 (ScanCode), value 3f
Event: time 75.700095, -------------- Report Sync ------------
Event: time 75.830064, type 4 (Misc), code 4 (ScanCode), value 01
Event: time 75.830093, type 1 (Key), code 139 (Menu), value 0
Event: time 75.830100, -------------- Report Sync ------------
Event: time 75.850073, type 4 (Misc), code 4 (ScanCode), value 3f
Event: time 75.850097, -------------- Report Sync ------------

Something is definitely different. It looks that I missed a patch that added some additional events,
because I don't think that the
quoted
threaded irq patch would cause this.
Nope, it is not because of threaded irq patch but MSC_SCAN event
generation. Not to worry.
quoted
I'm sorry for the commotion, but I did the test in a wrong way. I
thought Dmitry has sent me a patch with the threaded irq already
integrated. Joonyoung Shim has pointed me that I was wrong. I had to
apply the threaded irq patch on top of the patch Dmitry has sent me.

To sum up - the threaded irq version does not work here on ARM S3C6410
NCP board. In /proc/interrupts I only noticed that only 1 interrupt
has been triggered. No events are reported. Same was with Melfas
Touchscreen driver (also only 1 interrupt triggered).
Now that most issues have with threaded IRQs have been fixed in mainline
would you mind retesting the threaded IRQ patch? Below is the latest
version of it.

Thanks!
Hi, Dmitry.

I tested your patch with threaded IRQ. Because the interrupt of the 
MAX7359 device is the low level detecting, i should add the IRQF_ONESHOT 
flag on request_threaded_irq(). If it is added IRQF_ONESHOT flag, the it
operates well.
                                                                                                       
Do you want i send the patch?
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help