if (itv->options.radio == -1)
                itv->options.radio = (tv.has_radio != 0);
        /* only enable newi2c if an IR blaster is present */
-       /* FIXME: for 2.6.20 the test against 2 should be removed */
-       if (itv->options.newi2c == -1 && tv.has_ir != -1 && tv.has_ir != 2) {
-               itv->options.newi2c = (tv.has_ir & 2) ? 1 : 0;
+       if (itv->options.newi2c == -1 && tv.has_ir) {
+               itv->options.newi2c = (tv.has_ir & 4) ? 1 : 0;
                if (itv->options.newi2c) {
                    IVTV_INFO("Reopen i2c bus for IR-blaster support\n");
                    exit_ivtv_i2c(itv);
 
                        tvee->has_radio = eeprom_data[i+len-1];
                        /* old style tag, don't know how to detect
                        IR presence, mark as unknown. */
-                       tvee->has_ir = -1;
+                       tvee->has_ir = 0;
                        tvee->model =
                                eeprom_data[i+8] +
                                (eeprom_data[i+9] << 8);
 
                case 0x0f:
                        /* tag 'IRInfo' */
-                       tvee->has_ir = eeprom_data[i+1];
+                       tvee->has_ir = 1 | (eeprom_data[i+1] << 1);
                        break;
 
                /* case 0x10: tag 'VBIInfo' */
                tveeprom_info("decoder processor is %s (idx %d)\n",
                        STRM(decoderIC, tvee->decoder_processor),
                        tvee->decoder_processor);
-       if (tvee->has_ir == -1)
-               tveeprom_info("has %sradio\n",
-                               tvee->has_radio ? "" : "no ");
-       else
+       if (tvee->has_ir)
                tveeprom_info("has %sradio, has %sIR receiver, has %sIR transmitter\n",
                                tvee->has_radio ? "" : "no ",
-                               (tvee->has_ir & 1) ? "" : "no ",
-                               (tvee->has_ir & 2) ? "" : "no ");
+                               (tvee->has_ir & 2) ? "" : "no ",
+                               (tvee->has_ir & 4) ? "" : "no ");
+       else
+               tveeprom_info("has %sradio\n",
+                               tvee->has_radio ? "" : "no ");
 }
 EXPORT_SYMBOL(tveeprom_hauppauge_analog);
 
 
 
 struct tveeprom {
        u32 has_radio;
-       u32 has_ir;     /* bit 0: IR receiver present, bit 1: IR transmitter (blaster) present. -1 == unknown */
+       /* If has_ir == 0, then it is unknown what the IR capabilities are,
+          otherwise:
+          bit 0: 1 (= IR capabilities are known)
+          bit 1: IR receiver present
+          bit 2: IR transmitter (blaster) present */
+       u32 has_ir;
        u32 has_MAC_address; /* 0: no MAC, 1: MAC present, 2: unknown */
 
        u32 tuner_type;