1. 03 3月, 2016 11 次提交
  2. 29 12月, 2015 3 次提交
  3. 17 6月, 2015 2 次提交
    • T
      OMAPDSS: componentize omapdss · 736e60dd
      Tomi Valkeinen 提交于
      omapdss kernel module contains drivers for multiple devices, one for
      each DSS submodule. The probing we have at the moment is a mess, and
      doesn't give us proper deferred probing nor ensure that all the devices
      are probed before omapfb/omapdrm start using omapdss.
      
      This patch solves the mess by using the component system for DSS
      submodules.
      
      The changes to all DSS submodules (dispc, dpi, dsi, hdmi4/5, rfbi, sdi,
      venc) are the same: probe & remove functions are changed to bind &
      unbind, and new probe & remove functions are added which call
      component_add/del.
      
      The dss_core driver (dss.c) acts as a component master. Adding and
      matching the components is simple: all dss device's child devices are
      added as components.
      
      However, we do have some dependencies between the drivers. The order in
      which they should be probed is reflected by the list in core.c
      (dss_output_drv_reg_funcs). The drivers are registered in that order,
      which causes the components to be added in that order, which makes the
      components to be bound in that order. This feels a bit fragile, and we
      probably should improve the code to manage binds in random order.
      However, for now, this works fine.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      736e60dd
    • T
      OMAPDSS: remove uses of __init/__exit · ede92695
      Tomi Valkeinen 提交于
      The following patches will add component handling to omapdss, improving
      the handling of deferred probing. However, at the moment we're using
      quite a lot of __inits and __exits in the driver, which prevent normal
      dynamic probing and removal.
      
      This patch removes most of the uses of __init and __exit, so that we can
      register drivers after module init, and so that we can unregister
      drivers even if the module is built-in.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      ede92695
  4. 26 2月, 2015 1 次提交
    • T
      OMAPDSS: DISPC: remove OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES · 7a16360d
      Tomi Valkeinen 提交于
      DISPC can drive data lines either on rising or falling pixel clock edge,
      which can be configured by the user.
      
      Sync lines can also be driven on rising or falling pixel clock edge, but
      additionally the HW can be configured to drive the sync lines on
      opposite clock edge from the data lines.
      
      This opposite edge setting does not make any sense, as the same effect
      can be achieved by just setting the sync lines to be driven on the other
      edge compared to the data lines. It feels like some kind of backward
      compatibility option, even if all DSS versions seem to have the same
      implementation.
      
      To simplify the code and configuration of the signals, and to make the
      dispc timings more compatible with what is used on other platforms,
      let's just remove the whole opposite-edge support.
      
      The drivers that used OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES setting are
      changed so that they use the opposite setting from the data edge.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      7a16360d
  5. 04 2月, 2015 1 次提交
  6. 12 11月, 2014 12 次提交
  7. 22 10月, 2014 2 次提交
  8. 20 10月, 2014 1 次提交
  9. 26 8月, 2014 1 次提交
  10. 08 8月, 2014 1 次提交
  11. 09 5月, 2014 2 次提交
  12. 07 5月, 2014 1 次提交
  13. 17 4月, 2014 1 次提交
  14. 14 4月, 2014 1 次提交
    • T
      OMAPDSS: fix shared irq handlers · 0925afc9
      Tomi Valkeinen 提交于
      DSS uses shared irq handlers for DISPC and DSI, because on OMAP3, the
      DISPC and DSI share the same irq line.
      
      However, the irq handlers presume that the hardware is enabled, which,
      in theory, may not be the case with shared irq handlers. So if an
      interrupt happens while the DISPC/DSI is off, the kernel will halt as
      the irq handler tries to access the DISPC/DSI registers.
      
      In practice that should never happen, as both DSI and DISPC are in the
      same power domain. So if there's an IRQ for one of them, the other is
      also enabled. However, if CONFIG_DEBUG_SHIRQ is enabled, the kernel will
      generate a spurious IRQ, which then causes the problem.
      
      This patch adds an is_enabled field for both DISPC and DSI, which is
      used to track if the HW is enabled. For DISPC the code is slightly more
      complex, as the users of DISPC can register the interrupt handler, and
      we want to hide the is_enabled handling from the users of DISPC.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      0925afc9