Commit 3ac7f581 authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://kernel.bkbits.net/gregkh/linux/pci-2.5

into home.transmeta.com:/home/torvalds/v2.5/linux
parents cbef6c0f ff0699a5
...@@ -11,7 +11,8 @@ DOCBOOKS := wanbook.sgml z8530book.sgml mcabook.sgml videobook.sgml \ ...@@ -11,7 +11,8 @@ DOCBOOKS := wanbook.sgml z8530book.sgml mcabook.sgml videobook.sgml \
kernel-locking.sgml via-audio.sgml mousedrivers.sgml \ kernel-locking.sgml via-audio.sgml mousedrivers.sgml \
deviceiobook.sgml procfs-guide.sgml tulip-user.sgml \ deviceiobook.sgml procfs-guide.sgml tulip-user.sgml \
writing_usb_driver.sgml scsidrivers.sgml sis900.sgml \ writing_usb_driver.sgml scsidrivers.sgml sis900.sgml \
kernel-api.sgml journal-api.sgml lsm.sgml usb.sgml kernel-api.sgml journal-api.sgml lsm.sgml usb.sgml \
gadget.sgml
### ###
# The build process is as follows (targets): # The build process is as follows (targets):
......
This diff is collapsed.
...@@ -93,17 +93,6 @@ hpusbscsi_usb_probe(struct usb_interface *intf, ...@@ -93,17 +93,6 @@ hpusbscsi_usb_probe(struct usb_interface *intf,
} }
} }
/* USB initialisation magic for the simple case */
result = usb_set_interface(dev, altsetting->desc.bInterfaceNumber, 0);
switch (result) {
case 0: /* no error */
break;
default:
printk(KERN_ERR "unknown error %d from usb_set_interface\n",
result);
goto out_free_controlurb;
}
/* build and submit an interrupt URB for status byte handling */ /* build and submit an interrupt URB for status byte handling */
usb_fill_int_urb(new->controlurb, new->dev, usb_fill_int_urb(new->controlurb, new->dev,
usb_rcvintpipe(new->dev, new->ep_int), usb_rcvintpipe(new->dev, new->ep_int),
......
...@@ -70,8 +70,11 @@ static struct input_dev *find_input(struct hid_device *hid, struct hid_field *fi ...@@ -70,8 +70,11 @@ static struct input_dev *find_input(struct hid_device *hid, struct hid_field *fi
hidinput = list_entry(lh, struct hid_input, list); hidinput = list_entry(lh, struct hid_input, list);
for (i = 0; i < hidinput->maxfield; i++) if (! hidinput->report)
if (hidinput->fields[i] == field) continue;
for (i = 0; i < hidinput->report->maxfield; i++)
if (hidinput->report->field[i] == field)
return &hidinput->input; return &hidinput->input;
} }
...@@ -527,7 +530,7 @@ int hidinput_connect(struct hid_device *hid) ...@@ -527,7 +530,7 @@ int hidinput_connect(struct hid_device *hid)
struct hid_report *report; struct hid_report *report;
struct list_head *list; struct list_head *list;
struct hid_input *hidinput = NULL; struct hid_input *hidinput = NULL;
int i, j; int i, j, k;
INIT_LIST_HEAD(&hid->inputs); INIT_LIST_HEAD(&hid->inputs);
...@@ -539,7 +542,8 @@ int hidinput_connect(struct hid_device *hid) ...@@ -539,7 +542,8 @@ int hidinput_connect(struct hid_device *hid)
if (i == hid->maxcollection) if (i == hid->maxcollection)
return -1; return -1;
report_enum = hid->report_enum + HID_INPUT_REPORT; for (k = HID_INPUT_REPORT; k <= HID_OUTPUT_REPORT; k++) {
report_enum = hid->report_enum + k;
list = report_enum->report_list.next; list = report_enum->report_list.next;
while (list != &report_enum->report_list) { while (list != &report_enum->report_list) {
report = (struct hid_report *) list; report = (struct hid_report *) list;
...@@ -582,15 +586,14 @@ int hidinput_connect(struct hid_device *hid) ...@@ -582,15 +586,14 @@ int hidinput_connect(struct hid_device *hid)
* the same interface. Some devices (e.g. Happ's * the same interface. Some devices (e.g. Happ's
* UGCI) cram a lot of unrelated inputs into the * UGCI) cram a lot of unrelated inputs into the
* same interface. */ * same interface. */
hidinput->fields = report->field; hidinput->report = report;
hidinput->maxfield = report->maxfield;
input_register_device(&hidinput->input); input_register_device(&hidinput->input);
hidinput = NULL; hidinput = NULL;
} }
list = list->next; list = list->next;
} }
}
/* This only gets called when we are a single-input (most of the /* This only gets called when we are a single-input (most of the
* time). IOW, not a HID_QUIRK_MULTI_INPUT. The hid_ff_init() is * time). IOW, not a HID_QUIRK_MULTI_INPUT. The hid_ff_init() is
......
...@@ -324,8 +324,7 @@ struct hid_control_fifo { ...@@ -324,8 +324,7 @@ struct hid_control_fifo {
struct hid_input { struct hid_input {
struct list_head list; struct list_head list;
struct hid_field **fields; struct hid_report *report;
int maxfield;
struct input_dev input; struct input_dev input;
}; };
......
...@@ -460,14 +460,15 @@ static void empeg_unthrottle (struct usb_serial_port *port) ...@@ -460,14 +460,15 @@ static void empeg_unthrottle (struct usb_serial_port *port)
static int empeg_startup (struct usb_serial *serial) static int empeg_startup (struct usb_serial *serial)
{ {
int r;
dbg("%s", __FUNCTION__); dbg("%s", __FUNCTION__);
dbg("%s - Set config to 1", __FUNCTION__); dbg("%s - Set config to 1", __FUNCTION__);
usb_set_configuration (serial->dev, 1); r = usb_set_configuration (serial->dev, 1);
/* continue on with initialization */ /* continue on with initialization */
return 0; return r;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment