Merge branch 'next' into for-linus
Prepare first round of input updates for 4.7 merge window.
This commit is contained in:
@@ -49,7 +49,6 @@ MODULE_LICENSE(DRIVER_LICENSE);
|
||||
struct usb_acecad {
|
||||
char name[128];
|
||||
char phys[64];
|
||||
struct usb_device *usbdev;
|
||||
struct usb_interface *intf;
|
||||
struct input_dev *input;
|
||||
struct urb *irq;
|
||||
@@ -64,6 +63,7 @@ static void usb_acecad_irq(struct urb *urb)
|
||||
unsigned char *data = acecad->data;
|
||||
struct input_dev *dev = acecad->input;
|
||||
struct usb_interface *intf = acecad->intf;
|
||||
struct usb_device *udev = interface_to_usbdev(intf);
|
||||
int prox, status;
|
||||
|
||||
switch (urb->status) {
|
||||
@@ -110,15 +110,15 @@ resubmit:
|
||||
if (status)
|
||||
dev_err(&intf->dev,
|
||||
"can't resubmit intr, %s-%s/input0, status %d\n",
|
||||
acecad->usbdev->bus->bus_name,
|
||||
acecad->usbdev->devpath, status);
|
||||
udev->bus->bus_name,
|
||||
udev->devpath, status);
|
||||
}
|
||||
|
||||
static int usb_acecad_open(struct input_dev *dev)
|
||||
{
|
||||
struct usb_acecad *acecad = input_get_drvdata(dev);
|
||||
|
||||
acecad->irq->dev = acecad->usbdev;
|
||||
acecad->irq->dev = interface_to_usbdev(acecad->intf);
|
||||
if (usb_submit_urb(acecad->irq, GFP_KERNEL))
|
||||
return -EIO;
|
||||
|
||||
@@ -172,7 +172,6 @@ static int usb_acecad_probe(struct usb_interface *intf, const struct usb_device_
|
||||
goto fail2;
|
||||
}
|
||||
|
||||
acecad->usbdev = dev;
|
||||
acecad->intf = intf;
|
||||
acecad->input = input_dev;
|
||||
|
||||
@@ -251,12 +250,13 @@ static int usb_acecad_probe(struct usb_interface *intf, const struct usb_device_
|
||||
static void usb_acecad_disconnect(struct usb_interface *intf)
|
||||
{
|
||||
struct usb_acecad *acecad = usb_get_intfdata(intf);
|
||||
struct usb_device *udev = interface_to_usbdev(intf);
|
||||
|
||||
usb_set_intfdata(intf, NULL);
|
||||
|
||||
input_unregister_device(acecad->input);
|
||||
usb_free_urb(acecad->irq);
|
||||
usb_free_coherent(acecad->usbdev, 8, acecad->data, acecad->data_dma);
|
||||
usb_free_coherent(udev, 8, acecad->data, acecad->data_dma);
|
||||
kfree(acecad);
|
||||
}
|
||||
|
||||
|
@@ -307,7 +307,6 @@ struct aiptek_settings {
|
||||
|
||||
struct aiptek {
|
||||
struct input_dev *inputdev; /* input device struct */
|
||||
struct usb_device *usbdev; /* usb device struct */
|
||||
struct usb_interface *intf; /* usb interface struct */
|
||||
struct urb *urb; /* urb for incoming reports */
|
||||
dma_addr_t data_dma; /* our dma stuffage */
|
||||
@@ -847,7 +846,7 @@ static int aiptek_open(struct input_dev *inputdev)
|
||||
{
|
||||
struct aiptek *aiptek = input_get_drvdata(inputdev);
|
||||
|
||||
aiptek->urb->dev = aiptek->usbdev;
|
||||
aiptek->urb->dev = interface_to_usbdev(aiptek->intf);
|
||||
if (usb_submit_urb(aiptek->urb, GFP_KERNEL) != 0)
|
||||
return -EIO;
|
||||
|
||||
@@ -873,8 +872,10 @@ aiptek_set_report(struct aiptek *aiptek,
|
||||
unsigned char report_type,
|
||||
unsigned char report_id, void *buffer, int size)
|
||||
{
|
||||
return usb_control_msg(aiptek->usbdev,
|
||||
usb_sndctrlpipe(aiptek->usbdev, 0),
|
||||
struct usb_device *udev = interface_to_usbdev(aiptek->intf);
|
||||
|
||||
return usb_control_msg(udev,
|
||||
usb_sndctrlpipe(udev, 0),
|
||||
USB_REQ_SET_REPORT,
|
||||
USB_TYPE_CLASS | USB_RECIP_INTERFACE |
|
||||
USB_DIR_OUT, (report_type << 8) + report_id,
|
||||
@@ -886,8 +887,10 @@ aiptek_get_report(struct aiptek *aiptek,
|
||||
unsigned char report_type,
|
||||
unsigned char report_id, void *buffer, int size)
|
||||
{
|
||||
return usb_control_msg(aiptek->usbdev,
|
||||
usb_rcvctrlpipe(aiptek->usbdev, 0),
|
||||
struct usb_device *udev = interface_to_usbdev(aiptek->intf);
|
||||
|
||||
return usb_control_msg(udev,
|
||||
usb_rcvctrlpipe(udev, 0),
|
||||
USB_REQ_GET_REPORT,
|
||||
USB_TYPE_CLASS | USB_RECIP_INTERFACE |
|
||||
USB_DIR_IN, (report_type << 8) + report_id,
|
||||
@@ -1729,7 +1732,6 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id)
|
||||
}
|
||||
|
||||
aiptek->inputdev = inputdev;
|
||||
aiptek->usbdev = usbdev;
|
||||
aiptek->intf = intf;
|
||||
aiptek->ifnum = intf->altsetting[0].desc.bInterfaceNumber;
|
||||
aiptek->inDelay = 0;
|
||||
@@ -1833,8 +1835,8 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id)
|
||||
* input.
|
||||
*/
|
||||
usb_fill_int_urb(aiptek->urb,
|
||||
aiptek->usbdev,
|
||||
usb_rcvintpipe(aiptek->usbdev,
|
||||
usbdev,
|
||||
usb_rcvintpipe(usbdev,
|
||||
endpoint->bEndpointAddress),
|
||||
aiptek->data, 8, aiptek_irq, aiptek,
|
||||
endpoint->bInterval);
|
||||
|
@@ -104,7 +104,6 @@ MODULE_DEVICE_TABLE (usb, gtco_usbid_table);
|
||||
struct gtco {
|
||||
|
||||
struct input_dev *inputdevice; /* input device struct pointer */
|
||||
struct usb_device *usbdev; /* the usb device for this device */
|
||||
struct usb_interface *intf; /* the usb interface for this device */
|
||||
struct urb *urbinfo; /* urb for incoming reports */
|
||||
dma_addr_t buf_dma; /* dma addr of the data buffer*/
|
||||
@@ -540,7 +539,7 @@ static int gtco_input_open(struct input_dev *inputdev)
|
||||
{
|
||||
struct gtco *device = input_get_drvdata(inputdev);
|
||||
|
||||
device->urbinfo->dev = device->usbdev;
|
||||
device->urbinfo->dev = interface_to_usbdev(device->intf);
|
||||
if (usb_submit_urb(device->urbinfo, GFP_KERNEL))
|
||||
return -EIO;
|
||||
|
||||
@@ -824,6 +823,7 @@ static int gtco_probe(struct usb_interface *usbinterface,
|
||||
int result = 0, retry;
|
||||
int error;
|
||||
struct usb_endpoint_descriptor *endpoint;
|
||||
struct usb_device *udev = interface_to_usbdev(usbinterface);
|
||||
|
||||
/* Allocate memory for device structure */
|
||||
gtco = kzalloc(sizeof(struct gtco), GFP_KERNEL);
|
||||
@@ -838,11 +838,10 @@ static int gtco_probe(struct usb_interface *usbinterface,
|
||||
gtco->inputdevice = input_dev;
|
||||
|
||||
/* Save interface information */
|
||||
gtco->usbdev = interface_to_usbdev(usbinterface);
|
||||
gtco->intf = usbinterface;
|
||||
|
||||
/* Allocate some data for incoming reports */
|
||||
gtco->buffer = usb_alloc_coherent(gtco->usbdev, REPORT_MAX_SIZE,
|
||||
gtco->buffer = usb_alloc_coherent(udev, REPORT_MAX_SIZE,
|
||||
GFP_KERNEL, >co->buf_dma);
|
||||
if (!gtco->buffer) {
|
||||
dev_err(&usbinterface->dev, "No more memory for us buffers\n");
|
||||
@@ -907,8 +906,8 @@ static int gtco_probe(struct usb_interface *usbinterface,
|
||||
|
||||
/* Couple of tries to get reply */
|
||||
for (retry = 0; retry < 3; retry++) {
|
||||
result = usb_control_msg(gtco->usbdev,
|
||||
usb_rcvctrlpipe(gtco->usbdev, 0),
|
||||
result = usb_control_msg(udev,
|
||||
usb_rcvctrlpipe(udev, 0),
|
||||
USB_REQ_GET_DESCRIPTOR,
|
||||
USB_RECIP_INTERFACE | USB_DIR_IN,
|
||||
REPORT_DEVICE_TYPE << 8,
|
||||
@@ -936,7 +935,7 @@ static int gtco_probe(struct usb_interface *usbinterface,
|
||||
}
|
||||
|
||||
/* Create a device file node */
|
||||
usb_make_path(gtco->usbdev, gtco->usbpath, sizeof(gtco->usbpath));
|
||||
usb_make_path(udev, gtco->usbpath, sizeof(gtco->usbpath));
|
||||
strlcat(gtco->usbpath, "/input0", sizeof(gtco->usbpath));
|
||||
|
||||
/* Set Input device functions */
|
||||
@@ -953,15 +952,15 @@ static int gtco_probe(struct usb_interface *usbinterface,
|
||||
gtco_setup_caps(input_dev);
|
||||
|
||||
/* Set input device required ID information */
|
||||
usb_to_input_id(gtco->usbdev, &input_dev->id);
|
||||
usb_to_input_id(udev, &input_dev->id);
|
||||
input_dev->dev.parent = &usbinterface->dev;
|
||||
|
||||
/* Setup the URB, it will be posted later on open of input device */
|
||||
endpoint = &usbinterface->altsetting[0].endpoint[0].desc;
|
||||
|
||||
usb_fill_int_urb(gtco->urbinfo,
|
||||
gtco->usbdev,
|
||||
usb_rcvintpipe(gtco->usbdev,
|
||||
udev,
|
||||
usb_rcvintpipe(udev,
|
||||
endpoint->bEndpointAddress),
|
||||
gtco->buffer,
|
||||
REPORT_MAX_SIZE,
|
||||
@@ -985,7 +984,7 @@ static int gtco_probe(struct usb_interface *usbinterface,
|
||||
err_free_urb:
|
||||
usb_free_urb(gtco->urbinfo);
|
||||
err_free_buf:
|
||||
usb_free_coherent(gtco->usbdev, REPORT_MAX_SIZE,
|
||||
usb_free_coherent(udev, REPORT_MAX_SIZE,
|
||||
gtco->buffer, gtco->buf_dma);
|
||||
err_free_devs:
|
||||
input_free_device(input_dev);
|
||||
@@ -1002,13 +1001,14 @@ static void gtco_disconnect(struct usb_interface *interface)
|
||||
{
|
||||
/* Grab private device ptr */
|
||||
struct gtco *gtco = usb_get_intfdata(interface);
|
||||
struct usb_device *udev = interface_to_usbdev(interface);
|
||||
|
||||
/* Now reverse all the registration stuff */
|
||||
if (gtco) {
|
||||
input_unregister_device(gtco->inputdevice);
|
||||
usb_kill_urb(gtco->urbinfo);
|
||||
usb_free_urb(gtco->urbinfo);
|
||||
usb_free_coherent(gtco->usbdev, REPORT_MAX_SIZE,
|
||||
usb_free_coherent(udev, REPORT_MAX_SIZE,
|
||||
gtco->buffer, gtco->buf_dma);
|
||||
kfree(gtco);
|
||||
}
|
||||
|
@@ -31,7 +31,6 @@ struct kbtab {
|
||||
unsigned char *data;
|
||||
dma_addr_t data_dma;
|
||||
struct input_dev *dev;
|
||||
struct usb_device *usbdev;
|
||||
struct usb_interface *intf;
|
||||
struct urb *irq;
|
||||
char phys[32];
|
||||
@@ -99,8 +98,9 @@ MODULE_DEVICE_TABLE(usb, kbtab_ids);
|
||||
static int kbtab_open(struct input_dev *dev)
|
||||
{
|
||||
struct kbtab *kbtab = input_get_drvdata(dev);
|
||||
struct usb_device *udev = interface_to_usbdev(kbtab->intf);
|
||||
|
||||
kbtab->irq->dev = kbtab->usbdev;
|
||||
kbtab->irq->dev = udev;
|
||||
if (usb_submit_urb(kbtab->irq, GFP_KERNEL))
|
||||
return -EIO;
|
||||
|
||||
@@ -135,7 +135,6 @@ static int kbtab_probe(struct usb_interface *intf, const struct usb_device_id *i
|
||||
if (!kbtab->irq)
|
||||
goto fail2;
|
||||
|
||||
kbtab->usbdev = dev;
|
||||
kbtab->intf = intf;
|
||||
kbtab->dev = input_dev;
|
||||
|
||||
@@ -188,12 +187,13 @@ static int kbtab_probe(struct usb_interface *intf, const struct usb_device_id *i
|
||||
static void kbtab_disconnect(struct usb_interface *intf)
|
||||
{
|
||||
struct kbtab *kbtab = usb_get_intfdata(intf);
|
||||
struct usb_device *udev = interface_to_usbdev(intf);
|
||||
|
||||
usb_set_intfdata(intf, NULL);
|
||||
|
||||
input_unregister_device(kbtab->dev);
|
||||
usb_free_urb(kbtab->irq);
|
||||
usb_free_coherent(kbtab->usbdev, 8, kbtab->data, kbtab->data_dma);
|
||||
usb_free_coherent(udev, 8, kbtab->data, kbtab->data_dma);
|
||||
kfree(kbtab);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user