提交 47f36920 编写于 作者: D Dr. Werner Fink 提交者: Mauro Carvalho Chehab

DVB (2441): Driver support for live-ac3, firmware >= 2621 required.


- Driver support for live-ac3, firmware >= 2621 required.
Signed-off-by: NDr. Werner Fink <werner@suse.de>
Signed-off-by: NOliver Endriss <o.endriss@gmx.de>
Signed-off-by: NMauro Carvalho Chehab <mchehab@brturbo.com.br>
上级 1c13b95c
...@@ -720,6 +720,8 @@ static struct dvb_device dvbdev_osd = { ...@@ -720,6 +720,8 @@ static struct dvb_device dvbdev_osd = {
static inline int SetPIDs(struct av7110 *av7110, u16 vpid, u16 apid, u16 ttpid, static inline int SetPIDs(struct av7110 *av7110, u16 vpid, u16 apid, u16 ttpid,
u16 subpid, u16 pcrpid) u16 subpid, u16 pcrpid)
{ {
u16 aflags = 0;
dprintk(4, "%p\n", av7110); dprintk(4, "%p\n", av7110);
if (vpid == 0x1fff || apid == 0x1fff || if (vpid == 0x1fff || apid == 0x1fff ||
...@@ -731,8 +733,11 @@ static inline int SetPIDs(struct av7110 *av7110, u16 vpid, u16 apid, u16 ttpid, ...@@ -731,8 +733,11 @@ static inline int SetPIDs(struct av7110 *av7110, u16 vpid, u16 apid, u16 ttpid,
av7110->pids[DMX_PES_PCR] = 0; av7110->pids[DMX_PES_PCR] = 0;
} }
return av7110_fw_cmd(av7110, COMTYPE_PIDFILTER, MultiPID, 5, if (av7110->audiostate.bypass_mode)
pcrpid, vpid, apid, ttpid, subpid); aflags |= 0x8000;
return av7110_fw_cmd(av7110, COMTYPE_PIDFILTER, MultiPID, 6,
pcrpid, vpid, apid, ttpid, subpid, aflags);
} }
int ChangePIDs(struct av7110 *av7110, u16 vpid, u16 apid, u16 ttpid, int ChangePIDs(struct av7110 *av7110, u16 vpid, u16 apid, u16 ttpid,
......
...@@ -1256,7 +1256,9 @@ static int dvb_audio_ioctl(struct inode *inode, struct file *file, ...@@ -1256,7 +1256,9 @@ static int dvb_audio_ioctl(struct inode *inode, struct file *file,
break; break;
case AUDIO_SET_BYPASS_MODE: case AUDIO_SET_BYPASS_MODE:
if (FW_VERSION(av7110->arm_app) < 0x2621)
ret = -EINVAL; ret = -EINVAL;
av7110->audiostate.bypass_mode = (int)arg;
break; break;
case AUDIO_CHANNEL_SELECT: case AUDIO_CHANNEL_SELECT:
...@@ -1295,7 +1297,11 @@ static int dvb_audio_ioctl(struct inode *inode, struct file *file, ...@@ -1295,7 +1297,11 @@ static int dvb_audio_ioctl(struct inode *inode, struct file *file,
break; break;
case AUDIO_GET_CAPABILITIES: case AUDIO_GET_CAPABILITIES:
*(int *)parg = AUDIO_CAP_LPCM | AUDIO_CAP_MP1 | AUDIO_CAP_MP2; if (FW_VERSION(av7110->arm_app) < 0x2621)
*(unsigned int *)parg = AUDIO_CAP_LPCM | AUDIO_CAP_MP1 | AUDIO_CAP_MP2;
else
*(unsigned int *)parg = AUDIO_CAP_LPCM | AUDIO_CAP_DTS | AUDIO_CAP_AC3 |
AUDIO_CAP_MP1 | AUDIO_CAP_MP2;
break; break;
case AUDIO_CLEAR_BUFFER: case AUDIO_CLEAR_BUFFER:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册