Am Dienstag, 18. Mai 2004 02:37 schrieb David Brownell:
> >>this purges wait_ms() from ehci.
> >
> > David, look sane?
>
> I'd rather have a patch that covered msec_delay() too;
> how about an updated version?
Here you are. It's an additional change set.
Regards
Oliver
You can import this changeset into BK by piping this whole message to:
'| bk receive [path to repository]' or apply the patch as usual.
===================================================================
[EMAIL PROTECTED], 2004-05-18 09:15:24+02:00, [EMAIL PROTECTED]
- new safe wait helper
- remove homegrown msec/jiffy converter
ehci-hcd.c | 6 +++---
ehci-hub.c | 10 +++++-----
ehci.h | 8 --------
ohci-hcd.c | 4 ++--
ohci-hub.c | 4 ++--
ohci-pci.c | 6 +++---
ohci.h | 8 --------
7 files changed, 15 insertions(+), 31 deletions(-)
diff -Nru a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
--- a/drivers/usb/host/ehci-hcd.c Tue May 18 09:18:20 2004
+++ b/drivers/usb/host/ehci-hcd.c Tue May 18 09:18:20 2004
@@ -632,7 +632,7 @@
struct ehci_hcd *ehci = hcd_to_ehci (hcd);
while (time_before (jiffies, ehci->next_statechange))
- msec_delay (100);
+ usb_uninterruptible_sleep_ms (100);
#ifdef CONFIG_USB_SUSPEND
(void) usb_suspend_device (hcd->self.root_hub);
@@ -654,7 +654,7 @@
// maybe restore (PCI) FLADJ
while (time_before (jiffies, ehci->next_statechange))
- msec_delay (100);
+ usb_uninterruptible_sleep_ms(100);
#ifdef CONFIG_USB_SUSPEND
retval = usb_resume_device (hcd->self.root_hub);
@@ -769,7 +769,7 @@
* and make khubd collect PORT_STAT_C_SUSPEND to
* stop that signaling.
*/
- ehci->reset_done [i] = jiffies + MSEC_TO_JIFFIES (20);
+ ehci->reset_done [i] = jiffies + msecs_to_jiffies (20);
mod_timer (&ehci->hcd.rh_timer,
ehci->reset_done [i] + 1);
ehci_dbg (ehci, "port %d remote wakeup\n", i + 1);
diff -Nru a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
--- a/drivers/usb/host/ehci-hub.c Tue May 18 09:18:20 2004
+++ b/drivers/usb/host/ehci-hub.c Tue May 18 09:18:20 2004
@@ -75,7 +75,7 @@
(void) handshake (&ehci->regs->status, STS_HALT, STS_HALT, 2000);
root->dev.power.power_state = 3;
- ehci->next_statechange = jiffies + MSEC_TO_JIFFIES(10);
+ ehci->next_statechange = jiffies + msecs_to_jiffies(10);
spin_unlock_irq (&ehci->lock);
return status;
}
@@ -112,7 +112,7 @@
temp = readl (&ehci->regs->port_status [i]);
temp &= ~(PORT_WKOC_E|PORT_WKDISC_E|PORT_WKCONN_E);
if (temp & PORT_SUSPEND) {
- ehci->reset_done [i] = jiffies + MSEC_TO_JIFFIES (20);
+ ehci->reset_done [i] = jiffies + msecs_to_jiffies (20);
temp |= PORT_RESUME;
}
writel (temp, &ehci->regs->port_status [i]);
@@ -139,7 +139,7 @@
writel (ehci->command | temp, &ehci->regs->command);
root->dev.power.power_state = 0;
- ehci->next_statechange = jiffies + MSEC_TO_JIFFIES(5);
+ ehci->next_statechange = jiffies + msecs_to_jiffies(5);
ehci->hcd.state = USB_STATE_RUNNING;
return 0;
}
@@ -334,7 +334,7 @@
writel ((temp & ~PORT_WAKE_BITS) | PORT_RESUME,
&ehci->regs->port_status [wIndex]);
ehci->reset_done [wIndex] = jiffies
- + MSEC_TO_JIFFIES (20);
+ + msecs_to_jiffies (20);
}
break;
case USB_PORT_FEAT_C_SUSPEND:
@@ -514,7 +514,7 @@
* usb 2.0 spec says 50 ms resets on root
*/
ehci->reset_done [wIndex] = jiffies
- + MSEC_TO_JIFFIES (50);
+ + msecs_to_jiffies (50);
}
writel (temp, &ehci->regs->port_status [wIndex]);
break;
diff -Nru a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
--- a/drivers/usb/host/ehci.h Tue May 18 09:18:20 2004
+++ b/drivers/usb/host/ehci.h Tue May 18 09:18:20 2004
@@ -596,14 +596,6 @@
/*-------------------------------------------------------------------------*/
-#define MSEC_TO_JIFFIES(msec) ((HZ * (msec) + 999) / 1000)
-
-static inline void msec_delay(int msec)
-{
- set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(MSEC_TO_JIFFIES(msec));
-}
-
#ifndef DEBUG
#define STUB_DEBUG_FILES
#endif /* DEBUG */
diff -Nru a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
--- a/drivers/usb/host/ohci-hcd.c Tue May 18 09:18:20 2004
+++ b/drivers/usb/host/ohci-hcd.c Tue May 18 09:18:20 2004
@@ -417,7 +417,7 @@
writel (OHCI_INTR_OC, &ohci->regs->intrenable);
writel (OHCI_OCR, &ohci->regs->cmdstatus);
while (readl (&ohci->regs->control) & OHCI_CTRL_IR) {
- msec_delay (10);
+ usb_uninterruptible_sleep_ms (10);
if (--temp == 0) {
ohci_err (ohci, "USB HC TakeOver failed!\n");
return -1;
@@ -451,7 +451,7 @@
}
// flush those pci writes
(void) readl (&ohci->regs->control);
- msec_delay (50);
+ usb_uninterruptible_sleep_ms(50);
/* HC Reset requires max 10 us delay */
writel (OHCI_HCR, &ohci->regs->cmdstatus);
diff -Nru a/drivers/usb/host/ohci-hub.c b/drivers/usb/host/ohci-hub.c
--- a/drivers/usb/host/ohci-hub.c Tue May 18 09:18:20 2004
+++ b/drivers/usb/host/ohci-hub.c Tue May 18 09:18:20 2004
@@ -248,7 +248,7 @@
/* Then re-enable operations */
writel (OHCI_USB_OPER, &ohci->regs->control);
(void) readl (&ohci->regs->control);
- msec_delay (3);
+ usb_uninterruptible_sleep_ms(3);
temp = OHCI_CONTROL_INIT | OHCI_USB_OPER;
if (ohci->hcd.can_wakeup)
@@ -258,7 +258,7 @@
(void) readl (&ohci->regs->control);
/* TRSMRCY */
- msec_delay (10);
+ usb_uninterruptible_sleep_ms (10);
root->dev.power.power_state = 0;
/* keep it alive for ~5x suspend + resume costs */
diff -Nru a/drivers/usb/host/ohci-pci.c b/drivers/usb/host/ohci-pci.c
--- a/drivers/usb/host/ohci-pci.c Tue May 18 09:18:20 2004
+++ b/drivers/usb/host/ohci-pci.c Tue May 18 09:18:20 2004
@@ -122,7 +122,7 @@
/* suspend root hub, hoping it keeps power during suspend */
while (time_before (jiffies, ohci->next_statechange))
- msec_delay (100);
+ usb_uninterruptible_sleep_ms (100);
#ifdef CONFIG_USB_SUSPEND
(void) usb_suspend_device (hcd->self.root_hub);
@@ -132,7 +132,7 @@
#endif
/* let things settle down a bit */
- msec_delay (100);
+ usb_uninterruptible_sleep_ms (100);
#ifdef CONFIG_PMAC_PBOOK
if (_machine == _MACH_Pmac)
@@ -169,7 +169,7 @@
/* resume root hub */
while (time_before (jiffies, ohci->next_statechange))
- msec_delay (100);
+ usb_uninterruptible_sleep_ms (100);
#ifdef CONFIG_USB_SUSPEND
/* get extra cleanup even if remote wakeup isn't in use */
retval = usb_resume_device (hcd->self.root_hub);
diff -Nru a/drivers/usb/host/ohci.h b/drivers/usb/host/ohci.h
--- a/drivers/usb/host/ohci.h Tue May 18 09:18:20 2004
+++ b/drivers/usb/host/ohci.h Tue May 18 09:18:20 2004
@@ -397,14 +397,6 @@
ohci->hcd.state = USB_STATE_HALT;
}
-#define MSEC_TO_JIFFIES(msec) ((HZ * (msec) + 999) / 1000)
-
-static inline void msec_delay(int msec)
-{
- set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(MSEC_TO_JIFFIES(msec));
-}
-
#define FI 0x2edf /* 12000 bits per frame (-1) */
#define DEFAULT_FMINTERVAL ((((6 * (FI - 210)) / 7) << 16) | FI)
#define LSTHRESH 0x628 /* lowspeed bit threshold */
===================================================================
This BitKeeper patch contains the following changesets:
1.1728
## Wrapped with gzip_uu ##
M'XL( +RXJ4 ]5876_;-A1]EGX%@;YT"&SSFY0'%]F:81TZH$&Z/A6%04F4
MI=66#$E.5D _?A09Q_82VY*V%)D3Y"H2>7UY[KGWD'H%/E6ZG'K%,KO5I?\*
MO"NJ>NJM5!3J.AWG>O-ULQH7Y<(\NBD*\VB2%BL]<>,G?Y1:5Y-EEF\JS'PS
MYEK540K,HVKJH3%YN%-_6^NI=_/+KY]^_^G&]V<S\#95^4)_U#68S?RZ*&_5
M,JXN59TNBWQ<ERJO5KI6XZA8-0]#&PPA-C\,"0(9;Q"'5#01BA%2%.D88BHY
M]5UPEX\7<>B)MGXPQA3#AC"$H7\%T-C<[EMAIL PROTECTED]"6039"Z"*6)33"[EMAIL PROTECTED]((CGH&
M%P*,H/\S^&]7\M:/P [EMAIL PROTECTED]'@3F4U2/5R;5+5/BCUJKC5H,W(HBSN<K"J
M=#3Y,TN2;R J<A-J;4:^!X1QCOSK'>;^J.?']Z&"_AL0I9>K3;E0=5EDL5U2
M7+:05)--%1IJ5/6D2*-LM(ZR<>06R:$T&!,J&W,%62-)1!1!.E&)U$D<' ?U
[EMAIL PROTECTED](*Q) !,*"[EMAIL PROTECTED]>!O_ 6Q1/M'[EMAIL PROTECTED]&[EMAIL
PROTECTED];4)**!"#GB
M(DY0I/O$N'.['Q\5A+!^\=G%FHLMD"V4$''"&RRE((V"6$22$O./"E%">P/Y
MX/L 2&A6/B303?A$H 'DI,[EMAIL PROTECTED]/(X$0*S_H%N?>\'2I"0L'_&#Q%]R+HQ
MK DX5Q I%>H 4:A4W[0?0910*(<$NH_H+E I8)-H1D,#,(Y$&,>"] _T*42I
ME'T#+0YJ:)=V1G%#0A&Q.,;FH4**]T[[XR)J^R6SZG&B,[EMAIL PROTECTED];1:/
MPLMU&_YR:<*O/R]*O?C2I4TA3$Q+;[G [EMAIL PROTECTED];Q\RI#P(A\3Y5Y#UQC
M_0!&Y9W]-5IP?0K^ =)RA4Q/0/YOSGB>\3K?Y%ENQ*O<K.LL7.IYM=1Z/5]5
MX#6"\(<?S1SBYEC3<8K =HHUW;[F2:[M2KWEVC/VGQ,[F0[]Q^YM$&[EMAIL PROTECTED]'!@
M.2?X_X%S?78VKK>>8^<.FR'LY(YISG1D)V?"SK'&\\"I2=LYPM%3W-/3LU&_
M*76EZWE<Y!I\SKZ &6A!R'0%+BPFU;PNYMM;K_$9SK9=?Q!GNTM1?\[N2]&6
MLY0C1ER?A$,XR\"(/1-GNU+3J6DW:K80#*&FD)8Q[=][NN3ZKWI>U:K6D5W=
M2<(8YMF^B%PK1>S?$>[EMAIL PROTECTED]&O=$&*+QQG/?HY_I\E9.]B9XX/9R<H8
MIP.JHN/9H<_&[EMAIL PROTECTED] F!+.&&_?,%H-I00.* 8*1?*D-W)V+NE3).!U2(2P(
[EMAIL PROTECTED]/9KVWC@<ROMTZ0LXDLBS@> @+,!CA[[QUM$?)3EO'P>),C3Z8
M\G?&.Z_.;<[EMAIL PROTECTED]<<:)M%$,%M>[EMAIL PROTECTED](LD$A T6;;KL"ZY'K[=>
M)GO<^;X;>X;J)V:H98(SIYE [EMAIL PROTECTED];SL^/ON7:4.KT5I\])NR]E]B7'-1LC
M.,1)#A[4;%ZRY+BW"%V(-4QRJ(%&[EZ&1ZF.OE:;U8S ((91'/A_ Q\W,$=U
#%P
-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel