diff options
author | Thierry MERLE <thierry.merle@free.fr> | 2008-09-01 16:32:10 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-09-04 17:27:03 -0400 |
commit | c4e3fd940c7081a0332e9b4ea6485744075067b0 (patch) | |
tree | d777a8ac3f2c4eceb0f8e57bcd95579ca9f24d0c /drivers/media | |
parent | db210426d48998ed412f267b28cf6e62ea0496a8 (diff) |
V4L/DVB (8877): b2c2 and bt8xx: udelay to mdelay
b2c2-flexcop, dvb/bt8xx and video/bt8xx fails to build on ARM with:
__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
Signed-off-by: Thierry MERLE <thierry.merle@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/dvb/b2c2/flexcop-fe-tuner.c | 3 | ||||
-rw-r--r-- | drivers/media/dvb/bt8xx/dst.c | 4 | ||||
-rw-r--r-- | drivers/media/video/bt8xx/bttv-cards.c | 3 |
3 files changed, 6 insertions, 4 deletions
diff --git a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c index f9d087669d5d..4eed783f4bce 100644 --- a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c +++ b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c | |||
@@ -137,7 +137,8 @@ static int flexcop_send_diseqc_msg(struct dvb_frontend* fe, int len, u8 *msg, un | |||
137 | flexcop_diseqc_send_byte(fe, 0xff); | 137 | flexcop_diseqc_send_byte(fe, 0xff); |
138 | else { | 138 | else { |
139 | flexcop_set_tone(fe, SEC_TONE_ON); | 139 | flexcop_set_tone(fe, SEC_TONE_ON); |
140 | udelay(12500); | 140 | mdelay(12); |
141 | udelay(500); | ||
141 | flexcop_set_tone(fe, SEC_TONE_OFF); | 142 | flexcop_set_tone(fe, SEC_TONE_OFF); |
142 | } | 143 | } |
143 | msleep(20); | 144 | msleep(20); |
diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c index a7637562e742..aa3db57d32d9 100644 --- a/drivers/media/dvb/bt8xx/dst.c +++ b/drivers/media/dvb/bt8xx/dst.c | |||
@@ -1244,7 +1244,7 @@ static int dst_command(struct dst_state *state, u8 *data, u8 len) | |||
1244 | goto error; | 1244 | goto error; |
1245 | } | 1245 | } |
1246 | if (state->type_flags & DST_TYPE_HAS_FW_1) | 1246 | if (state->type_flags & DST_TYPE_HAS_FW_1) |
1247 | udelay(3000); | 1247 | mdelay(3); |
1248 | if (read_dst(state, &reply, GET_ACK)) { | 1248 | if (read_dst(state, &reply, GET_ACK)) { |
1249 | dprintk(verbose, DST_DEBUG, 1, "Trying to recover.. "); | 1249 | dprintk(verbose, DST_DEBUG, 1, "Trying to recover.. "); |
1250 | if ((dst_error_recovery(state)) < 0) { | 1250 | if ((dst_error_recovery(state)) < 0) { |
@@ -1260,7 +1260,7 @@ static int dst_command(struct dst_state *state, u8 *data, u8 len) | |||
1260 | if (len >= 2 && data[0] == 0 && (data[1] == 1 || data[1] == 3)) | 1260 | if (len >= 2 && data[0] == 0 && (data[1] == 1 || data[1] == 3)) |
1261 | goto error; | 1261 | goto error; |
1262 | if (state->type_flags & DST_TYPE_HAS_FW_1) | 1262 | if (state->type_flags & DST_TYPE_HAS_FW_1) |
1263 | udelay(3000); | 1263 | mdelay(3); |
1264 | else | 1264 | else |
1265 | udelay(2000); | 1265 | udelay(2000); |
1266 | if (!dst_wait_dst_ready(state, NO_DELAY)) | 1266 | if (!dst_wait_dst_ready(state, NO_DELAY)) |
diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c index 9001de233323..6081edc362df 100644 --- a/drivers/media/video/bt8xx/bttv-cards.c +++ b/drivers/media/video/bt8xx/bttv-cards.c | |||
@@ -4039,7 +4039,8 @@ static void __devinit boot_msp34xx(struct bttv *btv, int pin) | |||
4039 | 4039 | ||
4040 | gpio_inout(mask,mask); | 4040 | gpio_inout(mask,mask); |
4041 | gpio_bits(mask,0); | 4041 | gpio_bits(mask,0); |
4042 | udelay(2500); | 4042 | mdelay(2); |
4043 | udelay(500); | ||
4043 | gpio_bits(mask,mask); | 4044 | gpio_bits(mask,mask); |
4044 | 4045 | ||
4045 | if (bttv_gpio) | 4046 | if (bttv_gpio) |