/* use DVBv5 CNR */
        if (c->cnr.stat[0].scale == FE_SCALE_DECIBEL) {
-               *snr = div_s64(c->cnr.stat[0].svalue, 1000);
+               /* Return 0.1 dB for AF9030 and 0-0xffff for IT9130. */
+               if (dev->is_af9035) {
+                       /* 1000x => 10x (0.1 dB) */
+                       *snr = div_s64(c->cnr.stat[0].svalue, 100);
+               } else {
+                       /* 1000x => 1x (1 dB) */
+                       *snr = div_s64(c->cnr.stat[0].svalue, 1000);
 
-               /* read current modulation */
-               ret = af9033_rd_reg(dev, 0x80f903, &u8tmp);
-               if (ret)
-                       goto err;
+                       /* read current modulation */
+                       ret = af9033_rd_reg(dev, 0x80f903, &u8tmp);
+                       if (ret)
+                               goto err;
 
-               /* scale value to 0x0000-0xffff */
-               switch ((u8tmp >> 0) & 3) {
-               case 0:
-                       *snr = *snr * 0xFFFF / 23;
-                       break;
-               case 1:
-                       *snr = *snr * 0xFFFF / 26;
-                       break;
-               case 2:
-                       *snr = *snr * 0xFFFF / 32;
-                       break;
-               default:
-                       goto err;
+                       /* scale value to 0x0000-0xffff */
+                       switch ((u8tmp >> 0) & 3) {
+                       case 0:
+                               *snr = *snr * 0xffff / 23;
+                               break;
+                       case 1:
+                               *snr = *snr * 0xffff / 26;
+                               break;
+                       case 2:
+                               *snr = *snr * 0xffff / 32;
+                               break;
+                       default:
+                               goto err;
+                       }
                }
        } else {
                *snr = 0;