]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge branch 'topic/cec' into patchwork
authorMauro Carvalho Chehab <mchehab@s-opensource.com>
Fri, 8 Jul 2016 21:16:10 +0000 (18:16 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Fri, 8 Jul 2016 21:16:10 +0000 (18:16 -0300)
* topic/cec:
  [media] DocBook/media: add CEC documentation
  [media] s5p_cec: get rid of an unused var
  [media] move s5p-cec to staging
  [media] vivid: add CEC emulation
  [media] cec: s5p-cec: Add s5p-cec driver
  [media] cec: adv7511: add cec support
  [media] cec: adv7842: add cec support
  [media] cec: adv7604: add cec support
  [media] cec: add compat32 ioctl support
  [media] cec/TODO: add TODO file so we know why this is still in staging
  [media] cec: add HDMI CEC framework (api)
  [media] cec: add HDMI CEC framework (adapter)
  [media] cec: add HDMI CEC framework (core)
  [media] cec-funcs.h: static inlines to pack/unpack CEC messages
  [media] cec.h: add cec header
  [media] cec-edid: add module for EDID CEC helper functions
  [media] cec.txt: add CEC framework documentation
  [media] rc: Add HDMI CEC protocol handling

1  2 
Documentation/DocBook/device-drivers.tmpl
MAINTAINERS
drivers/media/i2c/adv7604.c
drivers/media/i2c/adv7842.c
drivers/media/platform/vivid/vivid-vid-cap.c
drivers/media/rc/rc-main.c

diff --cc MAINTAINERS
Simple merge
index 0b362eeb55c7815d0b93a2125c44f595390184ca,3c9f0014da9c192db3efb5a638b138ac7925a8eb..2d792715045021de24ea8effa2ee771548764746
@@@ -185,9 -187,16 +188,15 @@@ struct adv76xx_state 
        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];
  
@@@ -2152,9 -2333,11 +2357,10 @@@ static int adv76xx_set_edid(struct v4l2
                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;
  }
  
@@@ -3273,7 -3493,15 +3526,14 @@@ static int adv76xx_remove(struct i2c_cl
        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));
index a45e7537b93606494d35ed78ad0ced7b0b237d77,ad7dcfc54e6191441b13d986fa48c235339e71eb..100bd3f96b59b005977934188e48aa6354b5432d
@@@ -851,9 -850,11 +848,10 @@@ static int edid_write_hdmi_segment(stru
                                (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;
  }
@@@ -3347,8 -3598,8 +3590,7 @@@ static int adv7842_remove(struct i2c_cl
        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);
Simple merge