1. 23 4月, 2012 1 次提交
    • T
      OMAPDSS: Ensure OPP100 when DSS is operational · a8081d31
      Tomi Valkeinen 提交于
      Most of the DSS clocks have restrictions on their frequency based on the
      OPP in use. For example, maximum frequency for a clock may be 180MHz in
      OPP100, but 90MHz in OPP50. This means that when a high enough pixel
      clock or function clock is required, we need to use OPP100.
      
      However, there's currently no way in the PM framework to make that kind
      of request. The closest we get is to ask for very high bus throughput
      from the PM framework, which should effectively force OPP100.
      
      This patch is a simple version for handling the problem. Instead of
      asking for OPP100 only when needed, this patch asks for OPP100 whenever
      DSS is active. This obviously is not an optimal solution for cases with
      small displays where OPP50 would work just fine. However, a proper
      solution is a complex one, and this patch is a short term solution for
      the problem.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Acked-by: NKevin Hilman <khilman@ti.com>
      a8081d31
  2. 25 2月, 2012 1 次提交
  3. 21 2月, 2012 1 次提交
    • T
      OMAPDSS: cleanup probe functions · cd3b3449
      Tomi Valkeinen 提交于
      Now that dss is using devm_ functions for allocation in probe functions,
      small reordering of the allocations allows us to clean up the probe
      functions more.
      
      This patch moves "unmanaged" allocations after the managed ones, and
      uses plain returns instead of gotos where possible. This lets us remove
      a bunch of goto labels, simplifying the probe's error handling.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      cd3b3449
  4. 26 1月, 2012 1 次提交
    • T
      OMAPDSS: use sync versions of pm_runtime_put · 0eaf9f52
      Tomi Valkeinen 提交于
      omapdss doesn't work properly on system suspend. The problem seems to be
      the fact that omapdss uses pm_runtime_put() functions when turning off
      the hardware, and when system suspend is in process only sync versions
      are allowed.
      
      Using non-sync versions normally and sync versions when suspending would
      need rather ugly hacks to convey the information of
      suspending/not-suspending to different functions. Optimally the driver
      wouldn't even need to care about this, and the PM layer would handle
      syncing when suspend is in process.
      
      This patch changes all omapdss's pm_runtime_put calls to
      pm_runtime_put_sync. This fixes the suspend problem, and probably the
      performance penalty of always using sync versions is negligible.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NKevin Hilman <khilman@ti.com>
      0eaf9f52
  5. 25 1月, 2012 1 次提交
  6. 01 11月, 2011 1 次提交
  7. 30 9月, 2011 1 次提交
  8. 20 9月, 2011 2 次提交
  9. 01 8月, 2011 1 次提交
    • T
      HACK: OMAP: DSS2: clk hack for OMAP2/3 · 9ede365a
      Tomi Valkeinen 提交于
      The HWMOD data for OMAP2 and 3 are currently not up to date regarding
      DSS (OMAP4 HWMOD data is fine). This patch makes the DSS driver to get
      the opt clocks needed for OMAP2/3 with the old clock names, thus
      allowing DSS driver to use runtime PM.
      
      The HWMOD databases should be fixes ASAP, and this patch can be reverted
      after that.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      9ede365a
  10. 25 7月, 2011 8 次提交
  11. 01 7月, 2011 1 次提交
  12. 13 5月, 2011 2 次提交
    • A
      OMAP4: DSS2: DSI: Changes for DSI2 on OMAP4 · 5a8b572d
      Archit Taneja 提交于
      Introduce DSI2 PLL clock sources needed by LCD2 channel and DSI2 Protocol
      engine and DISPC Functional clock. Do the following:
      
      - Modify dss_get_dsi_clk_source() and dss_select_dsi_clk_source() to take the
        dsi module number as an argument.
      - Create debugfs files for dsi2, split the corresponding debugfs functions.
      - Allow DPI to use these new clock sources.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5a8b572d
    • A
      OMAP: DSS2: Pass platform_device as an argument in dsi functions · a72b64b9
      Archit Taneja 提交于
      The DSI interface is represented as a platform device, using the DSI platform
      driver(dsi.c). The current DSI driver design is capable of running only one
      instance of a DSI device. On OMAP4, there are 2 very similar DSI modules which
      can be represented as instances of "omapdss_dsi" platform device.
      
      Add member "module" in "dssdev.phy.dsi" that tells us which DSI module's lanes
      the panel is connected to. Modify dsi.c functions to take the device's
      platform_device struct pointer, provide functions dsi_get_dsidev_from_dssdev()
      and dsi_get_dsidev_from_id() take the panel's omap_dss_device and module number
      respectively, and return the platform_device pointer. Currently, the dsi struct
      is declared globally and is accessed when dsi data is needed. The new pdev
      argument will be used later to provide the platform device's dsi related data.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      a72b64b9
  13. 11 5月, 2011 6 次提交
  14. 15 4月, 2011 1 次提交
  15. 18 3月, 2011 2 次提交
    • M
      OMAP: DSS2: Implement OMAP4 DSS fclk support · 2de11086
      Murthy, Raghuveer 提交于
      Add dss.dpll4_m4_ck (DSS FCLK) initialization for OMAP4. This is used
      to compute the pixel clock for DPI interface and also to reconfigure
      the DSS FCLK to the desired rate, corresponding to the rate computed
      for pixel clock.
      
      Adding these cpu_is_44xx() checks are meant to be temporary, until a
      cleaner implementation to manage these checks are added. Currently this
      is needed to get DVI display running on OMAP4 PandaBoard
      Signed-off-by: NRaghuveer Murthy <raghuveer.murthy@ti.com>
      [tomi.valkeinen@ti.com: minor changes due to conflicts]
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      2de11086
    • T
      OMAP: DSS2: Clean up for dpll4_m4_ck handling · 0acf659f
      Tomi Valkeinen 提交于
      OMAP2 does not have dpll4_m4_ck source clock for dss functional clock,
      but later OMAPs do. Currently we check for cpu type in multiple places
      to find out if dpll4_m4_ck is available.
      
      This patch cleans up dss.c by using the fact that dss.dpll4_m4_ck
      pointer is NULL on OMAP2. This allows us to remove many of the cpu
      checks.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      0acf659f
  16. 16 3月, 2011 1 次提交
  17. 15 3月, 2011 2 次提交
  18. 11 3月, 2011 7 次提交
    • T
      OMAP4: DSS2: Clock source changes for OMAP4 · ea75159e
      Taneja, Archit 提交于
      On OMAP3, the pixel clock for the LCD manager was derived through DISPC_FCLK as:
      
      Lcd Pixel clock = DISPC_FCLK / lcd / pcd
      
      Where lcd and pcd are divisors in the DISPC_DIVISOR register.
      
      On OMAP4, the pixel clocks for LCD1 and LCD2 managers are derived from 2 new
      clocks named LCD1_CLK and LCD2_CLK. The pixel clocks are calculated as:
      
      Lcd_o Pixel clock = LCDo_CLK / lcdo /pcdo, o = 1, 2
      
      Where lcdo and pcdo registers are divisors in DISPC_DIVISORo registers.
      
      LCD1_CLK and LCD2_CLK can have DSS_FCLK, and the M4 divider clocks of DSI1 PLL
      and DSI2 PLL as clock sources respectively. Introduce functions to select and
      get the clock source for these new clocks. Modify DISPC functions get the
      correct lck and pck rates based on the clock source of these clocks. Since
      OMAP2/3 don't have these clocks, force OMAP2/3 to always have the LCD_CLK source
      as DSS_CLK_SRC_FCK by introducing a dss feature.
      
      Introduce clock source names for OMAP4 and some register field changes in
      DSS_CTRL on OMAP4.
      
      Currently, LCD2_CLK can only have DSS_FCLK as its clock source as DSI2 PLL
      functionality hasn't been introduced yet. BUG for now if DSI2 PLL is selected as
      clock.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      ea75159e
    • T
      OMAP2PLUS: DSS2: Cleanup clock source related code · 66534e8e
      Taneja, Archit 提交于
      Clean up some of the DSS functions which select/get clock sources, use switch
      to select the clock source members since more clock sources will be introduced
      later on.
      
      Remove the use of macro CONFIG_OMAP2_DSS_DSI in dispc_fclk_rate, use a dummy
      inline for function for dsi_get_pll_hsdiv_dispc_rate() instead for code clarity.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      66534e8e
    • T
      HACK: OMAP: DSS2: add delay after enabling clocks · 85604b0a
      Tomi Valkeinen 提交于
      On omap4 the registers may not be accessible right after enabling the
      clocks. At some point this will be handled by pm_runtime, but, for the
      time begin, adding a small delay after clk_enable() should make things
      work.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      85604b0a
    • T
      OMAP: DSS2: Move DPI & SDI init into DSS plat driver · 587b5e82
      Tomi Valkeinen 提交于
      DPI and SDI are different from the other interfaces as they are not
      hwmods and there is not platform driver for them. They could be said to
      be a part of DSS or DISPC modules, although it's not a clear definition.
      
      This patch moves DPI and SDI initialization into DSS platform driver,
      making the code more consistent: omap_dss_probe() only initializes
      platform drivers now.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      587b5e82
    • T
      OMAP: DSS2: Remove FB_OMAP_BOOTLOADER_INIT support · 42c9dee8
      Tomi Valkeinen 提交于
      FB_OMAP_BOOTLOADER_INIT does not work, and it was only partially
      implemented for SDI.
      
      This patch removes support for FB_OMAP_BOOTLOADER_INIT to clean up the
      code and to remove any assumptions that FB_OMAP_BOOTLOADER_INIT would
      work.
      
      Proper implementation is much more complex, requiring early boot time
      register and clock handling to keep the DSS running.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      42c9dee8
    • A
      OMAP2PLUS: DSS2: DSI: Generalize DSI PLL Clock Naming · 1bb47835
      Archit Taneja 提交于
      DSI PLL output clock names have been made more generic. The clock name
      describes what the source of the clock and what clock is used for. Some of
      DSI PLL parameters like dividers and DSI PLL source have also been made more
      generic.
      
      dsi1_pll_fclk and dsi2_pll_fclk have been changed as dsi_pll_hsdiv_dispc_clk
      and dsi_pll_hsdiv_dsi_clk respectively. Also, the hsdividers are now named
      regm_dispc and regm_dsi instead of regm3 and regm4.
      
      Functions and macros named on the basis of these clock names have also been
      made generic.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      1bb47835
    • A
      OMAP2PLUS: DSS2: Use dss features to get clock source names of current OMAP · 067a57e4
      Archit Taneja 提交于
      Clock source names vary across OMAP2/3 and OMAP4, the clock source enum
      names have been made generic in the driver, but for purposes of debugging
      and dumping clock sources, it is better to preserve the actual TRM name of
      the clock.
      
      Introduce a dss feature function 'dss_feat_get_clk_source_name()' which
      returns a string with the TRM clock name for the current OMAP in use. The OMAP
      specific name is printed along the generic name within brackets.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      067a57e4