| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Apple USB BCM5974 (Macbook Air and Penryn Macbook Pro) multitouch driver |
|---|
| 3 | 4 | * |
|---|
| .. | .. |
|---|
| 16 | 17 | * Copyright (C) 2005 Peter Osterlund (petero2@telia.com) |
|---|
| 17 | 18 | * Copyright (C) 2005 Michael Hanselmann (linux-kernel@hansmi.ch) |
|---|
| 18 | 19 | * Copyright (C) 2006 Nicolas Boichat (nicolas@boichat.ch) |
|---|
| 19 | | - * |
|---|
| 20 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 21 | | - * it under the terms of the GNU General Public License as published by |
|---|
| 22 | | - * the Free Software Foundation; either version 2 of the License, or |
|---|
| 23 | | - * (at your option) any later version. |
|---|
| 24 | | - * |
|---|
| 25 | | - * This program is distributed in the hope that it will be useful, |
|---|
| 26 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 27 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 28 | | - * GNU General Public License for more details. |
|---|
| 29 | | - * |
|---|
| 30 | | - * You should have received a copy of the GNU General Public License |
|---|
| 31 | | - * along with this program; if not, write to the Free Software |
|---|
| 32 | | - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|---|
| 33 | | - * |
|---|
| 34 | 20 | */ |
|---|
| 35 | 21 | |
|---|
| 36 | 22 | #include <linux/kernel.h> |
|---|
| .. | .. |
|---|
| 956 | 942 | if (!dev->tp_data) |
|---|
| 957 | 943 | goto err_free_bt_buffer; |
|---|
| 958 | 944 | |
|---|
| 959 | | - if (dev->bt_urb) |
|---|
| 945 | + if (dev->bt_urb) { |
|---|
| 960 | 946 | usb_fill_int_urb(dev->bt_urb, udev, |
|---|
| 961 | 947 | usb_rcvintpipe(udev, cfg->bt_ep), |
|---|
| 962 | 948 | dev->bt_data, dev->cfg.bt_datalen, |
|---|
| 963 | 949 | bcm5974_irq_button, dev, 1); |
|---|
| 964 | 950 | |
|---|
| 951 | + dev->bt_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; |
|---|
| 952 | + } |
|---|
| 953 | + |
|---|
| 965 | 954 | usb_fill_int_urb(dev->tp_urb, udev, |
|---|
| 966 | 955 | usb_rcvintpipe(udev, cfg->tp_ep), |
|---|
| 967 | 956 | dev->tp_data, dev->cfg.tp_datalen, |
|---|
| 968 | 957 | bcm5974_irq_trackpad, dev, 1); |
|---|
| 969 | 958 | |
|---|
| 959 | + dev->tp_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; |
|---|
| 960 | + |
|---|
| 970 | 961 | /* create bcm5974 device */ |
|---|
| 971 | 962 | usb_make_path(udev, dev->phys, sizeof(dev->phys)); |
|---|
| 972 | 963 | strlcat(dev->phys, "/input0", sizeof(dev->phys)); |
|---|