summaryrefslogtreecommitdiff
path: root/drivers/hid
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@google.com>2021-10-17 10:35:21 +0200
committerGreg Kroah-Hartman <gregkh@google.com>2021-10-17 10:35:21 +0200
commitbf687da3fdbe378ae33b7d4c6cbaa2dfa3993628 (patch)
tree436e96697c57da01a075b5ab299edd5ecb5d9cea /drivers/hid
parentb8841c043898aca3016c3f0432be5332fb3f9b17 (diff)
parentc67099a5bc53d1a24058ba5afe873f16cd290e16 (diff)
Merge 4.4.289 into android-4.4-p
Changes in 4.4.289 USB: cdc-acm: fix racy tty buffer accesses USB: cdc-acm: fix break reporting nfsd4: Handle the NFSv4 READDIR 'dircount' hint being zero xtensa: call irqchip_init only when CONFIG_USE_OF is selected phy: mdio: fix memory leak net_sched: fix NULL deref in fifo_set_limit() ptp_pch: Load module automatically if ID matches ARM: imx6: disable the GIC CPU interface before calling stby-poweroff sequence netlink: annotate data races around nlk->bound i40e: fix endless loop under rtnl gup: document and work around "COW can break either way" issue mm: check VMA flags to avoid invalid PROT_NONE NUMA balancing HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS netfilter: ip6_tables: zero-initialize fragment offset mac80211: Drop frames from invalid MAC address in ad-hoc mode scsi: ses: Fix unsigned comparison with less than zero scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported" perf/x86: Reset destroy callback on event init failure Linux 4.4.289 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I3a65de3023522d2c5370858c3f0e98e86ad6b7ff
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/hid-apple.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
index 8af87dc05f2a..73289b013dee 100644
--- a/drivers/hid/hid-apple.c
+++ b/drivers/hid/hid-apple.c
@@ -301,12 +301,19 @@ static int apple_event(struct hid_device *hdev, struct hid_field *field,
/*
* MacBook JIS keyboard has wrong logical maximum
+ * Magic Keyboard JIS has wrong logical maximum
*/
static __u8 *apple_report_fixup(struct hid_device *hdev, __u8 *rdesc,
unsigned int *rsize)
{
struct apple_sc *asc = hid_get_drvdata(hdev);
+ if(*rsize >=71 && rdesc[70] == 0x65 && rdesc[64] == 0x65) {
+ hid_info(hdev,
+ "fixing up Magic Keyboard JIS report descriptor\n");
+ rdesc[64] = rdesc[70] = 0xe7;
+ }
+
if ((asc->quirks & APPLE_RDESC_JIS) && *rsize >= 60 &&
rdesc[53] == 0x65 && rdesc[59] == 0x65) {
hid_info(hdev,