X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fmedia%2Fdvb%2Fttpci%2Fav7110_hw.c;fp=drivers%2Fmedia%2Fdvb%2Fttpci%2Fav7110_hw.c;h=0bb6e74ae7f0f83edaf538bd45f5cc682a843461;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=75736f2fe83864bb6bf48e7204a28c6a9930e806;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/drivers/media/dvb/ttpci/av7110_hw.c b/drivers/media/dvb/ttpci/av7110_hw.c index 75736f2fe..0bb6e74ae 100644 --- a/drivers/media/dvb/ttpci/av7110_hw.c +++ b/drivers/media/dvb/ttpci/av7110_hw.c @@ -327,10 +327,10 @@ int av7110_wait_msgstate(struct av7110 *av7110, u16 flags) start = jiffies; for (;;) { err = time_after(jiffies, start + ARM_WAIT_FREE); - if (mutex_lock_interruptible(&av7110->dcomlock)) + if (down_interruptible(&av7110->dcomlock)) return -ERESTARTSYS; stat = rdebi(av7110, DEBINOSWAP, MSGSTATE, 0, 2); - mutex_unlock(&av7110->dcomlock); + up(&av7110->dcomlock); if ((stat & flags) == 0) break; if (err) { @@ -487,11 +487,11 @@ static int av7110_send_fw_cmd(struct av7110 *av7110, u16* buf, int length) dprintk(1, "arm not ready.\n"); return -1; } - if (mutex_lock_interruptible(&av7110->dcomlock)) + if (down_interruptible(&av7110->dcomlock)) return -ERESTARTSYS; ret = __av7110_send_fw_cmd(av7110, buf, length); - mutex_unlock(&av7110->dcomlock); + up(&av7110->dcomlock); if (ret && ret!=-ERESTARTSYS) printk(KERN_ERR "dvb-ttpci: %s(): av7110_send_fw_cmd error %d\n", __FUNCTION__, ret); @@ -563,11 +563,11 @@ int av7110_fw_request(struct av7110 *av7110, u16 *request_buf, return -1; } - if (mutex_lock_interruptible(&av7110->dcomlock)) + if (down_interruptible(&av7110->dcomlock)) return -ERESTARTSYS; if ((err = __av7110_send_fw_cmd(av7110, request_buf, request_buf_len)) < 0) { - mutex_unlock(&av7110->dcomlock); + up(&av7110->dcomlock); printk(KERN_ERR "dvb-ttpci: av7110_fw_request error %d\n", err); return err; } @@ -579,7 +579,7 @@ int av7110_fw_request(struct av7110 *av7110, u16 *request_buf, break; if (err) { printk(KERN_ERR "%s: timeout waiting for COMMAND to complete\n", __FUNCTION__); - mutex_unlock(&av7110->dcomlock); + up(&av7110->dcomlock); return -ETIMEDOUT; } #ifdef _NOHANDSHAKE @@ -595,7 +595,7 @@ int av7110_fw_request(struct av7110 *av7110, u16 *request_buf, break; if (err) { printk(KERN_ERR "%s: timeout waiting for HANDSHAKE_REG\n", __FUNCTION__); - mutex_unlock(&av7110->dcomlock); + up(&av7110->dcomlock); return -ETIMEDOUT; } msleep(1); @@ -606,12 +606,12 @@ int av7110_fw_request(struct av7110 *av7110, u16 *request_buf, stat = rdebi(av7110, DEBINOSWAP, MSGSTATE, 0, 2); if (stat & GPMQOver) { printk(KERN_ERR "%s: GPMQOver\n", __FUNCTION__); - mutex_unlock(&av7110->dcomlock); + up(&av7110->dcomlock); return -1; } else if (stat & OSDQOver) { printk(KERN_ERR "%s: OSDQOver\n", __FUNCTION__); - mutex_unlock(&av7110->dcomlock); + up(&av7110->dcomlock); return -1; } #endif @@ -619,7 +619,7 @@ int av7110_fw_request(struct av7110 *av7110, u16 *request_buf, for (i = 0; i < reply_buf_len; i++) reply_buf[i] = rdebi(av7110, DEBINOSWAP, COM_BUFF + 2 * i, 0, 2); - mutex_unlock(&av7110->dcomlock); + up(&av7110->dcomlock); return 0; } @@ -735,7 +735,7 @@ static int FlushText(struct av7110 *av7110) unsigned long start; int err; - if (mutex_lock_interruptible(&av7110->dcomlock)) + if (down_interruptible(&av7110->dcomlock)) return -ERESTARTSYS; start = jiffies; while (1) { @@ -745,12 +745,12 @@ static int FlushText(struct av7110 *av7110) if (err) { printk(KERN_ERR "dvb-ttpci: %s(): timeout waiting for BUFF1_BASE == 0\n", __FUNCTION__); - mutex_unlock(&av7110->dcomlock); + up(&av7110->dcomlock); return -ETIMEDOUT; } msleep(1); } - mutex_unlock(&av7110->dcomlock); + up(&av7110->dcomlock); return 0; } @@ -761,7 +761,7 @@ static int WriteText(struct av7110 *av7110, u8 win, u16 x, u16 y, u8* buf) int length = strlen(buf) + 1; u16 cbuf[5] = { (COMTYPE_OSD << 8) + DText, 3, win, x, y }; - if (mutex_lock_interruptible(&av7110->dcomlock)) + if (down_interruptible(&av7110->dcomlock)) return -ERESTARTSYS; start = jiffies; @@ -772,7 +772,7 @@ static int WriteText(struct av7110 *av7110, u8 win, u16 x, u16 y, u8* buf) if (ret) { printk(KERN_ERR "dvb-ttpci: %s: timeout waiting for BUFF1_BASE == 0\n", __FUNCTION__); - mutex_unlock(&av7110->dcomlock); + up(&av7110->dcomlock); return -ETIMEDOUT; } msleep(1); @@ -786,7 +786,7 @@ static int WriteText(struct av7110 *av7110, u8 win, u16 x, u16 y, u8* buf) if (ret) { printk(KERN_ERR "dvb-ttpci: %s: timeout waiting for HANDSHAKE_REG\n", __FUNCTION__); - mutex_unlock(&av7110->dcomlock); + up(&av7110->dcomlock); return -ETIMEDOUT; } msleep(1); @@ -798,7 +798,7 @@ static int WriteText(struct av7110 *av7110, u8 win, u16 x, u16 y, u8* buf) if (length & 1) wdebi(av7110, DEBINOSWAP, BUFF1_BASE + i * 2, 0, 2); ret = __av7110_send_fw_cmd(av7110, cbuf, 5); - mutex_unlock(&av7110->dcomlock); + up(&av7110->dcomlock); if (ret && ret!=-ERESTARTSYS) printk(KERN_ERR "dvb-ttpci: WriteText error %d\n", ret); return ret; @@ -1062,7 +1062,7 @@ int av7110_osd_cmd(struct av7110 *av7110, osd_cmd_t *dc) { int ret; - if (mutex_lock_interruptible(&av7110->osd_mutex)) + if (down_interruptible(&av7110->osd_sema)) return -ERESTARTSYS; switch (dc->cmd) { @@ -1198,7 +1198,7 @@ int av7110_osd_cmd(struct av7110 *av7110, osd_cmd_t *dc) break; } - mutex_unlock(&av7110->osd_mutex); + up(&av7110->osd_sema); if (ret==-ERESTARTSYS) dprintk(1, "av7110_osd_cmd(%d) returns with -ERESTARTSYS\n",dc->cmd); else if (ret)