Keep the timeout the same (1000*500 == 100000 * 5), but take shorter
naps. Makes downloading the firmware slightly faster.
Signed-off-by: Holger Schurig <[email protected]>
--- linux.orig/drivers/net/wireless/libertas/if_cs.c
+++ linux/drivers/net/wireless/libertas/if_cs.c
@@ -148,11 +148,11 @@
{
int i;
- for (i = 0; i < 1000; i++) {
+ for (i = 0; i < 100000; i++) {
u8 val = if_cs_read8(card, addr);
if (val == reg)
return i;
- udelay(500);
+ udelay(5);
}
return -ETIME;
}
On Fri, 2008-05-23 at 10:18 +0200, Holger Schurig wrote:
> Keep the timeout the same (1000*500 == 100000 * 5), but take shorter
> naps. Makes downloading the firmware slightly faster.
>
> Signed-off-by: Holger Schurig <[email protected]>
Acked-by: Dan Williams <[email protected]>
> --- linux.orig/drivers/net/wireless/libertas/if_cs.c
> +++ linux/drivers/net/wireless/libertas/if_cs.c
> @@ -148,11 +148,11 @@
> {
> int i;
>
> - for (i = 0; i < 1000; i++) {
> + for (i = 0; i < 100000; i++) {
> u8 val = if_cs_read8(card, addr);
> if (val == reg)
> return i;
> - udelay(500);
> + udelay(5);
> }
> return -ETIME;
> }
> That changes the return value. Although it doesn't matter
> since all callers only check for < 0, it should perhaps be
> changed to return 0 here to avoid confusion.
You're right, the function returns now different things. But no
caller cares for the different return value, therefore the code
is correct as it is.
I actually used the return value to find out how many loops
usually are needed to program, and found that I wait way to long
in usleep() function.
Holger Schurig <[email protected]> writes:
> Keep the timeout the same (1000*500 =3D=3D 100000 * 5), but take shor=
ter
> naps. Makes downloading the firmware slightly faster.
>
> Signed-off-by: Holger Schurig <[email protected]>
>
> --- linux.orig/drivers/net/wireless/libertas/if_cs.c
> +++ linux/drivers/net/wireless/libertas/if_cs.c
> @@ -148,11 +148,11 @@
> {
> int i;
> =20
> - for (i =3D 0; i < 1000; i++) {
> + for (i =3D 0; i < 100000; i++) {
> u8 val =3D if_cs_read8(card, addr);
> if (val =3D=3D reg)
> return i;
That changes the return value. Although it doesn't matter since all
callers only check for < 0, it should perhaps be changed to return 0
here to avoid confusion.
Andreas.
--=20
Andreas Schwab, SuSE Labs, [email protected]
SuSE Linux Products GmbH, Maxfeldstra=DFe 5, 90409 N=FCrnberg, Germany
PGP key fingerprint =3D 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4=
ED5
"And now for something completely different."