1. 18 11月, 2013 6 次提交
  2. 19 9月, 2013 1 次提交
    • T
      OMAPDSS: DISPC: set irq_safe for runtime PM · 48664b21
      Tomi Valkeinen 提交于
      We have a bug with omapdrm, where omapdrm calls dispc's pm_runtime
      function in atomic context, and dispc's pm_runtime is not marked as
      irq_safe:
      
      BUG: sleeping function called from invalid context at drivers/base/power/runtime.c:952
      
      Dispc's runtime PM callbacks are irq safe, so we can just set the
      irq_safe flag to fix the issue.
      
      However, in the long term, I'd rather have omapdrm manage the runtime PM
      calls in a better way. Calling get/put for every small operation that
      touches the dispc registers is very inefficient. It'd be better and
      cleaner to have clear "in-use" and "not-in-use" states for dispc, so
      that we don't need to do register context restore for small operations,
      only to turn dispc off right afterwards.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      48664b21
  3. 30 8月, 2013 3 次提交
  4. 29 8月, 2013 11 次提交
  5. 06 8月, 2013 1 次提交
    • M
      OMAPDSS: HDMI: Fix AVI infoframe bug · fd3cd7ee
      Mythri P K 提交于
      ti_hdmi_4xxx_basic_configure() is supposed to initialize the AVI
      infoframe data in the ip_data container. However, the function actually
      takes a copy of the infoframe from the ip_data, and then goes on
      initializing that copy. The initialized data is never copied back to the
      ip_data container, thus the infoframe in ip_data is left always zero.
      
      Afaik, this doesn't really cause any issues in the current mainline, as
      we don't use the advanced features offered by the AVI infoframe.
      
      This patch fixes the initialization of the AVI infoframe.
      Signed-off-by: NMythri P K <mythripk@ti.com>
      [tomi.valkeinen@ti.com: updated the description]
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      fd3cd7ee
  6. 15 7月, 2013 1 次提交
  7. 26 6月, 2013 1 次提交
    • T
      OMAPDSS: DPI: Fix wrong pixel clock limit · 72e5512a
      Tomi Valkeinen 提交于
      DPI is supposed to skip odd dividers in the clock path when the pixel
      clock is higher than 100MHz. The code, however, defines the pixel clock
      limit as 1MHz. This causes the driver to skip valid clock dividers,
      possibly making the pixel clock to be further away from the requested
      one than necessary.
      
      Fix the clock limit to 100MHz.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: NeilBrown <neilb@suse.de>
      72e5512a
  8. 17 6月, 2013 16 次提交
    • T
      OMAPDSS: DSI: Add ops · deb16df8
      Tomi Valkeinen 提交于
      Add "ops" style method for using DSI functionality.
      
      Ops style calls will allow us to have arbitrarily long display
      pipelines, where each entity can call ops in the previous display
      entity.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      deb16df8
    • T
      OMAPDSS: HDMI: Add ops · 0b450c31
      Tomi Valkeinen 提交于
      Add "ops" style method for using HDMI functionality.
      
      Ops style calls will allow us to have arbitrarily long display
      pipelines, where each entity can call ops in the previous display
      entity.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      0b450c31
    • T
      OMAPDSS: AnalogTV: Add ops · fb8efa49
      Tomi Valkeinen 提交于
      Add "ops" style method for using analog TV functionality.
      
      Ops style calls will allow us to have arbitrarily long display
      pipelines, where each entity can call ops in the previous display
      entity.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      fb8efa49
    • T
      OMAPDSS: SDI: Add ops · b1082dfd
      Tomi Valkeinen 提交于
      Add "ops" style method for using SDI functionality.
      
      Ops style calls will allow us to have arbitrarily long display
      pipelines, where each entity can call ops in the previous display
      entity.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      b1082dfd
    • T
      OMAPDSS: DPI: Add ops · 0b24edb1
      Tomi Valkeinen 提交于
      Add "ops" style method for using DPI functionality.
      
      Ops style calls will allow us to have arbitrarily long display
      pipelines, where each entity can call ops in the previous display
      entity.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      0b24edb1
    • T
      OMAPDSS: add OMAP_DISPLAY_TYPE_DVI · bc24b8b6
      Tomi Valkeinen 提交于
      Add new display bus type for DVI. This is not used by omapdss driver
      itself, but is used by external encoder chips that output DVI.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      bc24b8b6
    • T
      OMAPDSS: modify get/find functions to go through the device chain · efedce14
      Tomi Valkeinen 提交于
      In the future will have arbitrarily long video pipeline chains, instead
      of the current two-entities-per-pipeline model.
      
      This patch changes the affected get/find style functions so that they
      properly go through the video pipeline chain, for example when getting
      the overlay manager connected to a given display.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      efedce14
    • T
      OMAPDSS: public omapdss_register_output() · 5d47dbc8
      Tomi Valkeinen 提交于
      In order to allow multiple display block in a video pipeline, we need to
      give the drivers way to register themselves. For now we have
      the omapdss_register_display() which is used to register panels, and
      dss_register_output() which is used to register DSS encoders.
      
      This patch makes dss_register_output() public (with the name of
      omapdss_register_output), which can be used to register also external
      encoders. The distinction between register_output and register_display
      is that a "display" is an entity at the end of the videopipeline, and
      "output" is something inside the pipeline.
      
      The registration and naming will be made saner in the future, but the
      current names and functions are kept to minimize changes during the dss
      device model transition.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5d47dbc8
    • S
      OMAPDSS: gracefully disable overlay at error · 595470a7
      Sergey Kibrik 提交于
      Disable overlay via ovl->disable() interface, which will
      properly set flags in cache and GO bits for managers.
      This allows overlay user to re-enable it on next frame,
      thus recovering from FIFO underflows.
      Signed-off-by: NSergey Kibrik <sergiikibrik@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      595470a7
    • T
      OMAPDSS: remove dispc's dependency to VENC/HDMI · 5391e87d
      Tomi Valkeinen 提交于
      DISPC needs to know the clock rate for DIGIT (i.e. TV) channel, and this
      clock is provided by either VENC or HDMI modules. Currently DISPC will
      call a function in VENC/HDMI, asking what the clock rate is. This means
      we have a fixed dependency from DISPC to both VENC and HDMI.
      
      To have a more generic approach, and in particular to allow adding OMAP5
      HDMI driver, we need to remove this dependency. This patch makes
      VENC/HDMI inform DISPC when the their clock changes, thus reversing the
      dependency and removing the issue.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5391e87d
    • 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
    • T
      OMAPDSS: output: increase refcount in find_output funcs · 820caabf
      Tomi Valkeinen 提交于
      Now that omap_dss_output has been combined into omap_dss_device, we can
      add ref counting for the relevant output functions also.
      
      This patch adds omap_dss_get_device() calls to the various find_output()
      style functions. This, of course, means that the users of those
      find_output functions need to do a omap_dss_put_device() after use.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      820caabf
    • T
      OMAPDSS: add THIS_MODULE owner to DSS outputs · b7328e14
      Tomi Valkeinen 提交于
      Setup the owner field for DSS output's omap_dss_device so that module
      refcounting works.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      b7328e14
    • T
      OMAPDSS: add module_get/put to omap_dss_get/put_device() · d35317a4
      Tomi Valkeinen 提交于
      omap_dss_get_device() should be called for omap_dss_device before it is
      used to increase its refcount. Currently we only increase the refcount
      for the underlying device.
      
      This patch adds managing the ref count to the underlying module also,
      which contains the ops for the omap_dss_device.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      d35317a4
    • T
      OMAPDSS: combine omap_dss_output into omap_dss_device · 1f68d9c4
      Tomi Valkeinen 提交于
      We currently have omap_dss_device, which represents an external display
      device, sometimes an external encoder, sometimes a panel. Then we have
      omap_dss_output, which represents DSS's output encoder.
      
      In the future with new display device model, we construct a video
      pipeline from the display blocks. To accomplish this, all the blocks
      need to be presented by the same entity.
      
      Thus, this patch combines omap_dss_output into omap_dss_device. Some of
      the fields in omap_dss_output are already found in omap_dss_device, but
      some are not. This means we'll have DSS output specific fields in
      omap_dss_device, which is not very nice. However, it is easier to just
      keep those output specific fields there for now, and after transition to
      new display device model is made, they can be cleaned up easier than
      could be done now.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      1f68d9c4