Hi, Here's are the first sets of patches targeting towards enabling DT for DSS and changing the DSS device model to be more versatile. The exact division of the sets of patches is still a bit open, and some splitting up for arch/driver changes is needed, but most likely there will be at least the following major sets, each based on the former one: - base, containing cleanups and changes that do not yet really bring bigger new features - dev-model, implements the new DSS device model, including new panel drivers - dt, adds DSS DT support (not at all ready yet, although works for a few boards) The patches can be found from the following branches: git://gitorious.org/linux-omap-dss2/linux.git work/dss-dev-model-base git://gitorious.org/linux-omap-dss2/linux.git work/dss-dev-model git://gitorious.org/linux-omap-dss2/linux.git work/dss-dev-model-dt The set you are looking at is the "dev-model" set. The "dev-model" implements a new model for display drivers. The model is very much in the direction of CDF (Common Display Framework) as has been discussed on the mailing lists. However, it's still OMAP specific, and, for example, the display ops have not been improved but they were just copied from the old DSS API to make the conversion simpler. The first main change with the "dev-model" is that display devices/drivers are no longer special omapdss device/driver types, but they are (usually) devices/drivers of their control bus. This means that many devices/drivers are platform devices/drivers, but some are i2c or spi devices/drivers. The other main change is the use of "ops" instead of direct function calls. This allows us to create "chains" of display entities, which allows us to (finally) create proper drivers for external encoders. As an example, a board with an external DSI-to-LVDS encoder chip and an LVDS panel was previously modelled with a single display driver, handling both the encoder and the panel. Now we can have separate drivers for the encoder and for the panel. Note that to keep the old drivers and board files working, the old drivers and the omapdss support needed for those is not removed yet. This makes the code quite messy in a few places. The old code can be removed after all the panels and board files have been converted. In this set, the following board files have been converted so far: - OMAP4 Blaze - OMAP4 Panda - Overo - Beagle - RX51 (not tested) The panel drivers needed for the above have been converted, but there's still a bunch of panel drivers not converted. Also, DSS RFBI driver has not been converted. The "dev-model" set brings back the support to have multiple panel devices connected to the same video output, of which only one can be enabled at a time. For example, DVI and a panel connected to OMAP's DPI output. Overo board has an added difficulty to support the above: Overo board file adds two panel devices, lcd43 and lcd35 (in reality those panels are not attached at the same time, as they are located in add-on boards). Both panels have the same GPIO used for reset. This causes a problem as when the panel drivers are loaded, both drivers try to acquire the same GPIO, and the latter one fails. To solve the problem, I added kernel boot command line parsing to Overo's board file. The code looks for "default display" parameter for omapdss, and uses that to decide which panel device to add. Note that the above is not Overo specific, but as far as I know, Overo is the only board having such a setup. Tomi Tomi Valkeinen (27): OMAPDSS: public omapdss_register_output() OMAPDSS: modify get/find functions to go through the device chain OMAPDSS: add platform data structs for new panel drivers ARM: OMAP: dss-common: use new display drivers ARM: OMAP: overo: use new display drivers ARM: OMAP: rx51: use new display drivers ARM: OMAP: beagle: use new display drivers OMAPDSS: add OMAP_DISPLAY_TYPE_DVI drm/omap: DVI connector fix OMAPDSS: DPI: Add ops OMAPDSS: SDI: Add ops OMAPDSS: DVI: Add ops OMAPDSS: AnalogTV: Add ops OMAPDSS: HDMI: Add ops OMAPDSS: DSI: Add ops OMAPDSS: Add new TFP410 Encoder driver OMAPDSS: Add new TPD12S015 Encoder driver OMAPDSS: Add new DVI Connector driver OMAPDSS: Add new HDMI Connector driver OMAPDSS: Add new Analog TV Connector driver OMAPDSS: Add new simple DPI panel driver OMAPDSS: Add new DSI Command Mode panel driver OMAPDSS: Add Sony ACX565AKM panel driver OMAPDSS: Add LG.Philips LB035Q02 panel driver ARM: OMAP: fix dsi regulator names ARM: OMAP: add vdds_dsi supply for dpi.0 ARM: OMAP: add vdds_sdi supply for sdi.0 arch/arm/mach-omap2/board-cm-t35.c | 3 +- arch/arm/mach-omap2/board-devkit8000.c | 1 + arch/arm/mach-omap2/board-ldp.c | 3 +- arch/arm/mach-omap2/board-omap3beagle.c | 56 +- arch/arm/mach-omap2/board-omap3pandora.c | 1 + arch/arm/mach-omap2/board-overo.c | 160 ++- arch/arm/mach-omap2/board-rx51-peripherals.c | 13 + arch/arm/mach-omap2/board-rx51-video.c | 35 +- arch/arm/mach-omap2/dss-common.c | 185 +-- arch/arm/mach-omap2/twl-common.c | 1 + drivers/gpu/drm/omapdrm/omap_drv.c | 6 +- drivers/video/omap2/Kconfig | 1 + drivers/video/omap2/Makefile | 1 + drivers/video/omap2/displays-new/Kconfig | 52 + drivers/video/omap2/displays-new/Makefile | 9 + .../video/omap2/displays-new/connector-analog-tv.c | 265 ++++ drivers/video/omap2/displays-new/connector-dvi.c | 351 +++++ drivers/video/omap2/displays-new/connector-hdmi.c | 375 ++++++ drivers/video/omap2/displays-new/encoder-tfp410.c | 270 ++++ .../video/omap2/displays-new/encoder-tpd12s015.c | 395 ++++++ drivers/video/omap2/displays-new/panel-dpi.c | 270 ++++ drivers/video/omap2/displays-new/panel-dsi-cm.c | 1336 ++++++++++++++++++++ .../omap2/displays-new/panel-lgphilips-lb035q02.c | 358 ++++++ .../omap2/displays-new/panel-sony-acx565akm.c | 864 +++++++++++++ drivers/video/omap2/dss/apply.c | 14 +- drivers/video/omap2/dss/display.c | 1 + drivers/video/omap2/dss/dpi.c | 74 +- drivers/video/omap2/dss/dsi.c | 97 +- drivers/video/omap2/dss/dss.h | 4 - drivers/video/omap2/dss/hdmi.c | 252 +++- drivers/video/omap2/dss/output.c | 15 +- drivers/video/omap2/dss/rfbi.c | 4 +- drivers/video/omap2/dss/sdi.c | 82 +- drivers/video/omap2/dss/venc.c | 76 +- include/video/omap-panel-data.h | 150 +++ include/video/omapdss.h | 195 ++- 36 files changed, 5758 insertions(+), 217 deletions(-) create mode 100644 drivers/video/omap2/displays-new/Kconfig create mode 100644 drivers/video/omap2/displays-new/Makefile create mode 100644 drivers/video/omap2/displays-new/connector-analog-tv.c create mode 100644 drivers/video/omap2/displays-new/connector-dvi.c create mode 100644 drivers/video/omap2/displays-new/connector-hdmi.c create mode 100644 drivers/video/omap2/displays-new/encoder-tfp410.c create mode 100644 drivers/video/omap2/displays-new/encoder-tpd12s015.c create mode 100644 drivers/video/omap2/displays-new/panel-dpi.c create mode 100644 drivers/video/omap2/displays-new/panel-dsi-cm.c create mode 100644 drivers/video/omap2/displays-new/panel-lgphilips-lb035q02.c create mode 100644 drivers/video/omap2/displays-new/panel-sony-acx565akm.c -- 1.8.1.2 -- 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