Commit c4e3fd94 authored by Thierry MERLE's avatar Thierry MERLE Committed by Mauro Carvalho Chehab

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: default avatarThierry MERLE <thierry.merle@free.fr>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent db210426
...@@ -137,7 +137,8 @@ static int flexcop_send_diseqc_msg(struct dvb_frontend* fe, int len, u8 *msg, un ...@@ -137,7 +137,8 @@ static int flexcop_send_diseqc_msg(struct dvb_frontend* fe, int len, u8 *msg, un
flexcop_diseqc_send_byte(fe, 0xff); flexcop_diseqc_send_byte(fe, 0xff);
else { else {
flexcop_set_tone(fe, SEC_TONE_ON); flexcop_set_tone(fe, SEC_TONE_ON);
udelay(12500); mdelay(12);
udelay(500);
flexcop_set_tone(fe, SEC_TONE_OFF); flexcop_set_tone(fe, SEC_TONE_OFF);
} }
msleep(20); msleep(20);
......
...@@ -1244,7 +1244,7 @@ static int dst_command(struct dst_state *state, u8 *data, u8 len) ...@@ -1244,7 +1244,7 @@ static int dst_command(struct dst_state *state, u8 *data, u8 len)
goto error; goto error;
} }
if (state->type_flags & DST_TYPE_HAS_FW_1) if (state->type_flags & DST_TYPE_HAS_FW_1)
udelay(3000); mdelay(3);
if (read_dst(state, &reply, GET_ACK)) { if (read_dst(state, &reply, GET_ACK)) {
dprintk(verbose, DST_DEBUG, 1, "Trying to recover.. "); dprintk(verbose, DST_DEBUG, 1, "Trying to recover.. ");
if ((dst_error_recovery(state)) < 0) { if ((dst_error_recovery(state)) < 0) {
...@@ -1260,7 +1260,7 @@ static int dst_command(struct dst_state *state, u8 *data, u8 len) ...@@ -1260,7 +1260,7 @@ static int dst_command(struct dst_state *state, u8 *data, u8 len)
if (len >= 2 && data[0] == 0 && (data[1] == 1 || data[1] == 3)) if (len >= 2 && data[0] == 0 && (data[1] == 1 || data[1] == 3))
goto error; goto error;
if (state->type_flags & DST_TYPE_HAS_FW_1) if (state->type_flags & DST_TYPE_HAS_FW_1)
udelay(3000); mdelay(3);
else else
udelay(2000); udelay(2000);
if (!dst_wait_dst_ready(state, NO_DELAY)) if (!dst_wait_dst_ready(state, NO_DELAY))
......
...@@ -4039,7 +4039,8 @@ static void __devinit boot_msp34xx(struct bttv *btv, int pin) ...@@ -4039,7 +4039,8 @@ static void __devinit boot_msp34xx(struct bttv *btv, int pin)
gpio_inout(mask,mask); gpio_inout(mask,mask);
gpio_bits(mask,0); gpio_bits(mask,0);
udelay(2500); mdelay(2);
udelay(500);
gpio_bits(mask,mask); gpio_bits(mask,mask);
if (bttv_gpio) if (bttv_gpio)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment