1. 13 Dec, 2012 6 commits
    • Tomi Valkeinen's avatar
      Merge tag 'omapdss-for-3.8' of git://gitorious.org/linux-omap-dss2/linux into for-linus · e7f5c9a1
      Tomi Valkeinen authored
      OMAPDSS changes for 3.8, including:
      - use dynanic debug prints
      - OMAP platform dependency removals
      - Creation of compat-layer, helping us to improve omapdrm
      - Misc cleanups, aiming to make omadss more in line with the upcoming common
        display framework
      
      * tag 'omapdss-for-3.8' of git://gitorious.org/linux-omap-dss2/linux: (140 commits)
        OMAPDSS: fix TV-out issue with DSI PLL
        Revert "OMAPFB: simplify locking"
        OMAPFB: remove silly loop in fb2display()
        OMAPFB: fix error handling in omapfb_find_best_mode()
        OMAPFB: use devm_kzalloc to allocate omapfb2_device
        OMAPDSS: DISPC: remove dispc fck uses
        OMAPDSS: DISPC: get dss clock rate from dss driver
        OMAPDSS: use omapdss_compat_init() in other drivers
        OMAPDSS: export dispc functions
        OMAPDSS: export dss_feat functions
        OMAPDSS: export dss_mgr_ops functions
        OMAPDSS: separate compat files in the Makefile
        OMAPDSS: move display sysfs init to compat layer
        OMAPDSS: DPI: use dispc's check_timings
        OMAPDSS: DISPC: add dispc_ovl_check()
        OMAPDSS: move irq handling to dispc-compat
        OMAPDSS: move omap_dispc_wait_for_irq_interruptible_timeout to dispc-compat.c
        OMAPDSS: move blocking mgr enable/disable to compat layer
        OMAPDSS: manage framedone irq with mgr ops
        OMAPDSS: add manager ops
        ...
      e7f5c9a1
    • Tomi Valkeinen's avatar
      OMAPDSS: fix TV-out issue with DSI PLL · bd0f5cc3
      Tomi Valkeinen authored
      Commit 0e8276ef (OMAPDSS: DPI: always
      use DSI PLL if available) made dpi.c use DSI PLL for its clock. This
      works fine, for DPI, but has a nasty side effect on OMAP3:
      
      On OMAP3 the same clock is used for DISPC fclk and LCD output. Thus,
      after the above patch, DSI PLL is used for DISPC and LCD output. If
      TV-out is used, the TV-out needs DISPC. And if DPI is turned off, the
      DSI PLL is also turned off, disabling DISPC.
      
      For this to work, we'd need proper DSS internal clock handling, with
      refcounts, which is a non-trivial project.
      
      This patch fixes the issue for now by disabling the use of DSI PLL for
      DPI on OMAP3.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      bd0f5cc3
    • Tomi Valkeinen's avatar
      Revert "OMAPFB: simplify locking" · 3ed37d9a
      Tomi Valkeinen authored
      This reverts commit b41deecb.
      
      The simpler locking causes huge latencies when two processes use the
      omapfb, even if they use different framebuffers.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      3ed37d9a
    • Tomi Valkeinen's avatar
      OMAPFB: remove silly loop in fb2display() · c7e1eae5
      Tomi Valkeinen authored
      fb2display() has a for loop which always returns at the first iteration.
      Replace the loop with a simple if.
      
      This removes the smatch warning:
      
      drivers/video/omap2/omapfb/omapfb.h:153 fb2display() info: loop could be
      replaced with if statement.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      c7e1eae5
    • Tomi Valkeinen's avatar
      OMAPFB: fix error handling in omapfb_find_best_mode() · fa0c5e71
      Tomi Valkeinen authored
      omapfb_find_best_mode() doesn't check for the return value of kmalloc.
      Fix this. This also removes the smatch warning:
      
      drivers/video/omap2/omapfb/omapfb-main.c:2256 omapfb_find_best_mode()
      error: potential null dereference 'specs'.  (kzalloc returns null)
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      fa0c5e71
    • Tomi Valkeinen's avatar
      OMAPFB: use devm_kzalloc to allocate omapfb2_device · 057eeaee
      Tomi Valkeinen authored
      Use devm_kzalloc to allocate omapfb2_device. This fixes possible memory
      leak:
      
      drivers/video/omap2/omapfb/omapfb-main.c:2553 omapfb_probe() warn:
      possible memory leak of 'fbdev'
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      057eeaee
  2. 12 Dec, 2012 2 commits
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: remove dispc fck uses · 8105c94b
      Tomi Valkeinen authored
      The previous patch changes dispc to get the dispc fck rate from dss core
      driver. This was the only use of the dispc fck in dispc, and thus we can
      now remove the clock handling.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      8105c94b
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: get dss clock rate from dss driver · 5aaee69d
      Tomi Valkeinen authored
      Dispc currently gets dispc's fck with clk_get() and uses clk_get_rate()
      to get the rate for scaling calculations. This causes a problem with
      common clock framework, as omapdss uses the dispc functions inside a
      spinlock, and common clock framework uses a mutex in clk_get_rate().
      
      Looking at the DSS clock tree, the above use of the dispc fck is not
      quite correct. The DSS_FCLK from PRCM goes to DSS core block, which has
      a mux to select the clock for DISPC from various options, so the current
      use of dispc fck bypasses that. Fortunately we never change the dispc
      clock mux for now.
      
      To fix the issue with clk_get_rate(), this patch caches the dss clock
      rate in dss.c when it is set. Dispc will then ask for the clock rate
      from dss. While this is not very elegant, it does fix the issue, and
      it's not totally wrong when considering that the dispc fck actually
      comes via dss.
      
      In the future we should probably look into common clock framework and
      see if that could be used to represent the DSS clock tree properly.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      5aaee69d
  3. 10 Dec, 2012 3 commits
    • Tomi Valkeinen's avatar
      Merge omapdss compat layer work · d10ecc58
      Tomi Valkeinen authored
      We have two separate, exclusive, users of omapdss: 1) omapfb + omap_vout and 2)
      omapdrm. Because omapfb and omap_vout are independent drivers, we've built
      layers in omapdss to manage the two simultaneous callers. These layers are not
      needed for omapdrm, as omapdrm is the sole user of omapdss, and these layers in
      fact only create trouble for omapdrm.
      
      The simple option to improve omapdrm situation would be to copy the omapdss
      code for omapdrm. We are trying to avoid this, as omapdss and the panel drivers
      are quite a lot of code together, and most of the code would be used without
      change.
      
      Thus this series helps the situation by moving the omapdss code required by
      omapfb + omap_vout to separate files, creating a distinct layer used only by
      omapfb + omap_vout. We call this layer "compat layer". This compat layer then
      uses the core omapdss driver to operate the hardware. omapdrm will use the core
      omapdss directly, without any layers in between.
      
      After this series, omapfb, omap_vout and omapdrm can all be compiled at the
      same time. Obviously omapdrm and omapfb+omap_vout cannot be run at the same
      time (the first one to start will "win"), so compiling them at the same time is
      only sensible as modules for testing purposes. Normal users should only compile
      one of those.
      
      This series does not make omapdrm use the core omapdss API, that will happen in
      a separate series for omapdrm.
      d10ecc58
    • Sachin Kamat's avatar
      drivers/video/console/softcursor.c: remove redundant NULL check before kfree() · a240af2e
      Sachin Kamat authored
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      a240af2e
    • Maxime Ripard's avatar
      drivers/video: add support for the Solomon SSD1307 OLED Controller · a2ed00da
      Maxime Ripard authored
      Add support for the Solomon SSD1307 OLED controller found on the
      Crystalfontz CFA10036 board.
      
      This controller can drive a display with a resolution up to 128x39 and can
      operate over I2C or SPI.
      
      The current driver has only been tested on the CFA-10036, that is using
      this controller over I2C to driver a 96x16 OLED screen.
      
      [akpm@linux-foundation.org: checkpatch fixes]
      Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
      Cc: Brian Lilly <brian@crystalfontz.com>
      Cc: Greg KH <gregkh@linux-foundation.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: Thomas Petazzoni <thomas@free-electrons.com>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      a2ed00da
  4. 07 Dec, 2012 23 commits
  5. 04 Dec, 2012 1 commit
  6. 30 Nov, 2012 1 commit
  7. 29 Nov, 2012 4 commits
    • Tomi Valkeinen's avatar
      29aaf90c
    • Tomi Valkeinen's avatar
      [media] omap_vout: use omapdss's version instead of cpu_is_* · 950e2fb4
      Tomi Valkeinen authored
      cpu_is_* class functions create a dependency to OMAP platform code.
      omapdss driver, which omap_vout uses, exposes a function to get the
      version of the DSS hardware.
      
      To remove the dependency to OMAP platform code this patch changes
      omap_vout to use the omapdss version. For most of the checks, the ones
      dealing with DSS differences, this is actually more correct than using
      cpu_is_* functions. For the check whether VRFB is available or not this
      is not really correct, but still works fine.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Tested-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Acked-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      950e2fb4
    • Archit Taneja's avatar
      OMAPDSS: Use only "omapdss_dss" platform device to get context lost count · bdb736ab
      Archit Taneja authored
      When enabling a hwmod, omap_hwmod refers to the register mentioned in the
      hwmod struct's member 'prcm.omap4.context_offs' to see whether context was
      lost or not. It increments the context lost count for the hwmod and then clears
      the register.
      
      All the DSS hwmods have the same register(RM_DSS_DSS_CONTEXT) as context_offs.
      When DSS is enabled, the first hwmod to be enabled is the "dss_core" hwmod since
      it's corresponding platform device is the parent platform device("omapdss_dss").
      The dss_core hwmod updates it's context lost count correctly and clears the
      register. When the hwmods corresponding to the children platform devices are
      enabled, they see that the register is clear, and don't increment their context
      lost count. Therefore, all the children platform devices never report a loss in
      context.
      
      The DISPC driver currently gets the context lost count for DSS power domain from
      it's corresponding platform device instance("omapdss_dispc"). The DISPC platform
      device is one of the child devices, and it's corresponding hwmod("dss_dispc")
      doesn't report the context lost count correctly.
      
      Modify dss_get_ctx_loss_count() such that it always takes the "omapdss_dss"
      platform device as it's input, move the function to dss.c so that it has access
      to that platform device.
      Signed-off-by: default avatarArchit Taneja <archit@ti.com>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      bdb736ab
    • Tomi Valkeinen's avatar
      Merge branch 'exynos-dp-next' of git://github.com/jingoo/linux into for-linus · 473af20f
      Tomi Valkeinen authored
      Exynos DP changes for the 3.8 merge window.
      
      - Device Tree support for Samsung Exynos DP
      - SW Link training is cleaned up.
      - HPD interrupt is supported.
      
      * 'exynos-dp-next' of git://github.com/jingoo/linux:
        video: exynos_dp: remove redundant parameters
        video: exynos_dp: Fix incorrect setting for INT_CTL
        video: exynos_dp: Reset and initialize DP before requesting irq
        video: exynos_dp: Enable hotplug interrupts
        video: exynos_dp: Move hotplug into a workqueue
        video: exynos_dp: Remove sink control to D0
        video: exynos_dp: Fix bug when checking dp->irq
        video: exynos_dp: Improve EDID error handling
        video: exynos_dp: Get pll lock before pattern set
        video: exynos_dp: Clean up SW link training
        video: exynos_dp: Check DPCD return codes
        video: exynos_dp: device tree documentation
        video: exynos_dp: Add device tree support to DP driver
      473af20f