[PATCH 00/17] OMAP DSS2 model restructuring

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here are a bunch of patches that change the DSS2 driver's driver model a bit.
This change was triggered by trying to support new hardware, and realizing that
the current model just won't work.

Currently the omapdss driver is in control of most aspects of the DSS, and
omapdss calls necessary functions in display drivers. I made it that way to
keep the display drivers simple, and I, naively, thought that it will work
because the display panels are using standard bus interfaces and thus will be
very similar. I was so wrong =).

This patch set moves the control to the display driver. The display driver then
calls omapdss functions to perform whatever deed is needed at that time. This
will make display drivers slightly more complex, but it will be easier to
control the hardware properly with strange or complex display devices.

As a simple example, let's look at the update function.

Currently user space app issues OMAPFB_UPDATE_WINDOW ioctl, and omapfb driver
then calls update() in corresponding dss device struct, which goes to omapdss.
omapdss will configure the update, calling the panel driver if needed.

After these patches, omapfb will call update() in the panel driver. The panel
driver will then call functions in omapdss to setup the update, start the
update, and the panel driver will eventually get a callback informing that the
update is done.

These patches are still under work, but my basic tests on 3430SDP board seems
to work ok.

The patches can also be found from
http://gitorious.org/linux-omap-dss2/linux work branch

Tomi Valkeinen (17):
  OMAP: DSS2: DSI: change DSI bus_lock to semaphore
  OMAP: DSS2: DSI: remove auto-update perf measurement
  OMAP: DSS2: move run_test()
  OMAP: DSS2: move memory_read()
  OMAP: DSS2: move set/get_mirror()
  OMAP: DSS2: move get/set_rotate()
  OMAP: DSS2: move wait_vsync()
  OMAP: DSS2: move enable/disable_channel to overlay manager
  OMAP: DSS2: move get_resolution()
  OMAP: DSS2: move get_recommended_bpp()
  OMAP: DSS2: move enable/get_te()
  OMAP: DSS2: move set/get_update_mode()
  OMAP: DSS2: move update() and sync()
  OMAP: DSS2: move enable/disable/suspend/resume
  OMAP: DSS2: move set/get_wss()
  OMAP: DSS2: move timing functions
  OMAP: DSS2: DSI: Add VC support for update

 arch/arm/plat-omap/include/plat/display.h          |  108 ++--
 drivers/video/omap2/displays/panel-generic.c       |   56 ++-
 .../video/omap2/displays/panel-sharp-lq043t1dg01.c |   67 ++-
 .../video/omap2/displays/panel-sharp-ls037v7dw01.c |   42 +-
 drivers/video/omap2/displays/panel-taal.c          |  221 +++++--
 .../video/omap2/displays/panel-toppoly-tdo35s.c    |   56 ++-
 .../video/omap2/displays/panel-tpo-td043mtea1.c    |   61 ++-
 drivers/video/omap2/dss/core.c                     |    7 +
 drivers/video/omap2/dss/dispc.c                    |   36 +-
 drivers/video/omap2/dss/display.c                  |   87 +--
 drivers/video/omap2/dss/dpi.c                      |  149 +----
 drivers/video/omap2/dss/dsi.c                      |  829 ++++----------------
 drivers/video/omap2/dss/dss.h                      |    4 +-
 drivers/video/omap2/dss/manager.c                  |   48 +-
 drivers/video/omap2/dss/overlay.c                  |    2 +-
 drivers/video/omap2/dss/rfbi.c                     |  321 +-------
 drivers/video/omap2/dss/sdi.c                      |  115 +---
 drivers/video/omap2/dss/venc.c                     |  294 +++----
 drivers/video/omap2/omapfb/omapfb-ioctl.c          |   44 +-
 drivers/video/omap2/omapfb/omapfb-main.c           |   89 ++-
 drivers/video/omap2/omapfb/omapfb.h                |    6 +
 21 files changed, 1004 insertions(+), 1638 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux