diff options
Diffstat (limited to 'drivers/usb/host/sl811-hcd.c')
-rw-r--r-- | drivers/usb/host/sl811-hcd.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c index 3a586aab3939..5fa5647ea095 100644 --- a/drivers/usb/host/sl811-hcd.c +++ b/drivers/usb/host/sl811-hcd.c | |||
@@ -428,7 +428,6 @@ static void finish_request( | |||
428 | struct sl811 *sl811, | 428 | struct sl811 *sl811, |
429 | struct sl811h_ep *ep, | 429 | struct sl811h_ep *ep, |
430 | struct urb *urb, | 430 | struct urb *urb, |
431 | struct pt_regs *regs, | ||
432 | int status | 431 | int status |
433 | ) __releases(sl811->lock) __acquires(sl811->lock) | 432 | ) __releases(sl811->lock) __acquires(sl811->lock) |
434 | { | 433 | { |
@@ -444,7 +443,7 @@ static void finish_request( | |||
444 | spin_unlock(&urb->lock); | 443 | spin_unlock(&urb->lock); |
445 | 444 | ||
446 | spin_unlock(&sl811->lock); | 445 | spin_unlock(&sl811->lock); |
447 | usb_hcd_giveback_urb(sl811_to_hcd(sl811), urb, regs); | 446 | usb_hcd_giveback_urb(sl811_to_hcd(sl811), urb); |
448 | spin_lock(&sl811->lock); | 447 | spin_lock(&sl811->lock); |
449 | 448 | ||
450 | /* leave active endpoints in the schedule */ | 449 | /* leave active endpoints in the schedule */ |
@@ -484,7 +483,7 @@ static void finish_request( | |||
484 | } | 483 | } |
485 | 484 | ||
486 | static void | 485 | static void |
487 | done(struct sl811 *sl811, struct sl811h_ep *ep, u8 bank, struct pt_regs *regs) | 486 | done(struct sl811 *sl811, struct sl811h_ep *ep, u8 bank) |
488 | { | 487 | { |
489 | u8 status; | 488 | u8 status; |
490 | struct urb *urb; | 489 | struct urb *urb; |
@@ -608,7 +607,7 @@ done(struct sl811 *sl811, struct sl811h_ep *ep, u8 bank, struct pt_regs *regs) | |||
608 | } | 607 | } |
609 | 608 | ||
610 | if (urb && (urbstat != -EINPROGRESS || urb->status != -EINPROGRESS)) | 609 | if (urb && (urbstat != -EINPROGRESS || urb->status != -EINPROGRESS)) |
611 | finish_request(sl811, ep, urb, regs, urbstat); | 610 | finish_request(sl811, ep, urb, urbstat); |
612 | } | 611 | } |
613 | 612 | ||
614 | static inline u8 checkdone(struct sl811 *sl811) | 613 | static inline u8 checkdone(struct sl811 *sl811) |
@@ -641,7 +640,7 @@ static inline u8 checkdone(struct sl811 *sl811) | |||
641 | return irqstat; | 640 | return irqstat; |
642 | } | 641 | } |
643 | 642 | ||
644 | static irqreturn_t sl811h_irq(struct usb_hcd *hcd, struct pt_regs *regs) | 643 | static irqreturn_t sl811h_irq(struct usb_hcd *hcd) |
645 | { | 644 | { |
646 | struct sl811 *sl811 = hcd_to_sl811(hcd); | 645 | struct sl811 *sl811 = hcd_to_sl811(hcd); |
647 | u8 irqstat; | 646 | u8 irqstat; |
@@ -670,13 +669,13 @@ retry: | |||
670 | * issued ... that's fine if they're different endpoints. | 669 | * issued ... that's fine if they're different endpoints. |
671 | */ | 670 | */ |
672 | if (irqstat & SL11H_INTMASK_DONE_A) { | 671 | if (irqstat & SL11H_INTMASK_DONE_A) { |
673 | done(sl811, sl811->active_a, SL811_EP_A(SL811_HOST_BUF), regs); | 672 | done(sl811, sl811->active_a, SL811_EP_A(SL811_HOST_BUF)); |
674 | sl811->active_a = NULL; | 673 | sl811->active_a = NULL; |
675 | sl811->stat_a++; | 674 | sl811->stat_a++; |
676 | } | 675 | } |
677 | #ifdef USE_B | 676 | #ifdef USE_B |
678 | if (irqstat & SL11H_INTMASK_DONE_B) { | 677 | if (irqstat & SL11H_INTMASK_DONE_B) { |
679 | done(sl811, sl811->active_b, SL811_EP_B(SL811_HOST_BUF), regs); | 678 | done(sl811, sl811->active_b, SL811_EP_B(SL811_HOST_BUF)); |
680 | sl811->active_b = NULL; | 679 | sl811->active_b = NULL; |
681 | sl811->stat_b++; | 680 | sl811->stat_b++; |
682 | } | 681 | } |
@@ -723,7 +722,7 @@ retry: | |||
723 | container_of(sl811->active_a | 722 | container_of(sl811->active_a |
724 | ->hep->urb_list.next, | 723 | ->hep->urb_list.next, |
725 | struct urb, urb_list), | 724 | struct urb, urb_list), |
726 | NULL, -ESHUTDOWN); | 725 | -ESHUTDOWN); |
727 | sl811->active_a = NULL; | 726 | sl811->active_a = NULL; |
728 | } | 727 | } |
729 | #ifdef USE_B | 728 | #ifdef USE_B |
@@ -957,7 +956,7 @@ static int sl811h_urb_enqueue( | |||
957 | spin_lock(&urb->lock); | 956 | spin_lock(&urb->lock); |
958 | if (urb->status != -EINPROGRESS) { | 957 | if (urb->status != -EINPROGRESS) { |
959 | spin_unlock(&urb->lock); | 958 | spin_unlock(&urb->lock); |
960 | finish_request(sl811, ep, urb, NULL, 0); | 959 | finish_request(sl811, ep, urb, 0); |
961 | retval = 0; | 960 | retval = 0; |
962 | goto fail; | 961 | goto fail; |
963 | } | 962 | } |
@@ -1026,7 +1025,7 @@ static int sl811h_urb_dequeue(struct usb_hcd *hcd, struct urb *urb) | |||
1026 | } | 1025 | } |
1027 | 1026 | ||
1028 | if (urb) | 1027 | if (urb) |
1029 | finish_request(sl811, ep, urb, NULL, 0); | 1028 | finish_request(sl811, ep, urb, 0); |
1030 | else | 1029 | else |
1031 | VDBG("dequeue, urb %p active %s; wait4irq\n", urb, | 1030 | VDBG("dequeue, urb %p active %s; wait4irq\n", urb, |
1032 | (sl811->active_a == ep) ? "A" : "B"); | 1031 | (sl811->active_a == ep) ? "A" : "B"); |
@@ -1083,7 +1082,7 @@ sl811h_hub_status_data(struct usb_hcd *hcd, char *buf) | |||
1083 | */ | 1082 | */ |
1084 | local_irq_save(flags); | 1083 | local_irq_save(flags); |
1085 | if (!timer_pending(&sl811->timer)) { | 1084 | if (!timer_pending(&sl811->timer)) { |
1086 | if (sl811h_irq( /* ~0, */ hcd, NULL) != IRQ_NONE) | 1085 | if (sl811h_irq( /* ~0, */ hcd) != IRQ_NONE) |
1087 | sl811->stat_lost++; | 1086 | sl811->stat_lost++; |
1088 | } | 1087 | } |
1089 | local_irq_restore(flags); | 1088 | local_irq_restore(flags); |