mirror of
https://github.com/DigitalDevices/dddvb.git
synced 2025-03-01 10:35:23 +00:00
prevent lockup
This commit is contained in:
parent
0fcd9563f1
commit
59cbab6383
@ -452,18 +452,20 @@ int ddbridge_mod_output_start(struct ddb_output *output)
|
|||||||
|
|
||||||
static int mod_write_max2871(struct ddb *dev, u32 val)
|
static int mod_write_max2871(struct ddb *dev, u32 val)
|
||||||
{
|
{
|
||||||
|
u32 retry = 100;
|
||||||
ddbwritel(dev, val, MAX2871_OUTDATA);
|
ddbwritel(dev, val, MAX2871_OUTDATA);
|
||||||
ddbwritel(dev, MAX2871_CONTROL_CE | MAX2871_CONTROL_WRITE,
|
ddbwritel(dev, MAX2871_CONTROL_CE | MAX2871_CONTROL_WRITE,
|
||||||
MAX2871_CONTROL);
|
MAX2871_CONTROL);
|
||||||
while (1) {
|
while (--retry) {
|
||||||
u32 ControlReg = ddbreadl(dev, MAX2871_CONTROL);
|
u32 ControlReg = ddbreadl(dev, MAX2871_CONTROL);
|
||||||
|
|
||||||
if (ControlReg == 0xFFFFFFFF)
|
if (ControlReg == 0xFFFFFFFF)
|
||||||
return -EIO;
|
|
||||||
if ((ControlReg & MAX2871_CONTROL_WRITE) == 0)
|
|
||||||
break;
|
break;
|
||||||
|
if ((ControlReg & MAX2871_CONTROL_WRITE) == 0)
|
||||||
|
return 0;
|
||||||
|
udelay(10);
|
||||||
}
|
}
|
||||||
return 0;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 max2871_fsm[6] = {
|
static u32 max2871_fsm[6] = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user