On Mon, Feb 8, 2010 at 5:57 PM, Tomi Valkeinen <tomi.valkeinen@xxxxxxxxx> wrote: > 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 Tested those along with the other series, seems to work fine on pandora too. Panel callbacks like set_mirror also work now, thanks. Tested-by: Grazvydas Ignotas <notasas@xxxxxxxxx> > > 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 > -- 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