1. 29 Oct, 2012 16 commits
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: remove dssdev depependency from error handler · b276dd09
      Tomi Valkeinen authored
      The dispc error handler tries to "fix" issues by disabling and enabling
      panel. This is problematic, as we're trying to remove the dependency
      from omapdss to the omap_dss_devices. It's also racy, and doesn't really
      fix anything.
      
      This patch removes the use of omap_dss_device from the error handler,
      and just disables and enables the associated overlay manager. This
      should produce similar results as the previous solution, without using
      dssdev.
      
      However, the error handling is still horrible. But the problem boils
      down to one question, to which I don't have a clear answer: what to do
      when a HW error happens?
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      b276dd09
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: fix loop in error handler · 4c6c65b0
      Tomi Valkeinen authored
      The dispc's error handler has a loop inside another loop, and both use
      the same loop variable. This is clearly wrong, and this patch makes a
      new variable for the inner loop.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      4c6c65b0
    • Tomi Valkeinen's avatar
      OMAPDSS: fix DSI2 PLL clk names · 901e5fe5
      Tomi Valkeinen authored
      dss_generic_clk_source_names is missing the names for clocks from DSI2
      PLL. Add them.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      901e5fe5
    • Tomi Valkeinen's avatar
      OMAPFB: improve mode selection from EDID · 5e18e352
      Tomi Valkeinen authored
      The current omapfb code goes over all the modes found from the monitors
      EDID data, and searches for a mode that is compatible with the DSS
      hardware and has the highest x-res.
      
      While this works ok as such, it proves problematic when using DSI PLL
      for pixel clock. Calculating DSI PLL dividers is not the fastest of the
      operations, and while doing it for one mode is usually ok, doing it for
      20 modes is noticable.
      
      Also, the first mode given in the EDID data should be the native mode of
      the monitor, and thus also the best mode, so if that can be used, no
      need to look further.
      
      This patch changes the code to use the first mode that is compatible
      with the DSS hardware.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      5e18e352
    • Tomi Valkeinen's avatar
      OMAPFB: remove use of extended edid block · 2b5c0d4f
      Tomi Valkeinen authored
      It seems that using the second EDID block causes more problems than is
      of any help. The first mode in the extended block will get
      FB_MODE_IS_FIRST set, which will override the first mode from the first
      EDID block, thus making the default videomode selection not to work
      properly.
      
      This patch removes the use of the extended edid block for now.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      2b5c0d4f
    • Tomi Valkeinen's avatar
      OMAPDSS: HDMI: make hdmi pclk check more permissive · f236b892
      Tomi Valkeinen authored
      The hdmi driver tries to find the given video timings from its static
      list of timings, to find the required ID for the mode. The check tries
      to find exact match for the pixel clock, among other checks.
      
      with omapfb driver there can be some amount of error in the give pixel
      clock, as the pixel clock is converted between Hz and ps, thus the
      hdmi's check fails to find the mode.
      
      This patch makes the check more allowing, by rounding the pixel clocks
      to nearest MHz.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Ricardo Neri <ricardo.neri@ti.com>
      f236b892
    • Tomi Valkeinen's avatar
      OMAPDSS: HDMI: add 1920x1200 video mode · 7a7ce2c7
      Tomi Valkeinen authored
      Add 1920x1200 video mode to hdmi driver's static modelist.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Ricardo Neri <ricardo.neri@ti.com>
      7a7ce2c7
    • Tomi Valkeinen's avatar
      OMAPDSS: HDMI: use core power on/off with edid & detect · 4489823c
      Tomi Valkeinen authored
      This patch makes use of the hdmi_power_[on|off]_core() functions added
      in the previous patch. The functions are used when reading EDID or
      detecting if a monitor is connected.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Ricardo Neri <ricardo.neri@ti.com>
      4489823c
    • Tomi Valkeinen's avatar
      OMAPDSS: HDMI: split power_on/off to two parts · bb426fc9
      Tomi Valkeinen authored
      There's currently just one power-on function for HDMI, which enables the
      IP and the video output. When reading EDID or detecting if a monitor is
      connected, we don't need the video output.
      
      Enabling the video output for these operations is not a big problem in
      itself, but the quick enable/disable cycles caused by the operations
      seem to cause sync lost errors from time to time. Also, this makes it
      possible to read the EDID before the full video path has been set up.
      
      This patch splits the hdmi_power_on into two parts, hdmi_power_on_core
      and hdmi_power_on_full. The "full" version does what hdmi_power_on does
      currently, and hdmi_power_on_core only enables the core IP. Similar
      changes are made for power_off.
      
      Note that these don't allow the HDMI IP to be first enabled, and later
      enable the video output, but the HDMI IP will first need to be powered
      off before calling the full version. So this is rather limited
      implementation, but it fills the needs for reading EDID.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Ricardo Neri <ricardo.neri@ti.com>
      bb426fc9
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: Add IRQ enable/status helpers · 4e0397cf
      Tomi Valkeinen authored
      DISPC irqs need to be handled from the compat layer and also in the
      future by the omapdrm. To make this possible, this patchs adds a set of
      helper functions, so that the irqs can be managed without direct
      register reads/writes.
      
      The following functions are added, and all the current direct reg
      reads/writes are changed to use these.
      
      u32 dispc_read_irqstatus(void);
      void dispc_clear_irqstatus(u32 mask);
      u32 dispc_read_irqenable(void);
      void dispc_write_irqenable(u32 mask);
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      4e0397cf
    • Tomi Valkeinen's avatar
      OMAPDSS: add dispc_ovl_enabled() · 04bd8ac1
      Tomi Valkeinen authored
      Add new dispc function, dispc_ovl_enabled(). This returns if the overlay
      enable bit is set in the registers.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      04bd8ac1
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: make _enable_mgr_out public as "dispc_mgr_enable" · f1a813d3
      Tomi Valkeinen authored
      We need a low level manager-enable function for omapdrm. We have that
      function as dispc internal func, _enable_mgr_out().
      
      This patch exposes that function, and renames it to dispc_mgr_enable().
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      f1a813d3
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: rename dispc_mgr_enable/disable to _sync · 3a979f8a
      Tomi Valkeinen authored
      The current dispc_mgr_enable/disable function are blocking, and do a bit
      too much for omapdrm. We'll expose new enable & disable functions that
      will just set the bits in the registers in the following patches.
      
      This patch renames the current functions to *_sync, to make it clear
      that they are blocking, and also to free up the dispc_mgr_enable/disable
      names for these new functions.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      3a979f8a
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: use dss_feat_get_num_ovls() · 392faa0e
      Tomi Valkeinen authored
      Use dss_feat_get_num_ovls() in dispc.c instead of
      omap_dss_get_num_overlays() to remove the dependency to overlay.c. Note
      that we still have uses of omap_dss_get_num_overlays() in dispc.c, but
      these will be moved out in the future patches.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      392faa0e
    • Tomi Valkeinen's avatar
      OMAPDSS: remove initial display code from omapdss · 5d89bcc3
      Tomi Valkeinen authored
      Currently omapdss driver sets up the initial connections between
      overlays, overlay manager and a panel, based on default display
      parameter coming from the board file or via module parameters.
      
      This is unnecessary, as it's the higher level component that should
      decide what display to use and how. This patch removes the code from
      omapdss, and implements similar code to omapfb.
      
      The def_disp module parameter and the default display platform_data
      parameter are kept in omapdss, but omapdss doesn't do anything with
      them. It will just return the default display name with
      dss_get_default_display_name() call, which omapfb uses. This is done to
      keep the backward compatibility.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      5d89bcc3
    • Tomi Valkeinen's avatar
      OMAPDSS: export dss_get_def_display_name() · 2bbcce5e
      Tomi Valkeinen authored
      Export dss_get_def_display_name() with the name of
      omapdss_get_def_display_name() so that omapfb can use it after the next
      patch which moves default display handling to omapfb.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      2bbcce5e
  2. 24 Oct, 2012 4 commits
  3. 18 Oct, 2012 11 commits
  4. 17 Oct, 2012 9 commits