Pull acpica into release branch
[pandora-kernel.git] / drivers / media / dvb / ttpci / av7110_av.c
index bbfad6d..2eff09f 100644 (file)
@@ -309,7 +309,7 @@ int av7110_set_volume(struct av7110 *av7110, int volleft, int volright)
                i2c_writereg(av7110, 0x20, 0x04, volright);
                return 0;
 
-       case DVB_ADAC_MSP:
+       case DVB_ADAC_MSP34x0:
                vol  = (volleft > volright) ? volleft : volright;
                val     = (vol * 0x73 / 255) << 8;
                if (vol > 0)
@@ -1126,7 +1126,7 @@ static int dvb_video_ioctl(struct inode *inode, struct file *file,
                //note: arg is ignored by firmware
                if (av7110->playing & RP_VIDEO)
                        ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY,
-                                     __Scan_I, 2, AV_PES, 0);
+                                           __Scan_I, 2, AV_PES, 0);
                else
                        ret = vidcom(av7110, VIDEO_CMD_FFWD, arg);
                if (!ret) {
@@ -1164,15 +1164,15 @@ static int dvb_video_ioctl(struct inode *inode, struct file *file,
 
                if (av7110->playing == RP_AV) {
                        ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY,
-                                     __Play, 2, AV_PES, 0);
+                                           __Play, 2, AV_PES, 0);
                        if (ret)
                                break;
                        if (av7110->trickmode == TRICK_FAST)
                                ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY,
-                                             __Scan_I, 2, AV_PES, 0);
+                                                   __Scan_I, 2, AV_PES, 0);
                        if (av7110->trickmode == TRICK_SLOW) {
                                ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY,
-                                             __Slow, 2, 0, 0);
+                                                   __Slow, 2, 0, 0);
                                if (!ret)
                                        ret = vidcom(av7110, VIDEO_CMD_SLOW, arg);
                        }
@@ -1256,7 +1256,9 @@ static int dvb_audio_ioctl(struct inode *inode, struct file *file,
                break;
 
        case AUDIO_SET_BYPASS_MODE:
-               ret = -EINVAL;
+               if (FW_VERSION(av7110->arm_app) < 0x2621)
+                       ret = -EINVAL;
+               av7110->audiostate.bypass_mode = (int)arg;
                break;
 
        case AUDIO_CHANNEL_SELECT:
@@ -1295,7 +1297,11 @@ static int dvb_audio_ioctl(struct inode *inode, struct file *file,
                break;
 
        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;
 
        case AUDIO_CLEAR_BUFFER:
@@ -1303,7 +1309,7 @@ static int dvb_audio_ioctl(struct inode *inode, struct file *file,
                av7110_ipack_reset(&av7110->ipack[0]);
                if (av7110->playing == RP_AV)
                        ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY,
-                              __Play, 2, AV_PES, 0);
+                                           __Play, 2, AV_PES, 0);
                break;
        case AUDIO_SET_ID:
 
@@ -1473,8 +1479,6 @@ int av7110_av_init(struct av7110 *av7110)
        void (*play[])(u8 *, int, void *) = { play_audio_cb, play_video_cb };
        int i, ret;
 
-       av7110->vidmode = VIDEO_MODE_PAL;
-
        for (i = 0; i < 2; i++) {
                struct ipack *ipack = av7110->ipack + i;