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