@@ -461,7 +461,9 @@ static const struct key_entry keymap_default[] = {
461
461
{ KE_KEY , KEY3_CODE , { KEY_PROG3 } },
462
462
{ KE_KEY , KEY4_CODE , { KEY_PROG4 } },
463
463
{ KE_KEY , KEY5_CODE , { KEY_RFKILL } },
464
+ { KE_KEY , BIT (5 ), { KEY_RFKILL } },
464
465
{ KE_KEY , BIT (26 ), { KEY_TOUCHPAD_TOGGLE } },
466
+ { KE_KEY , BIT (29 ), { KEY_MICMUTE } },
465
467
{ KE_END , 0 }
466
468
};
467
469
@@ -901,7 +903,7 @@ static void acpi_fujitsu_laptop_release(struct acpi_device *device)
901
903
static void acpi_fujitsu_laptop_notify (struct acpi_device * device , u32 event )
902
904
{
903
905
struct fujitsu_laptop * priv = acpi_driver_data (device );
904
- int scancode , i = 0 ;
906
+ int scancode , i = 0 , ret ;
905
907
unsigned int irb ;
906
908
907
909
if (event != ACPI_FUJITSU_NOTIFY_CODE ) {
@@ -932,9 +934,18 @@ static void acpi_fujitsu_laptop_notify(struct acpi_device *device, u32 event)
932
934
* E736/E746/E756), the touchpad toggle hotkey (Fn+F4) is
933
935
* handled in software; its state is queried using FUNC_FLAGS
934
936
*/
935
- if ((priv -> flags_supported & BIT (26 )) &&
936
- (call_fext_func (device , FUNC_FLAGS , 0x1 , 0x0 , 0x0 ) & BIT (26 )))
937
- sparse_keymap_report_event (priv -> input , BIT (26 ), 1 , true);
937
+ if (priv -> flags_supported & (BIT (5 ) | BIT (26 ) | BIT (29 ))) {
938
+ ret = call_fext_func (device , FUNC_FLAGS , 0x1 , 0x0 , 0x0 );
939
+ if (ret & BIT (5 ))
940
+ sparse_keymap_report_event (priv -> input ,
941
+ BIT (5 ), 1 , true);
942
+ if (ret & BIT (26 ))
943
+ sparse_keymap_report_event (priv -> input ,
944
+ BIT (26 ), 1 , true);
945
+ if (ret & BIT (29 ))
946
+ sparse_keymap_report_event (priv -> input ,
947
+ BIT (29 ), 1 , true);
948
+ }
938
949
}
939
950
940
951
/* Initialization */
0 commit comments