1. 30 10月, 2013 1 次提交
  2. 29 10月, 2013 1 次提交
  3. 30 8月, 2013 1 次提交
    • T
      OMAPDSS: rename omap_dss_device's 'device' field to 'dst' · 9560dc10
      Tomi Valkeinen 提交于
      In the old panel device model we had omap_dss_output entities,
      representing the encoders in the DSS block. This entity had "device"
      field, which pointed to the panel that was using the omap_dss_output.
      
      With the new panel device model, the omap_dss_output is integrated into
      omap_dss_device, which now represents a "display entity". Thus the "device"
      field, now in omap_dss_device, points to the next entity in the display
      entity-chain.
      
      This patch renames the "device" field to "dst", which much better tells
      what the field points to.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Reviewed-by: NArchit Taneja <archit@ti.com>
      9560dc10
  4. 29 8月, 2013 1 次提交
  5. 17 6月, 2013 7 次提交
    • 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: 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
    • 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: 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
    • T
      OMAPDSS: remove omap_dss_start/stop_device() · d3923933
      Tomi Valkeinen 提交于
      The omap_dss_start_device() and omap_dss_stop_device(), called by the
      DSS output drivers, are old relics. They originally did something
      totally else, but nowadays they increase the module ref count for panels
      that are enabled.
      
      This model is quite broken: the panel modules may be used even before
      they are enabled. For example, configuring the panel requires calls to
      functions located in the panel modules.
      
      In the following patches we try to improve the ref count management for
      the modules and display devices. The first step, however, is to remove
      the omap_dss_start/stop_device() totally.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      d3923933
    • T
      OMAPDSS: DSI: cleanup regulator init · b2541c40
      Tomi Valkeinen 提交于
      Separate the regulator initialization code to its own function, removing
      duplicate code.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      b2541c40
    • T
      OMAPDSS: only probe pdata if there's one · c6ca5b22
      Tomi Valkeinen 提交于
      omapdss output drivers always read the platform data. This crashes when
      there's no platform data when using DT.
      
      Add a check to read the platform data only if it exists.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      c6ca5b22
  6. 02 5月, 2013 2 次提交
  7. 10 4月, 2013 1 次提交
  8. 03 4月, 2013 14 次提交
  9. 07 12月, 2012 2 次提交
    • T
      OMAPDSS: manage framedone irq with mgr ops · 1550202d
      Tomi Valkeinen 提交于
      Some of the output drivers need to handle FRAMEDONE interrupt from
      DISPC. This creates a direct dependency to dispc code, and we need to
      avoid this to make the compat code to work.
      
      Instead of the output drivers registering for dispc interrupts, we
      create new mgr-ops that are used to register a framedone handler. The
      code implementing the mgr-ops is responsible for calling the handler
      when DISPC FRAMEDONE interrupt happens. The compat layer is improved
      accordingly to do the call to the framedone handler.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      1550202d
    • T
      OMAPDSS: manage output-dssdev connection in output drivers · 486c0e17
      Tomi Valkeinen 提交于
      We currently attach an output to a dssdev in the initialization code for
      dssdevices in display.c. This works, but doesn't quite make sense: an
      output entity represents (surprisingly) an output of DSS, which is
      managed by an output driver. The output driver also handles adding new
      dssdev's for that particular output.
      
      It makes more sense to make the output-dssdev connection in the output
      driver. This is also in line with common display framework.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      486c0e17
  10. 07 11月, 2012 1 次提交
    • T
      OMAPDSS: HACK: look for regulators with omap4 names · 76eed4bc
      Tomi Valkeinen 提交于
      Normally the omapdss driver gets the regulators using the regulator
      names assigned for omapdss. However, in an effort to get a minimal DSS
      support for DT enabled kernel on selected boards, we will add omapdss
      devices and platform data the old way even for DT kernel. This causes
      the problem that omapdss cannot find the regulators using omapdss's
      regulator names.
      
      This patch creates a temporary workaround for DSI and HDMI by trying to
      get the regulators also using native OMAP4 regulator names.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      76eed4bc
  11. 05 11月, 2012 3 次提交
    • T
      OMAPDSS: hide dss_select_dispc_clk_source() · a5b8399f
      Tomi Valkeinen 提交于
      dss.c currently exposes functions to configure the dispc source clock
      and lcd source clock. There are configured separately from the output
      drivers.
      
      However, there is no safe way for the output drivers to handle dispc
      clock, as it's shared between the outputs. Thus, if, say, the DSI driver
      sets up DSI PLL and configures both the dispc and lcd clock sources to
      that DSI PLL, the resulting dispc clock could be too low for, say, HDMI.
      
      Thus the output drivers should really only be concerned about the lcd
      clock, which is what the output drivers actually use. There's lot to do
      to clean up the dss clock handling, but this patch takes one step
      forward and removes the use of dss_select_dispc_clk_source() from the
      output drivers.
      
      After this patch, the output drivers only configure the lcd source
      clock. On omap4+ the dispc src clock is never changed from the default
      PRCM source. On omap3, where the dispc and lcd clocks are actually the
      same, setting the lcd clock source sets the dispc clock source.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      a5b8399f
    • T
      OMAPDSS: DSI: workaround for HSDiv problem · 7a98786c
      Tomi Valkeinen 提交于
      It looks like on many OMAP versions powers for both HSClk and HSDiv to
      be enabled to have a functional HSDiv.
      
      This patch fixes the issue by forcing both powers on.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      7a98786c
    • T
      OMAPDSS: DSI: skip odd dividers when pck >= 100MHz · b7f1fe54
      Tomi Valkeinen 提交于
      The DSI PLL and HSDivider can be used to generate the pixel clock for
      LCD overlay manager, which then goes to DPI output. On the DPI output
      pin the voltage of the signal is shifted from the OMAP's internal
      minimal voltage to 1.8V range. The shifting is not instant, and the
      higher the clock frequency, the less time there is to shift the signal
      to nominal voltage.
      
      If the HSDivider's divider is greater than one and odd, the resulting
      pixel clock does not have 50% duty cycle. For example, with a divider of
      3, the duty cycle is 33%.
      
      When combining high frequency (in the area of 140MHz+) and non-50% duty
      cycle, it has been observed the the shifter does not have enough time to
      shift the voltage enough, and this leads to bad signal which is rejected
      by monitors.
      
      As a workaround this patch makes the divider calculation skip all odd
      dividers when the required pixel clock is over 100MHz. The limit of
      100MHz is a guesstimate.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      b7f1fe54
  12. 29 10月, 2012 1 次提交
  13. 25 10月, 2012 1 次提交
    • T
      OMAPDSS: DSI: fix dsi_get_dsidev_from_id() · ea29c4ea
      Tomi Valkeinen 提交于
      If dsi_get_dsidev_from_id() is called with a DSI module id that does not
      exist on the board, the function will crash as omap_dss_get_output()
      will return NULL.
      
      This happens on omap3 boards when dumping DSI clocks, as the dumping
      code will try to get the dsidev for DSI modules 0 and 1, but omap3 only
      has DSI module 0.
      
      Also clean up the id -> output mapping, so that if the function is
      called with invalid module ID it will return NULL.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Archit Taneja <archit@ti.com>
      ea29c4ea
  14. 18 10月, 2012 1 次提交
    • T
      OMAPDSS: DSI: fix dsi_get_dsidev_from_id() · 78e7f256
      Tomi Valkeinen 提交于
      If dsi_get_dsidev_from_id() is called with a DSI module id that does not
      exist on the board, the function will crash as omap_dss_get_output()
      will return NULL.
      
      This happens on omap3 boards when dumping DSI clocks, as the dumping
      code will try to get the dsidev for DSI modules 0 and 1, but omap3 only
      has DSI module 0.
      
      Also clean up the id -> output mapping, so that if the function is
      called with invalid module ID it will return NULL.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Archit Taneja <archit@ti.com>
      78e7f256
  15. 12 10月, 2012 3 次提交