1. 17 6月, 2013 3 次提交
  2. 02 5月, 2013 2 次提交
  3. 10 4月, 2013 1 次提交
  4. 03 4月, 2013 14 次提交
  5. 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
  6. 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
  7. 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
  8. 29 10月, 2012 1 次提交
  9. 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
  10. 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
  11. 12 10月, 2012 3 次提交
  12. 26 9月, 2012 5 次提交
    • A
      OMAPDSS: DSI: Replace dssdev->manager with dssdev->output->manager references · eea8340a
      Archit Taneja 提交于
      With addition of output entities, a device connects to an output, and an output
      connects to overlay manager. Replace the dssdev->manager references with
      dssdev->output->manager to access the manager correctly.
      
      When enabling the DSI output, check whether the output entity connected to
      display is not NULL.
      
      In dsi_init_display(), the display won't be connected to the DSI output yet,
      that happens later in dss_recheck_connections() in the panel driver's probe. Get
      the dsidev platform device pointer using the DSI moudle number provided in the
      omap_dss_device struct.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      eea8340a
    • A
      OMAPDSS: DSI: Remove dsi_pdev_map global struct · 400e65d1
      Archit Taneja 提交于
      dsi_pdev_map is a struct visible globally in the DSI driver to get the platform
      device pointer of the DSI device corresponding to it's module ID. This was
      required because there was no clean way to derive the platform device from
      the DSI module instance number or from the connected panel.
      
      With the new output entity, it is possible to retrieve the platform device
      pointer if the omap_dss_output pointer is available. Modify the functions
      dsi_get_dsidev_from_dssdev() dsi_get_dsidev_from_id() so that they use output
      instead of dsi_pdev_map to retrieve the dsi platform device pointer.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      400e65d1
    • A
      OMAPDSS: outputs: Create and register output instances · 81b87f51
      Archit Taneja 提交于
      Add output structs to output driver's private data. Register output instances by
      having an init function in the probes of the platform device drivers for
      different outputs. The *_init_output for each output registers the output and
      fill up the output's plaform device, type and id fields. The *_uninit_output
      functions unregister the output.
      
      In the probe of each interface driver, the output entities are initialized
      before the *_probe_pdata() functions intentionally. This is done to ensure that
      the output entity is prepared before the panels connected to the output are
      registered. We need the output entities to be ready because OMAPDSS will try
      to make connections between overlays, managers, outputs and devices during the
      panel's probe.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      81b87f51
    • A
      OMAPDSS: DSI: Pass dsi platform device wherever possible · 9e7e9372
      Archit Taneja 提交于
      Many of the DSI functions receive the connected panel's omap_dss_device pointer
      as an argument. The platform device pointer is then derived via omap_dss_device
      pointers.
      
      Most of these functions don't really require omap_dss_device pointer anymore
      since we now keep copies of parameters in the driver data which were previously
      available only via omap_dss_device. Replace the arguments with platform device
      pointers for such functions.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      9e7e9372
    • T
      OMAPDSS: DSI: fix tlpx_half reg field length · e84dc1cc
      Tomi Valkeinen 提交于
      tlpx_half bit field in DSI_DSIPHY_CFG1 is [20,16], not [22,16] as
      accessed in the code currently. Fix this.
      
      The bug should not have caused any problems on OMAP3/4, as the bits
      21,22 are unused. They are used on OMAP5, though.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      e84dc1cc
  13. 24 9月, 2012 3 次提交