Re: Dell Vostro V131 hotkeys revisited

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

 



Mario,

Thank you very much for the information provided.

> Now as for actually simulating a keypress, it can be programmed using
> the following calling interface (on receiving the e025 WMI notification).
> To actually simulate the keypress:
> Arg1=0x41
> Arg2 Byte [1:0]: Scan code to simulate
> Byte [3:2]
> * Bit0 - L Alt
> * Bit1 - R Alt
> * Bit2 - L Ctrl
> * Bit3 - R Ctrl
> * Bit4 - L Shift
> * Bit5 - R shift
> * Bit6 - L Win
> * Bit7 - R Win
> * Bit8 - Fn key

And is it possible to disable keypress simulation on systems that have
that capability?

My understanding is that all hardware equipped with an Instant Launch
button is capable of generating a WMI event upon its press, but not all
models can generate a keypress at the same time, correct? If that's the
case, then the arguably cleanest solution would be to change the keymap
entry for event 0xe025 in dell-wmi.c to KE_KEY and ensure (probably in
dell-laptop.c) no i8042 interrupt is raised when the Instant Launch
button is pressed. Though that would still leave us with the question of
how to determine (ideally without side effects) whether a given model
needs disabling keypress simulation. I imagine the pseudocode would be
like:

    if (ec_can_simulate_keypresses)
        disable_keypress_simulation();
    else
        enable_wmi_event_generation();

If disabling keypress simulation is not possible, dell-wmi.c has to
somehow determine whether a 0xe025 WMI event should be ignored or not.

Am I making any sense here?

-- 
Best regards,
Michał Kępień
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



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

  Powered by Linux