u16 spa_port_a[2];
        struct v4l2_fract aspect_ratio;
        u32 rgb_quantization_range;
 +      struct delayed_work delayed_work_enable_hotplug;
 +      bool restart_stdi_once;
  
 -      struct workqueue_struct *work_queues;
 -      struct delayed_work delayed_work_enable_hotplug;
 -      bool restart_stdi_once;
 -
++      /* CEC */
+       struct cec_adapter *cec_adap;
+       u8   cec_addr[ADV76XX_MAX_ADDRS];
+       u8   cec_valid_addrs;
+       bool cec_enabled_adap;
+ 
        /* i2c clients */
        struct i2c_client *i2c_clients[ADV76XX_PAGE_MAX];
  
                v4l2_err(sd, "error enabling edid (0x%x)\n", state->edid.present);
                return -EIO;
        }
+       cec_s_phys_addr(state->cec_adap, pa, false);
  
        /* enable hotplug after 100 ms */
 -      queue_delayed_work(state->work_queues,
 -                      &state->delayed_work_enable_hotplug, HZ / 10);
 +      schedule_delayed_work(&state->delayed_work_enable_hotplug, HZ / 10);
        return 0;
  }
  
        struct v4l2_subdev *sd = i2c_get_clientdata(client);
        struct adv76xx_state *state = to_state(sd);
  
+       /* disable interrupts */
+       io_write(sd, 0x40, 0);
+       io_write(sd, 0x41, 0);
+       io_write(sd, 0x46, 0);
+       io_write(sd, 0x6e, 0);
+       io_write(sd, 0x73, 0);
+ 
        cancel_delayed_work(&state->delayed_work_enable_hotplug);
 -      destroy_workqueue(state->work_queues);
        v4l2_async_unregister_subdev(sd);
        media_entity_cleanup(&sd->entity);
        adv76xx_unregister_clients(to_state(sd));
 
                                (port == ADV7842_EDID_PORT_A) ? 'A' : 'B');
                return -EIO;
        }
+       cec_s_phys_addr(state->cec_adap, pa, false);
  
        /* enable hotplug after 200 ms */
 -      queue_delayed_work(state->work_queues,
 -                      &state->delayed_work_enable_hotplug, HZ / 5);
 +      schedule_delayed_work(&state->delayed_work_enable_hotplug, HZ / 5);
  
        return 0;
  }
        struct adv7842_state *state = to_state(sd);
  
        adv7842_irq_enable(sd, false);
- 
        cancel_delayed_work(&state->delayed_work_enable_hotplug);
 -      destroy_workqueue(state->work_queues);
        v4l2_device_unregister_subdev(sd);
        media_entity_cleanup(&sd->entity);
        adv7842_unregister_clients(sd);