]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/media/tuners/r820t.c
Merge branch 'topic/hda' into for-next
[karo-tx-linux.git] / drivers / media / tuners / r820t.c
index 8e040cf9cf1347e8fbe42a9d051bd2ac2def18d6..71159a58860fc973cf5354278bf270e7b22a6f31 100644 (file)
@@ -775,6 +775,19 @@ static int r820t_sysfreq_sel(struct r820t_priv *priv, u32 freq,
                div_buf_cur = 0x30;     /* 11, 150u */
                filter_cur = 0x40;      /* 10, low */
                break;
+       case SYS_DVBC_ANNEX_A:
+               mixer_top = 0x24;       /* mixer top:13 , top-1, low-discharge */
+               lna_top = 0xe5;
+               lna_vth_l = 0x62;
+               mixer_vth_l = 0x75;
+               air_cable1_in = 0x60;
+               cable2_in = 0x00;
+               pre_dect = 0x40;
+               lna_discharge = 14;
+               cp_cur = 0x38;          /* 111, auto */
+               div_buf_cur = 0x30;     /* 11, 150u */
+               filter_cur = 0x40;      /* 10, low */
+               break;
        default: /* DVB-T 8M */
                mixer_top = 0x24;       /* mixer top:13 , top-1, low-discharge */
                lna_top = 0xe5;         /* detect bw 3, lna top:4, predet top:2 */
@@ -957,7 +970,7 @@ static int r820t_set_tv_standard(struct r820t_priv *priv,
                ext_enable = 0x40;      /* r30[6], ext enable; r30[5]:0 ext at lna max */
                loop_through = 0x00;    /* r5[7], lt on */
                lt_att = 0x00;          /* r31[7], lt att enable */
-               flt_ext_widest = 0x00;  /* r15[7]: flt_ext_wide off */
+               flt_ext_widest = 0x80;  /* r15[7]: flt_ext_wide on */
                polyfil_cur = 0x60;     /* r25[6:5]:min */
        } else if (delsys == SYS_DVBC_ANNEX_A) {
                if_khz = 5070;
@@ -971,6 +984,18 @@ static int r820t_set_tv_standard(struct r820t_priv *priv,
                lt_att = 0x00;          /* r31[7], lt att enable */
                flt_ext_widest = 0x00;  /* r15[7]: flt_ext_wide off */
                polyfil_cur = 0x60;     /* r25[6:5]:min */
+       } else if (delsys == SYS_DVBC_ANNEX_C) {
+               if_khz = 4063;
+               filt_cal_lo = 55000;
+               filt_gain = 0x10;       /* +3db, 6mhz on */
+               img_r = 0x00;           /* image negative */
+               filt_q = 0x10;          /* r10[4]:low q(1'b1) */
+               hp_cor = 0x6a;          /* 1.7m disable, +0cap, 1.0mhz */
+               ext_enable = 0x40;      /* r30[6]=1 ext enable; r30[5]:1 ext at lna max-1 */
+               loop_through = 0x00;    /* r5[7], lt on */
+               lt_att = 0x00;          /* r31[7], lt att enable */
+               flt_ext_widest = 0x80;  /* r15[7]: flt_ext_wide on */
+               polyfil_cur = 0x60;     /* r25[6:5]:min */
        } else {
                if (bw <= 6) {
                        if_khz = 3570;
@@ -1186,7 +1211,7 @@ static int r820t_read_gain(struct r820t_priv *priv)
        if (rc < 0)
                return rc;
 
-       return ((data[3] & 0x0f) << 1) + ((data[3] & 0xf0) >> 4);
+       return ((data[3] & 0x08) << 1) + ((data[3] & 0xf0) >> 4);
 }
 
 #if 0