04 Oct, 2016

1 commit


23 Aug, 2016

1 commit

  • The full name of PSR is Panel Self Refresh, panel device could refresh
    itself with the hardware framebuffer in panel, this would make lots of
    sense to save the power consumption.

    This patch have exported two symbols for platform driver to implement
    the PSR function in hardware side:
    - analogix_dp_active_psr()
    - analogix_dp_inactive_psr()

    Reviewed-by: Archit Taneja
    Signed-off-by: Yakir Yang
    Signed-off-by: Sean Paul

    Yakir Yang
     

05 Jul, 2016

3 commits


05 Apr, 2016

2 commits

  • Rockchip have three clocks for dp controller, we leave pclk_edp
    to analogix_dp driver control, and keep the sclk_edp_24m and
    sclk_edp in platform driver.

    Acked-by: Mark Yao
    Tested-by: Caesar Wang
    Tested-by: Douglas Anderson
    Tested-by: Heiko Stuebner
    Signed-off-by: Yakir Yang
    Signed-off-by: Heiko Stuebner

    Yakir Yang
     
  • Split the dp core driver from exynos directory to bridge directory,
    and rename the core driver to analogix_dp_*, rename the platform
    code to exynos_dp.

    Beside the new analogix_dp driver would export six hooks.
    "analogix_dp_bind()" and "analogix_dp_unbind()"
    "analogix_dp_suspned()" and "analogix_dp_resume()"
    "analogix_dp_detect()" and "analogix_dp_get_modes()"

    The bind/unbind symbols is used for analogix platform driver to connect
    with analogix_dp core driver. And the detect/get_modes is used for analogix
    platform driver to init the connector.

    They reason why connector need register in helper driver is rockchip drm
    haven't implement the atomic API, but Exynos drm have implement it, so
    there would need two different connector helper functions, that's why we
    leave the connector register in helper driver.

    Acked-by: Inki Dae
    Tested-by: Caesar Wang
    Tested-by: Douglas Anderson
    Tested-by: Heiko Stuebner
    Tested-by: Javier Martinez Canillas
    Signed-off-by: Yakir Yang
    Signed-off-by: Heiko Stuebner

    Yakir Yang
     

27 Aug, 2015

1 commit

  • Here are some development updates for the Synopsis Designware HDMI driver,
    which clean up some of the code, and start preparing to add audio support
    to the driver. This series of patches are based on a couple of dependent
    commits from the ALSA tree.

    Briefly, the updates are:
    - move comments which should have moved with the phy values to the IMX
    part of the driver.
    - clean up the phy configuration: to all lookups before starting to
    program the phy.
    - clean up the HDMI clock regenerator code
    - use the drm_hdmi_avi_infoframe_from_display_mode() helper which allows
    the code to be subsequently simplified
    - remove the unused 'regmap' pointer in struct dw_hdmi
    - use the bridge drm device rather than the connector (we're the bridge
    code)
    - remove private hsync/vsync/interlaced flags, getting them from the
    DRM mode structure instead.
    - implement interface functions to support audio - setting the audio
    sample rate, and enabling the audio clocks.
    - removal of broken pixel repetition support
    - cleanup DVI vs HDMI sink handling
    - enable audio only if connected device supports audio
    - avoid double-enabling bridge in the sink path (once in mode_set, and
    again in commit)
    - rename mis-named dw_hdmi_phy_enable_power()
    - fix bridge enable/disable handing, so a plug-in event doesn't
    reconfigure the bridge if DRM has disabled the output
    - fix from Vladimir Zapolskiy for the I2CM_ADDRESS macro name

    These are primerily preparitory patches for the AHB audio driver and
    the I2S audio driver (from Rockchip) for this IP.

    * 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    drm: bridge/dw_hdmi: fix register I2CM_ADDRESS register name
    drm: bridge/dw_hdmi: fix phy enable/disable handling
    drm: bridge/dw_hdmi: rename dw_hdmi_phy_enable_power()
    drm: bridge/dw_hdmi: avoid enabling interface in mode_set
    drm: bridge/dw_hdmi: enable audio only if sink supports audio
    drm: bridge/dw_hdmi: clean up HDMI vs DVI mode handling
    drm: bridge/dw_hdmi: don't support any pixel doubled modes
    drm: bridge/dw_hdmi: remove pixel repetition setting for all VICs
    drm: bridge/dw_hdmi: introduce interfaces to enable and disable audio
    drm: bridge/dw_hdmi: introduce interface to setting sample rate
    drm: bridge/dw_hdmi: remove mhsyncpolarity/mvsyncpolarity/minterlaced
    drm: bridge/dw_hdmi: use our own drm_device
    drm: bridge/dw_hdmi: remove unused 'regmap' struct member
    drm: bridge/dw_hdmi: simplify hdmi_config_AVI() a little
    drm: bridge/dw_hdmi: use drm_hdmi_avi_infoframe_from_display_mode()
    drm: bridge/dw_hdmi: clean up hdmi_set_clk_regenerator()
    drm: bridge/dw_hdmi: clean up phy configuration
    drm: imx/dw_hdmi: move phy comments
    drm/edid: add function to help find SADs

    Dave Airlie
     

