* [PATCH 4/6] MacBookAir3,1(3,2) hid support
@ 2010-11-02 7:20 gimli
2010-11-02 16:55 ` Henrik Rydberg
0 siblings, 1 reply; 4+ messages in thread
From: gimli @ 2010-11-02 7:20 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 142 bytes --]
This patch add support for the MacBookAir3,1 and MacBookAir3,2 to the hid
driver.
Signed-off-by: Edgar (gimli) Hucek <gimli@dark-green.com>
[-- Attachment #2: hid_macbookair.patch --]
[-- Type: text/plain, Size: 6065 bytes --]
diff -uNr linux-2.6.35/drivers/hid/hid-apple.c linux-2.6.35-MacbookAir/drivers/hid/hid-apple.c
--- linux-2.6.35/drivers/hid/hid-apple.c 2010-08-02 00:11:14.000000000 +0200
+++ linux-2.6.35-MacbookAir/drivers/hid/hid-apple.c 2010-10-24 16:33:20.722918002 +0200
@@ -59,6 +59,27 @@
u8 flags;
};
+static const struct apple_key_translation macbookair_fn_keys[] = {
+ { KEY_BACKSPACE, KEY_DELETE },
+ { KEY_ENTER, KEY_INSERT },
+ { KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY },
+ { KEY_F2, KEY_BRIGHTNESSUP, APPLE_FLAG_FKEY },
+ { KEY_F3, KEY_SCALE, APPLE_FLAG_FKEY },
+ { KEY_F4, KEY_DASHBOARD, APPLE_FLAG_FKEY },
+ { KEY_F6, KEY_PREVIOUSSONG, APPLE_FLAG_FKEY },
+ { KEY_F7, KEY_PLAYPAUSE, APPLE_FLAG_FKEY },
+ { KEY_F8, KEY_NEXTSONG, APPLE_FLAG_FKEY },
+ { KEY_F9, KEY_MUTE, APPLE_FLAG_FKEY },
+ { KEY_F10, KEY_VOLUMEDOWN, APPLE_FLAG_FKEY },
+ { KEY_F11, KEY_VOLUMEUP, APPLE_FLAG_FKEY },
+ { KEY_F12, KEY_EJECTCD, APPLE_FLAG_FKEY },
+ { KEY_UP, KEY_PAGEUP },
+ { KEY_DOWN, KEY_PAGEDOWN },
+ { KEY_LEFT, KEY_HOME },
+ { KEY_RIGHT, KEY_END },
+ { }
+};
+
static const struct apple_key_translation apple_fn_keys[] = {
{ KEY_BACKSPACE, KEY_DELETE },
{ KEY_ENTER, KEY_INSERT },
@@ -157,10 +178,14 @@
if (fnmode) {
int do_translate;
- trans = apple_find_translation((hid->product < 0x21d ||
+ if(hid->product >= 0x023f && hid->product <= 0x0244 ) {
+ trans = apple_find_translation(macbookair_fn_keys, usage->code);
+ } else {
+ trans = apple_find_translation((hid->product < 0x21d ||
hid->product >= 0x300) ?
powerbook_fn_keys : apple_fn_keys,
usage->code);
+ }
if (trans) {
if (test_bit(usage->code, asc->pressed_fn))
do_translate = 1;
@@ -439,6 +464,18 @@
.driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS),
.driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI),
+ .driver_data = APPLE_HAS_FN },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ISO),
+ .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_JIS),
+ .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI),
+ .driver_data = APPLE_HAS_FN },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO),
+ .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS),
+ .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI),
.driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO),
diff -uNr linux-2.6.35/drivers/hid/hid-core.c linux-2.6.35-MacbookAir/drivers/hid/hid-core.c
--- linux-2.6.35/drivers/hid/hid-core.c 2010-10-23 06:59:31.000000000 +0200
+++ linux-2.6.35-MacbookAir/drivers/hid/hid-core.c 2010-10-24 07:40:57.055679001 +0200
@@ -1276,6 +1276,12 @@
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ISO) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_JIS) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) },
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI) },
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO) },
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS) },
@@ -1736,6 +1742,12 @@
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ISO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_ISO) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4_JIS) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
{ }
diff -uNr linux-2.6.35/drivers/hid/hid-ids.h linux-2.6.35-MacbookAir/drivers/hid/hid-ids.h
--- linux-2.6.35/drivers/hid/hid-ids.h 2010-10-23 06:59:31.000000000 +0200
+++ linux-2.6.35-MacbookAir/drivers/hid/hid-ids.h 2010-10-24 07:34:52.632586002 +0200
@@ -94,6 +94,12 @@
#define USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI 0x0236
#define USB_DEVICE_ID_APPLE_WELLSPRING3_ISO 0x0237
#define USB_DEVICE_ID_APPLE_WELLSPRING3_JIS 0x0238
+#define USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI 0x023f
+#define USB_DEVICE_ID_APPLE_WELLSPRING4_ISO 0x0240
+#define USB_DEVICE_ID_APPLE_WELLSPRING4_JIS 0x0241
+#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI 0x0242
+#define USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO 0x0243
+#define USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS 0x0244
#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI 0x0239
#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO 0x023a
#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS 0x023b
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 4/6] MacBookAir3,1(3,2) hid support
2010-11-02 7:20 [PATCH 4/6] MacBookAir3,1(3,2) hid support gimli
@ 2010-11-02 16:55 ` Henrik Rydberg
2010-11-03 9:41 ` gimli
0 siblings, 1 reply; 4+ messages in thread
From: Henrik Rydberg @ 2010-11-02 16:55 UTC (permalink / raw)
To: gimli; +Cc: linux-kernel
On 11/02/2010 08:20 AM, gimli wrote:
> This patch add support for the MacBookAir3,1 and MacBookAir3,2 to the hid
> driver.
>
> Signed-off-by: Edgar (gimli) Hucek <gimli@dark-green.com>
>
Hi Edgar,
thanks for the information. Are the device ids correlated to the 13'' and 11''
versions of these machines? If so, why are they mapped to the same keyboard? The
apple_fn_keys also covers the existing Macbook Airs, but appears not to be used
for any of the new device ids.
Thanks,
Henrik
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 4/6] MacBookAir3,1(3,2) hid support
2010-11-02 16:55 ` Henrik Rydberg
@ 2010-11-03 9:41 ` gimli
2010-11-03 10:08 ` Henrik Rydberg
0 siblings, 1 reply; 4+ messages in thread
From: gimli @ 2010-11-03 9:41 UTC (permalink / raw)
To: linux-kernel; +Cc: Henrik Rydberg
On Tue, 02 Nov 2010 17:55:27 +0100, Henrik Rydberg <rydberg@euromail.se>
wrote:
> On 11/02/2010 08:20 AM, gimli wrote:
>
>> This patch add support for the MacBookAir3,1 and MacBookAir3,2 to the
hid
>> driver.
>>
>> Signed-off-by: Edgar (gimli) Hucek <gimli@dark-green.com>
>>
>
>
> Hi Edgar,
>
> thanks for the information. Are the device ids correlated to the 13'' and
> 11''
> versions of these machines? If so, why are they mapped to the same
> keyboard? The
> apple_fn_keys also covers the existing Macbook Airs, but appears not to
be
> used
> for any of the new device ids.
The keyboard layout changed on the new Air's. Thats the reason why i use
a new apple_fn_keys for the new Air's.
lg
Edgar (gimli) Hucek
> Thanks,
> Henrik
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel"
in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 4/6] MacBookAir3,1(3,2) hid support
2010-11-03 9:41 ` gimli
@ 2010-11-03 10:08 ` Henrik Rydberg
0 siblings, 0 replies; 4+ messages in thread
From: Henrik Rydberg @ 2010-11-03 10:08 UTC (permalink / raw)
To: gimli; +Cc: linux-kernel
On 11/03/2010 10:41 AM, gimli wrote:
> On Tue, 02 Nov 2010 17:55:27 +0100, Henrik Rydberg <rydberg@euromail.se>
> wrote:
>> On 11/02/2010 08:20 AM, gimli wrote:
>>
>>> This patch add support for the MacBookAir3,1 and MacBookAir3,2 to the
> hid
>>> driver.
>>>
>>> Signed-off-by: Edgar (gimli) Hucek <gimli@dark-green.com>
>>>
>>
>>
>> Hi Edgar,
>>
>> thanks for the information. Are the device ids correlated to the 13'' and
>> 11''
>> versions of these machines? If so, why are they mapped to the same
>> keyboard? The
>> apple_fn_keys also covers the existing Macbook Airs, but appears not to
> be
>> used
>> for any of the new device ids.
>
> The keyboard layout changed on the new Air's. Thats the reason why i use
> a new apple_fn_keys for the new Air's.
Thanks for the clarification, it all makes sense.
Did you consider using quirks for the keyboard layouts instead? Either way,
Acked-by: Henrik Rydberg <rydberg@euromail.se>
Thanks,
Henrik
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-11-03 10:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-02 7:20 [PATCH 4/6] MacBookAir3,1(3,2) hid support gimli
2010-11-02 16:55 ` Henrik Rydberg
2010-11-03 9:41 ` gimli
2010-11-03 10:08 ` Henrik Rydberg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox