diff options
author | Thierry MERLE <thierry.merle@free.fr> | 2008-09-01 22:28:57 +0200 |
---|---|---|
committer | Thierry MERLE <thierry.merle@free.fr> | 2008-09-01 22:28:57 +0200 |
commit | 2f96c8ed0e34f83524cfce79d48ef98ae3a5554f (patch) | |
tree | cad442f19e9e6aea8c5824c04b2ec5c2a13385a4 /linux/drivers/media/dvb | |
parent | 7804585be37d9aa982df2d476a795cbe459dae4a (diff) | |
download | mediapointer-dvb-s2-2f96c8ed0e34f83524cfce79d48ef98ae3a5554f.tar.gz mediapointer-dvb-s2-2f96c8ed0e34f83524cfce79d48ef98ae3a5554f.tar.bz2 |
budget: udelay changed to mdelay
From: Thierry MERLE <thierry.merle@free.fr>
budget.ko fails to build on ARM with:
ERROR: "__bad_udelay" [drivers/media/dvb/ttpci/budget.ko] undefined!
make[1]: *** [__modpost] Error 1
__bad_udelay is specifically designed on ARM to fail when udelay is
called in a bad way. arch/arm/include/asm/delay.h has this to say
about __bad_udelay:
/*
* This function intentionally does not exist; if you see references to
* it, it means that you're calling udelay() with an out of range value.
*
* With currently imposed limits, this means that we support a max delay
* of 2000us. Further limits: HZ<=1000 and bogomips<=3355
*/
extern void __bad_udelay(void);
Solution is to replace udelay by a mdelay and udelay with value less than 2000
Priority: high
Acked-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Thierry MERLE <thierry.merle@free.fr>
Diffstat (limited to 'linux/drivers/media/dvb')
-rw-r--r-- | linux/drivers/media/dvb/ttpci/budget-patch.c | 3 | ||||
-rw-r--r-- | linux/drivers/media/dvb/ttpci/budget.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/linux/drivers/media/dvb/ttpci/budget-patch.c b/linux/drivers/media/dvb/ttpci/budget-patch.c index 8ae0126b7..b53b4b6d9 100644 --- a/linux/drivers/media/dvb/ttpci/budget-patch.c +++ b/linux/drivers/media/dvb/ttpci/budget-patch.c @@ -116,7 +116,8 @@ static int SendDiSEqCMsg (struct budget *budget, int len, u8 *msg, unsigned long DiseqcSendByte(budget, 0xff); else { saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI); - udelay(12500); + mdelay(12); + udelay(500); saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); } msleep(20); diff --git a/linux/drivers/media/dvb/ttpci/budget.c b/linux/drivers/media/dvb/ttpci/budget.c index 57709ef02..851e523fb 100644 --- a/linux/drivers/media/dvb/ttpci/budget.c +++ b/linux/drivers/media/dvb/ttpci/budget.c @@ -108,7 +108,8 @@ static int SendDiSEqCMsg (struct budget *budget, int len, u8 *msg, unsigned long DiseqcSendByte(budget, 0xff); else { saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI); - udelay(12500); + mdelay(12); + udelay(500); saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); } msleep(20); |