1. 13 7月, 2016 3 次提交
    • A
      drm/bridge: adv7533: Initial support for ADV7533 · 2437e7cd
      Archit Taneja 提交于
      ADV7533 is a DSI to HDMI encoder chip. It is a derivative of ADV7511,
      with additional blocks to translate input DSI data to parallel RGB
      data. Besides the ADV7511 I2C register map, it has additional registers
      that require to be configured to activate the DSI Rx block.
      
      Create a new config that enables ADV7533 support. Use DT compatible
      strings to populate the ADV7533 type enum. Add minimal register
      configurations belonging to the DSI/CEC register map. Keep the ADV7533
      code in a separate file.
      
      Originally worked on by Lars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      2437e7cd
    • A
      drm/bridge: adv7511: Fix mutex deadlock when interrupts are disabled · f0bfcc22
      Archit Taneja 提交于
      When the adv7511 i2c client doesn't have an interrupt line, we observe a
      deadlock on caused by trying to lock drm device's mode_config.mutex twice
      in the same context.
      
      Here is the sequence that causes it:
      
      ioctl DRM_IOCTL_MODE_GETCONNECTOR from userspace
        drm_mode_getconnector (acquires mode_config mutex)
          connector->fill_modes()
          drm_helper_probe_single_connector_modes
            connector_funcs->get_modes
      	adv7511_encoder_get_modes
      	  adv7511_get_edid_block
      	    adv7511_irq_process
      	      drm_helper_hpd_irq_event (acquires mode_config mutex again)
      
      In adv7511_irq_process, don't call drm_helper_hpd_irq_event when not
      called from the interrupt handler. It doesn't serve any purpose there
      anyway.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      f0bfcc22
    • A
      drm/i2c: adv7511: Move to bridge folder · c5827789
      Archit Taneja 提交于
      The driver has been converted to use drm_bridge instead of
      drm_i2c_slave_encoder. We can now move it to the bridge folder.
      
      Create a separate folder since we already have a couple of files and
      expect more when we support audio and ADV7533.
      
      Rename the driver to adv7511_drv.c. This will come in handy later
      when the driver module will need to be built from multiple object
      files.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      c5827789
  2. 20 6月, 2016 1 次提交
    • B
      drm/bridge: Add sii902x driver · 675605c1
      Boris Brezillon 提交于
      Add basic support for the sii902x RGB -> HDMI bridge.
      This driver does not support audio output yet.
      Signed-off-by: NBoris Brezillon <boris.brezillon@free-electrons.com>
      Tested-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      Acked-by: NArchit Taneja <architt@codeaurora.org>
      Reviewed-by: NEmil Velikov <emil.l.velikov@gmail.com>
      ---
      Changes in v8:
      - remove useless headers inclusion
      - fix macro names (s/SIL/SII)
      - drop unneeded hotplug_work field from struct sii902x
      - drop drm_connector_unregister() call in the ->destroy() method
      - add a timeout when polling a register value
      
      Changes in v6:
      - use HDMI_INFOFRAME_SIZE(AVI)
      - fix reset_gpio initialization
      - reduce the reset time based on Ming feedback
      
      Changes in v5:
      - drop the best_encoder() implementation
      
      Changes in v4:
      - make reset GPIO optional
      - only support attaching to DRM devices supporting atomic updates
      
      Changes in v3:
      - fix get_modes() implementation to avoid turning the screen in power
        save mode
      - rename the driver (sil902x -> sii902x)
      
      Changes in v2:
      - fix errors reported by the kbuild robot
      
      fixup! drm: bridge: Add sii902x driver
      675605c1
  3. 10 6月, 2016 4 次提交
  4. 12 5月, 2016 1 次提交
  5. 05 4月, 2016 12 次提交
  6. 30 3月, 2016 1 次提交
  7. 11 2月, 2016 1 次提交
  8. 13 1月, 2016 1 次提交
  9. 28 12月, 2015 1 次提交
    • M
      drm: bridge/dw_hdmi: add atomic API support · 2c5b2ccc
      Mark Yao 提交于
      Fill atomic needed funcs with default atomic helper library.
      
      Rockchip use dw_hdmi, and drm/rockchip will covert to atomic api,
      we need dw_hdmi support atomic funcs.
      
      Now another drm driver use dw_hdmi is imx, not yet atomic, so
      check DRIVER_ATOMIC at runtime to spilt atomic and not atomic.
      Signed-off-by: NMark Yao <mark.yao@rock-chips.com>
      2c5b2ccc
  10. 15 12月, 2015 2 次提交
  11. 25 11月, 2015 2 次提交
  12. 31 10月, 2015 2 次提交
  13. 10 10月, 2015 8 次提交
  14. 07 10月, 2015 1 次提交
    • R
      drm: bridge/dw_hdmi: improve HDMI enable/disable handling · aeac23bd
      Russell King 提交于
      HDMI sinks are permitted to de-assert and re-assert the HPD signal to
      indicate that their EDID has been updated, which may not involve a
      change of video information.
      
      An example of where such a situation can arise is when an AV receiver
      is connected between the source and the display device.  Events which
      can cause the HPD to be deasserted include:
      
       * turning on or switching to standby the AV receiver.
       * turning on or switching to standby the display device.
      
      Each of these can change the entire EDID data, or just a part of the
      EDID data - it's up to the connected HDMI sink to do what they desire
      here.  For example
      
       - with the AV receiver and display device both in standby, a source
         connected to the AV receiver may provide its own EDID to the source.
       - turning on the display device causes the display device's EDID to be
         made available in an unmodified form to the source.
       - subsequently turning on the AV receiver then provides a modified
         version of the display device's EDID.
      
      Moreover, HPD doesn't tell us whether something is actually listening
      on the HDMI TDMS signals.  The phy gives us a set of RXSENSE indications
      which tell us whether there is a sink connected to the TMDS signals.
      
      Currently, we use the HPD signal to enable or disable the HDMI block,
      which is questionable when HPD is used in this manner.  Using the
      RXSENSE would be more appropriate, but there is some bad behaviour
      which needs to be coped with.  The iMX6 implementation lets the TMDS
      signals float when the phy is "powered down", which cause spurious
      interrupts.  Rather than just using RXSENSE, use RXSENSE and HPD
      becoming both active to signal the presence of a device, but loss
      of RXSENSE to indicate that the device has been unplugged.
      
      The side effect of this change is that a sink deasserting the HPD
      signal to cause a re-read of the EDID data will not cause the bridge
      to immediately disable the video signal.
      Tested-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Reviewed-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      aeac23bd