Re: [PATCH] platform/x86: fujitsu-laptop: Don't oops when FUJ02E3 is not presnt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> > > > Finally, it seems the S6120 also has a row of "application panel"
> > > > hotkeys above the keyboard, but lacks the FUJ02E3 ACPI device, so I am
> > > > wondering whether these hotkeys work in Linux.  Ville, do they?
> > > 
> > > They work via the apanel driver.
> > 
> > Oops, then it looks like we have two drivers which poke the same
> > hardware at the same time using different methods: apanel uses SMBus,
> > fujitsu-laptop uses ACPI (the former is inferior as it resorts to
> > polling, which causes key presses to be reported with a delay).  I just
> > loaded both drivers on my Fujitsu Lifebook S7020 and it results in
> > duplicate events being passed to userspace.  We should probably prevent
> > this, but I am not quite sure how to achieve that.
> 
> That's a bit tricky.  Evidently some models need the SMBus approach because
> they lack the FUJ02E3 device.  However, on systems with the FUJ02E3 the
> ACPI method is clearly desirable.  Should apanel disable itself on systems
> where an FUJ02E3 is present (although I'm not sure how precisely to arrange
> for this to happen)?  Then again, this would only be feasible if the ACPI
> method can handle all application panel variations which are seen across the
> various models.

Darren, Andy,

This is still an outstanding issue that I do not quite know how to deal
with properly (if there is a proper way at all).  How do you think this
should be handled?

There are two drivers in different subsystems that are stepping on each
other's toes: input/misc/apanel.c and platform/x86/fujitsu-laptop.c.
Testing confirmed that:

  - duplicate input events are generated when both drivers are loaded
    (or statically compiled in) and a hotkey is pressed,

  - when both drivers are compiled as modules, they are both
    automatically loaded upon boot.

One driver should be preferred over the other (fujitsu-laptop over
apanel), but using the preferred driver is only possible when a specific
ACPI device is present.

Any thoughts and/or hints how to handle this would be appreciated.

-- 
Best regards,
Michał Kępień



[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux