Loading drivers/media/video/tvaudio.c +27 −36 Original line number Diff line number Diff line Loading @@ -315,13 +315,13 @@ static int chip_thread(void *data) chip->prevmode = mode; if (mode & V4L2_TUNER_MODE_STEREO) if (mode & V4L2_TUNER_SUB_STEREO) desc->setmode(chip, V4L2_TUNER_MODE_STEREO); if (mode & V4L2_TUNER_MODE_LANG1_LANG2) if (mode & V4L2_TUNER_SUB_LANG1_LANG2) desc->setmode(chip, V4L2_TUNER_MODE_STEREO); else if (mode & V4L2_TUNER_MODE_LANG1) else if (mode & V4L2_SUB_MODE_LANG1) desc->setmode(chip, V4L2_TUNER_MODE_LANG1); else if (mode & V4L2_TUNER_MODE_LANG2) else if (mode & V4L2_SUB_MODE_LANG2) desc->setmode(chip, V4L2_TUNER_MODE_LANG2); else desc->setmode(chip, V4L2_TUNER_MODE_MONO); Loading Loading @@ -363,11 +363,11 @@ static int tda9840_getmode(struct CHIPSTATE *chip) int val, mode; val = chip_read(chip); mode = V4L2_TUNER_MODE_MONO; mode = V4L2_TUNER_SUB_MONO; if (val & TDA9840_DS_DUAL) mode |= V4L2_TUNER_MODE_LANG1 | V4L2_TUNER_MODE_LANG2; mode |= V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; if (val & TDA9840_ST_STEREO) mode |= V4L2_TUNER_MODE_STEREO; mode |= V4L2_TUNER_SUB_STEREO; v4l2_dbg(1, debug, sd, "tda9840_getmode(): raw chip read: %d, return: %d\n", val, mode); Loading Loading @@ -514,13 +514,17 @@ static int tda9855_treble(int val) { return (val/0x1c71+0x3)<<1; } static int tda985x_getmode(struct CHIPSTATE *chip) { int mode; int mode, val; mode = ((TDA985x_STP | TDA985x_SAPP) & chip_read(chip)) >> 4; /* Add mono mode regardless of SAP and stereo */ /* Allows forced mono */ return mode | V4L2_TUNER_MODE_MONO; mode = V4L2_TUNER_SUB_MONO; val = chip_read(chip); if (val & TDA985x_STP) mode |= V4L2_TUNER_SUB_STEREO; if (val & TDA985x_SAPP) mode |= V4L2_TUNER_SUB_SAP; return mode; } static void tda985x_setmode(struct CHIPSTATE *chip, int mode) Loading Loading @@ -670,11 +674,11 @@ static int tda9873_getmode(struct CHIPSTATE *chip) int val,mode; val = chip_read(chip); mode = V4L2_TUNER_MODE_MONO; mode = V4L2_TUNER_SUB_MONO; if (val & TDA9873_STEREO) mode |= V4L2_TUNER_MODE_STEREO; mode |= V4L2_TUNER_SUB_STEREO; if (val & TDA9873_DUAL) mode |= V4L2_TUNER_MODE_LANG1 | V4L2_TUNER_MODE_LANG2; mode |= V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; v4l2_dbg(1, debug, sd, "tda9873_getmode(): raw chip read: %d, return: %d\n", val, mode); return mode; Loading Loading @@ -865,7 +869,7 @@ static int tda9874a_getmode(struct CHIPSTATE *chip) int dsr,nsr,mode; int necr; /* just for debugging */ mode = V4L2_TUNER_MODE_MONO; mode = V4L2_TUNER_SUB_MONO; if(-1 == (dsr = chip_read2(chip,TDA9874A_DSR))) return mode; Loading @@ -888,14 +892,14 @@ static int tda9874a_getmode(struct CHIPSTATE *chip) * external 4052 multiplexer in audio_hook(). */ if(nsr & 0x02) /* NSR.S/MB=1 */ mode |= V4L2_TUNER_MODE_STEREO; mode |= V4L2_TUNER_SUB_STEREO; if(nsr & 0x01) /* NSR.D/SB=1 */ mode |= V4L2_TUNER_MODE_LANG1 | V4L2_TUNER_MODE_LANG2; mode |= V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; } else { if(dsr & 0x02) /* DSR.IDSTE=1 */ mode |= V4L2_TUNER_MODE_STEREO; mode |= V4L2_TUNER_SUB_STEREO; if(dsr & 0x04) /* DSR.IDDUA=1 */ mode |= V4L2_TUNER_MODE_LANG1 | V4L2_TUNER_MODE_LANG2; mode |= V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; } v4l2_dbg(1, debug, sd, "tda9874a_getmode(): DSR=0x%X, NSR=0x%X, NECR=0x%X, return: %d.\n", Loading Loading @@ -1306,11 +1310,11 @@ static int ta8874z_getmode(struct CHIPSTATE *chip) int val, mode; val = chip_read(chip); mode = V4L2_TUNER_MODE_MONO; mode = V4L2_TUNER_SUB_MONO; if (val & TA8874Z_B1){ mode |= V4L2_TUNER_MODE_LANG1 | V4L2_TUNER_MODE_LANG2; mode |= V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; }else if (!(val & TA8874Z_B0)){ mode |= V4L2_TUNER_MODE_STEREO; mode |= V4L2_TUNER_SUB_STEREO; } /* v4l_dbg(1, debug, chip->c, "ta8874z_getmode(): raw chip read: 0x%02x, return: 0x%02x\n", val, mode); */ return mode; Loading Loading @@ -1829,7 +1833,6 @@ static int tvaudio_g_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *vt) { struct CHIPSTATE *chip = to_state(sd); struct CHIPDESC *desc = chip->desc; int mode = V4L2_TUNER_MODE_MONO; if (!desc->getmode) return 0; Loading @@ -1837,22 +1840,10 @@ static int tvaudio_g_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *vt) return 0; vt->audmode = chip->audmode; vt->rxsubchans = 0; vt->rxsubchans = desc->getmode(chip); vt->capability = V4L2_TUNER_CAP_STEREO | V4L2_TUNER_CAP_LANG1 | V4L2_TUNER_CAP_LANG2; mode = desc->getmode(chip); if (mode & V4L2_TUNER_MODE_MONO) vt->rxsubchans |= V4L2_TUNER_SUB_MONO; if (mode & V4L2_TUNER_MODE_STEREO) vt->rxsubchans |= V4L2_TUNER_SUB_STEREO; /* Note: for SAP it should be mono/lang2 or stereo/lang2. When this module is converted fully to v4l2, then this should change for those chips that can detect SAP. */ if (mode & V4L2_TUNER_MODE_LANG1) vt->rxsubchans = V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; return 0; } Loading Loading
drivers/media/video/tvaudio.c +27 −36 Original line number Diff line number Diff line Loading @@ -315,13 +315,13 @@ static int chip_thread(void *data) chip->prevmode = mode; if (mode & V4L2_TUNER_MODE_STEREO) if (mode & V4L2_TUNER_SUB_STEREO) desc->setmode(chip, V4L2_TUNER_MODE_STEREO); if (mode & V4L2_TUNER_MODE_LANG1_LANG2) if (mode & V4L2_TUNER_SUB_LANG1_LANG2) desc->setmode(chip, V4L2_TUNER_MODE_STEREO); else if (mode & V4L2_TUNER_MODE_LANG1) else if (mode & V4L2_SUB_MODE_LANG1) desc->setmode(chip, V4L2_TUNER_MODE_LANG1); else if (mode & V4L2_TUNER_MODE_LANG2) else if (mode & V4L2_SUB_MODE_LANG2) desc->setmode(chip, V4L2_TUNER_MODE_LANG2); else desc->setmode(chip, V4L2_TUNER_MODE_MONO); Loading Loading @@ -363,11 +363,11 @@ static int tda9840_getmode(struct CHIPSTATE *chip) int val, mode; val = chip_read(chip); mode = V4L2_TUNER_MODE_MONO; mode = V4L2_TUNER_SUB_MONO; if (val & TDA9840_DS_DUAL) mode |= V4L2_TUNER_MODE_LANG1 | V4L2_TUNER_MODE_LANG2; mode |= V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; if (val & TDA9840_ST_STEREO) mode |= V4L2_TUNER_MODE_STEREO; mode |= V4L2_TUNER_SUB_STEREO; v4l2_dbg(1, debug, sd, "tda9840_getmode(): raw chip read: %d, return: %d\n", val, mode); Loading Loading @@ -514,13 +514,17 @@ static int tda9855_treble(int val) { return (val/0x1c71+0x3)<<1; } static int tda985x_getmode(struct CHIPSTATE *chip) { int mode; int mode, val; mode = ((TDA985x_STP | TDA985x_SAPP) & chip_read(chip)) >> 4; /* Add mono mode regardless of SAP and stereo */ /* Allows forced mono */ return mode | V4L2_TUNER_MODE_MONO; mode = V4L2_TUNER_SUB_MONO; val = chip_read(chip); if (val & TDA985x_STP) mode |= V4L2_TUNER_SUB_STEREO; if (val & TDA985x_SAPP) mode |= V4L2_TUNER_SUB_SAP; return mode; } static void tda985x_setmode(struct CHIPSTATE *chip, int mode) Loading Loading @@ -670,11 +674,11 @@ static int tda9873_getmode(struct CHIPSTATE *chip) int val,mode; val = chip_read(chip); mode = V4L2_TUNER_MODE_MONO; mode = V4L2_TUNER_SUB_MONO; if (val & TDA9873_STEREO) mode |= V4L2_TUNER_MODE_STEREO; mode |= V4L2_TUNER_SUB_STEREO; if (val & TDA9873_DUAL) mode |= V4L2_TUNER_MODE_LANG1 | V4L2_TUNER_MODE_LANG2; mode |= V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; v4l2_dbg(1, debug, sd, "tda9873_getmode(): raw chip read: %d, return: %d\n", val, mode); return mode; Loading Loading @@ -865,7 +869,7 @@ static int tda9874a_getmode(struct CHIPSTATE *chip) int dsr,nsr,mode; int necr; /* just for debugging */ mode = V4L2_TUNER_MODE_MONO; mode = V4L2_TUNER_SUB_MONO; if(-1 == (dsr = chip_read2(chip,TDA9874A_DSR))) return mode; Loading @@ -888,14 +892,14 @@ static int tda9874a_getmode(struct CHIPSTATE *chip) * external 4052 multiplexer in audio_hook(). */ if(nsr & 0x02) /* NSR.S/MB=1 */ mode |= V4L2_TUNER_MODE_STEREO; mode |= V4L2_TUNER_SUB_STEREO; if(nsr & 0x01) /* NSR.D/SB=1 */ mode |= V4L2_TUNER_MODE_LANG1 | V4L2_TUNER_MODE_LANG2; mode |= V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; } else { if(dsr & 0x02) /* DSR.IDSTE=1 */ mode |= V4L2_TUNER_MODE_STEREO; mode |= V4L2_TUNER_SUB_STEREO; if(dsr & 0x04) /* DSR.IDDUA=1 */ mode |= V4L2_TUNER_MODE_LANG1 | V4L2_TUNER_MODE_LANG2; mode |= V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; } v4l2_dbg(1, debug, sd, "tda9874a_getmode(): DSR=0x%X, NSR=0x%X, NECR=0x%X, return: %d.\n", Loading Loading @@ -1306,11 +1310,11 @@ static int ta8874z_getmode(struct CHIPSTATE *chip) int val, mode; val = chip_read(chip); mode = V4L2_TUNER_MODE_MONO; mode = V4L2_TUNER_SUB_MONO; if (val & TA8874Z_B1){ mode |= V4L2_TUNER_MODE_LANG1 | V4L2_TUNER_MODE_LANG2; mode |= V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; }else if (!(val & TA8874Z_B0)){ mode |= V4L2_TUNER_MODE_STEREO; mode |= V4L2_TUNER_SUB_STEREO; } /* v4l_dbg(1, debug, chip->c, "ta8874z_getmode(): raw chip read: 0x%02x, return: 0x%02x\n", val, mode); */ return mode; Loading Loading @@ -1829,7 +1833,6 @@ static int tvaudio_g_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *vt) { struct CHIPSTATE *chip = to_state(sd); struct CHIPDESC *desc = chip->desc; int mode = V4L2_TUNER_MODE_MONO; if (!desc->getmode) return 0; Loading @@ -1837,22 +1840,10 @@ static int tvaudio_g_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *vt) return 0; vt->audmode = chip->audmode; vt->rxsubchans = 0; vt->rxsubchans = desc->getmode(chip); vt->capability = V4L2_TUNER_CAP_STEREO | V4L2_TUNER_CAP_LANG1 | V4L2_TUNER_CAP_LANG2; mode = desc->getmode(chip); if (mode & V4L2_TUNER_MODE_MONO) vt->rxsubchans |= V4L2_TUNER_SUB_MONO; if (mode & V4L2_TUNER_MODE_STEREO) vt->rxsubchans |= V4L2_TUNER_SUB_STEREO; /* Note: for SAP it should be mono/lang2 or stereo/lang2. When this module is converted fully to v4l2, then this should change for those chips that can detect SAP. */ if (mode & V4L2_TUNER_MODE_LANG1) vt->rxsubchans = V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; return 0; } Loading