1. 29 12月, 2015 1 次提交
  2. 24 9月, 2015 1 次提交
    • J
      OMAPDSS: hdmi: Reconfigure and restart audio when display is enabled · 8a9d4626
      Jyri Sarha 提交于
      Reconfigure and restart audio when display is enabled, if audio
      playback was active before. This is needed in a situation when an
      audio+video stream application opens the audio stream before the
      video. When video stream is opened the display mode may change and
      that aborts audio playback, because the display is momentarily
      turned off.
      
      The audio configuration is stored when it is successfully applied and
      a boolean is set when the audio playback is started and unset when
      stopped. This data is used to reconfigure the audio when display is
      re-enabled. The audio playback is aborted if the reconfiguration fails.
      
      A new spin lock is introduced in order to protect state variables
      related to audio playback status. This is needed for the transition
      from display enabled state (when audio start/stop commands can be
      written to HW) to display disabled state (when audio start/stop
      commands update only the hdmi.audio_playing variable) to always
      serialize correctly with the start/stop audio commands. The already
      existing mutex can not be used, because the audio start and stop
      commands are executed in atomic context.
      
      For example: when display is turned back on we take the spinlock and
      we can be sure that the audio start/stop status will not change while
      we update the HW according to hdmi.audio_playing state and set
      hdmi.display_enabled to true. After releasing the lock
      hdmi.display_enabled is true and all audio_start and audio_stop
      commands write their stuff directly to HW.
      Signed-off-by: NJyri Sarha <jsarha@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      8a9d4626
  3. 01 12月, 2014 2 次提交
  4. 26 11月, 2014 6 次提交
  5. 12 11月, 2014 5 次提交
  6. 04 7月, 2014 5 次提交
  7. 09 5月, 2014 4 次提交
    • T
      OMAPDSS: HDMI: Add OMAP5 HDMI support · f5bab222
      Tomi Valkeinen 提交于
      This adds a new driver to omapdss for OMAP5 HDMI. However, the new
      driver uses common HDMI files which are shared with OMAP4 HDMI driver.
      
      OMAP5 HDMI has a different HDMI core IP compared to OMAP4, but has very
      similar PLL and PHY IPs which can be handled with common code.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      f5bab222
    • A
      OMAPDSS: HDMI: PHY changes for OMAP5 · 19289fdc
      Archit Taneja 提交于
      OMAP5 HDMI PHY has some differences compared to OMAP4 HDMI PHY. This
      patch creates a features struct which help the driver configure the PHY
      based on what SoC it is.
      
      Some of the features aren't currenlty used, but will come in use later.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      19289fdc
    • A
      OMAPDSS: HDMI: support larger register offsets for OMAP5 HDMI core · 8955b727
      Archit Taneja 提交于
      The HDMI core IP on OMAP5 has a wider address range for registers. The offsets
      for the later registers can't fit into the u16 type currently used for hdmi
      register read and write functions. Use u32 for offsets instead.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      8955b727
    • T
      OMAPDSS: HDMI: move irq & phy pwr handling · dcf5f729
      Tomi Valkeinen 提交于
      HDMI IRQ handling was moved into hdmi_phy.c when restructuring the HDMI
      driver. While this worked fine, it's not correct.
      
      The HDMI IRQ handling should be either in the hdmi_wp, or in the main
      hdmi driver. This patch moves the handling to the main hdmi driver, as I
      feel it's a more appropriate choice.
      
      This move also requires changing the handling of the PHY power, as that
      was partly handled in the IRQ handler. The PHY power is handled via the
      WP module. An option would be to give HDMI PHY driver function pointers
      that it could use to manage the PHY power, but as the PHY power is not
      needed to access the PHY registers, the handling was also moved to the
      main HDMI driver. This could be changed later if need be.
      
      Note that there's slightly similar power issue with the PLL: the HDMI
      PLLs power is also handled via the WP module. For now, the PLL power
      handling is still done inside the PLL driver.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      dcf5f729
  8. 07 5月, 2014 1 次提交
  9. 17 4月, 2014 1 次提交
  10. 13 1月, 2014 3 次提交
  11. 09 10月, 2013 9 次提交
    • A
      omapdss: HDMI: move common functions to a separate file · 08d83e4e
      Archit Taneja 提交于
      The OMAP4 HDMI encoder driver(hdmi4.c) contains timings tables, and helper
      functions which can be used as is by the OMAP5/DRA7x encoder driver. Move these
      to hdmi_common.c so that it's not replicated in the future.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      08d83e4e
    • A
      omapdss: HDMI: Rename hdmi driver files to nicer names · ef26958a
      Archit Taneja 提交于
      Replace the ti_hdmi_4xxx* notation for OMAP4 HDMI driver with hdmi4. Rename
      the hdmi.c encoder driver to hdmi4.c. Rename ti_hdmi.h to hdmi.h
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      ef26958a
    • A
      omapdss: HDMI: add HDMI wrapper IRQ flags · 8696131f
      Archit Taneja 提交于
      Add flags for the interrupts present in HDMI wrapper block, these will be used
      to configure HDMI_IRQENABLE_SET/CLEAR and HDMI_IRQSTATUS registers.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      8696131f
    • A
      omapdss: HDMI: Clean up the header files · bdb8bfc6
      Archit Taneja 提交于
      Keep only OMAP4 HDMI core block related structs and enums in ti_hdmi_4xxx_ip.h,
      move the rest to ti_hdmi.h. This holds all library specific data which will be
      shared between OMAP4 and OMAP5/DRA7x HDMI encoder drivers.
      
      Move the duplicate register read/write/wait_for_bit_change functions in the hdmi
      library files to ti_hdmi.h
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      bdb8bfc6
    • A
      omapdss: HDMI: remove hdmi_ip_data struct · 275cfa1a
      Archit Taneja 提交于
      The struct hdmi_ip_data contains information related to HDMI wrapper, PLL, PHY
      and core sub-blocks. Now that each of these sub blocks has it's own struct,
      hdmi_ip_data serves no purpose. The mutex lock in the struct was also never
      used.
      
      Remove this struct to make things cleaner.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      275cfa1a
    • A
      omapdss: HDMI: Use OMAP4 HDMI core functions directly and remove hdmi_ip_ops · 425f02fd
      Archit Taneja 提交于
      After removing wrapper, pll and phy funcs from ti_hdmi_4xxx_ip.c, we are left
      with OMAP4 HDMI core functions. Use these directly in hdmi.c rather than using
      hdmi_ip_ops. Rename the core functions with a 'hdmi4' suffix.
      
      We used to have hdmi_ip_ops so that one could support HDMI within a TI SoC which
      had a non-DSS display subsytem. This however never got put into use, and hence
      these ops aren't useful any more.
      
      The DT/hwmod information for hdmi doesn't split the address space according to
      the required sub blocks. Keep the address offset and size information in the
      driver for now. This will be removed when the driver gets the information
      correctly from DT/hwmod.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      425f02fd
    • A
      omapdss: HDMI: create a PHY library · 5cac5aee
      Archit Taneja 提交于
      HDMI PHY is a block common to DSS in OMAP4, OMAP5 and DRA7x. Move the
      existing functions from ti_hdmi_4xxx_ip.c to a separate file. These funcs are
      called directly from the hdmi driver rather than hdmi_ip_ops function pointer
      calls.
      
      Add the PHY library function declarations to ti_hdmi.h. These will be shared
      amongst the omap4/5 hdmi platform drivers. Remove the PHY function pointer ops
      from the ti_hdmi_ip_ops struct.
      
      The DT/hwmod information for hdmi doesn't split the address space according to
      the required sub blocks. Keep the address offset and size information in the
      driver for now. This will be removed when the driver gets the information
      correctly from DT/hwmod.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5cac5aee
    • A
      omapdss: HDMI: create a PLL library · c1577c1e
      Archit Taneja 提交于
      HDMI PLL is a block common to DSS in OMAP4, OMAP5 and DRA7x. Move the
      existing PLL functions from ti_hdmi_4xxx_ip.c and hdmi.c to a separate file.
      These funcs are called directly from the hdmi driver rather than hdmi_ip_ops
      function pointer calls.
      
      Add the PLL library function declarations to ti_hdmi.h. These will be shared
      amongst the omap4/5 hdmi platform drivers. Remove the PLL function pointer ops
      from the ti_hdmi_ip_ops struct. These will be shared amongst the omap4/5 hdmi
      platform drivers and other libraries.
      
      The DT/hwmod information for hdmi doesn't split the address space according to
      the required sub blocks. Keep the address offset and size information in the
      driver for now. This will be removed when the driver gets the information
      correctly from DT/hwmod.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      c1577c1e
    • A
      omapdss: HDMI: create a Wrapper library · f382d9eb
      Archit Taneja 提交于
      HDMI wrapper is a block common to DSS in OMAP4, OMAP5 and DRA7x. Move the
      existing functions from ti_hdmi_4xxx_ip.c to a separate file. These funcs are
      called directly from the hdmi driver rather than hdmi_ip_ops funtion pointer
      calls.
      
      Add new wrapper funcs which can be used by other hdmi libraries like core, pll
      and phy. Move some of the enums, structs and funcs related to the wrapper from
      ti_hdmi_4xxx_ip.h to ti_hdmi.h. These will be shared amongst the omap4/5 hdmi
      platform drivers and other libraries.
      
      The old hdmi_wp_init() is removed since it didn't do anything. Timing parameters
      like interlace, hsync_level and vsync_level weren't copied correctly before.
      Those are copied correctly now.
      
      The DT/hwmod information for hdmi doesn't split the address space according to
      the required sub blocks. Keep the address offset and size information in the
      driver for now. This will be removed when the driver gets the information
      correctly from DT/hwmod.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      f382d9eb
  12. 17 6月, 2013 2 次提交
    • T
      OMAPDSS: HDMI clean up hpd_gpio · 29356be1
      Tomi Valkeinen 提交于
      hpd_gpio is no longer used by the OMAP4 HDMI IP driver, and we can thus
      remove the unnecessary code.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      29356be1
    • T
      OMAPDSS: HDMI: clean up PHY power handling · ddb1d5ca
      Tomi Valkeinen 提交于
      The TRM tells to set PHY to TXON only after getting LINK_CONNECT, and to
      set PHY to OFF or LDOON after getting LINK_DISCONNECT, in order to avoid
      damage to the PHY.
      
      We don't currently do it quite like that. Instead of using the HDMI
      interrupts, we use HPD signal. This works, but is not actually quite
      correct, as HPD comes at a different time than LINK_CONNECT and
      LINK_DISCONNECT interrupts. Also, the HPD GPIO is a property of the TPD
      level shifter, not HDMI IP, so handling the GPIO in the HDMI driver is
      wrong.
      
      This patch implements the PHY power handling correctly, using the
      interrupts.
      
      There is a corner case that causes some additional difficulties: we may
      get both LINK_CONNECT and LINK_DISCONNECT interrupts at the same time.
      This is handled in the code by retrying: turning off the PHY, clearing
      the interrupt status, and re-enabling the PHY. This causes a new
      LINK_CONNECT interrupt to happen if a cable is connected.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      ddb1d5ca