dev->wait_after_write = 0;
                        dev->eeprom_addrwidth_16bit = 1;
                        break;
+               case CHIP_ID_EM28178:
+                       chip_name = "em28178";
+                       dev->wait_after_write = 0;
+                       dev->eeprom_addrwidth_16bit = 1;
+                       break;
                case CHIP_ID_EM2883:
                        chip_name = "em2882/3";
                        dev->wait_after_write = 0;
 
        int vid1, vid2, feat, cfg;
        u32 vid;
 
-       if (dev->chip_id == CHIP_ID_EM2870 || dev->chip_id == CHIP_ID_EM2874
-               || dev->chip_id == CHIP_ID_EM28174) {
+       if (dev->chip_id == CHIP_ID_EM2870 ||
+           dev->chip_id == CHIP_ID_EM2874 ||
+           dev->chip_id == CHIP_ID_EM28174 ||
+           dev->chip_id == CHIP_ID_EM28178) {
                /* Digital only device - don't load any alsa module */
                dev->audio_mode.has_audio = false;
                dev->has_audio_class = false;
 
        if (dev->chip_id == CHIP_ID_EM2874 ||
            dev->chip_id == CHIP_ID_EM2884 ||
-           dev->chip_id == CHIP_ID_EM28174) {
+           dev->chip_id == CHIP_ID_EM28174 ||
+           dev->chip_id == CHIP_ID_EM28178) {
                /* The Transport Stream Enable Register moved in em2874 */
                rc = em28xx_write_reg_bits(dev, EM2874_R5F_TS_ENABLE,
                                           start ?
 
        case CHIP_ID_EM2884:
        case CHIP_ID_EM2874:
        case CHIP_ID_EM28174:
+       case CHIP_ID_EM28178:
                return em2874_ir_change_protocol(rc_dev, rc_type);
        default:
                printk("Unrecognized em28xx chip id 0x%02x: IR not supported\n",
                case CHIP_ID_EM2884:
                case CHIP_ID_EM2874:
                case CHIP_ID_EM28174:
+               case CHIP_ID_EM28178:
                        ir->get_key = em2874_polling_getkey;
                        rc->allowed_protos = RC_BIT_RC5 | RC_BIT_NEC |
                                             RC_BIT_RC6_0;