18 Aug, 2015

2 commits

  • iMX6 devices suffer from an errata (ERR005174) where the audio FIFO can
    be emptied while it is partially full, resulting in misalignment of the
    audio samples.

    To prevent this, the errata workaround recommends writing N as zero
    until the audio FIFO has been loaded by DMA. Writing N=0 prevents the
    HDMI bridge from reading from the audio FIFO, effectively disabling
    audio.

    This means we need to provide the audio driver with a pair of functions
    to enable/disable audio. These are dw_hdmi_audio_enable() and
    dw_hdmi_audio_disable().

    A spinlock is introduced to ensure that setting the CTS/N values can't
    race, ensuring that the audio driver calling the enable/disable
    functions (which are called in an atomic context) can't race with a
    modeset.

    Tested-by: Yakir Yang
    Signed-off-by: Russell King

    Russell King
     
  • Introduce dw_hdmi_set_sample_rate(), which allows us to configure the
    audio sample rate, setting the CTS/N values appropriately.

    Tested-by: Yakir Yang
    Signed-off-by: Russell King

    Russell King
     

05 Jun, 2015

1 commit


01 Apr, 2015

1 commit


28 Jan, 2015

1 commit

  • Currently, third party bridge drivers(ptn3460) are dependent
    on the corresponding encoder driver init, since bridge driver
    needs a drm_device pointer to finish drm initializations.
    The encoder driver passes the drm_device pointer to the
    bridge driver. Because of this dependency, third party drivers
    like ptn3460 doesn't adhere to the driver model.

    In this patch, we reframe the bridge registration framework
    so that bridge initialization is split into 2 steps, and
    bridge registration happens independent of drm flow:
    --Step 1: gather all the bridge settings independent of drm and
    add the bridge onto a global list of bridges.
    --Step 2: when the encoder driver is probed, call drm_bridge_attach
    for the corresponding bridge so that the bridge receives
    drm_device pointer and continues with connector and other
    drm initializations.

    The old set of bridge helpers are removed, and a set of new helpers
    are added to accomplish the 2 step initialization.

    The bridge devices register themselves onto global list of bridges
    when they get probed by calling "drm_bridge_add".

    The parent encoder driver waits till the bridge is available
    in the lookup table(by calling "of_drm_find_bridge") and then
    continues with its initialization.

    The encoder driver should also call "drm_bridge_attach" to pass
    on the drm_device to the bridge object.

    drm_bridge_attach inturn calls "bridge->funcs->attach" so that
    bridge can continue with drm related initializations.

    Signed-off-by: Ajay Kumar
    Acked-by: Inki Dae
    Tested-by: Rahul Sharma
    Tested-by: Javier Martinez Canillas
    Tested-by: Gustavo Padovan
    Tested-by: Sjoerd Simons
    Signed-off-by: Thierry Reding

    Ajay Kumar
     

08 Jan, 2015

2 commits


24 Mar, 2014

1 commit


23 Mar, 2014

1 commit