OMAP2,3: hwmod DSS Adaptation
Get series with b4
b4 am [email protected]Versions newest first
- v10 Latest0 of 18 patches 0 repliesNew
Patches in v10 No applies recorded yet
None of the 18 patches the cover letter announces are in this archive.
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v10 yet.
Cover letter [PATCH v10 00/18] OMAP2,3: hwmod DSS Adaptation
Quoted 3 lines · Sumit Semwal
v10 of the patch series corrects return-error handling from
platform_request_irq()based on comments from Sergei Shtylyov and Russell King.
[https://patchwork.kernel.org/patch/497911/]
Tony,
Assuming Tomi is OK with this series, I think these are ready to go into omap-testing for some broader testing.
Kevin
Quoted 302 lines
v9 of this patch series adds reviewed-by and acked-by from Kevin Hilman.
v8 of the DSS hwmod patch series fixes some issues based on findings of Kevin Hilman on beagle.
The VENC platform driver was not getting registered due to missed device name update for
vdda_dacregulator in some board files. This was moved from 'omap_display' device to 'omap_venc' device in patch 14/18.Also, similarly for DSI platform driver, the regulator name '
vdds_dsi' needs two instances - one for dpi, and one for dsi.This version corrects the above two for all board files where '
vdda_dac' and 'vdds_dsi' regulators are defined. [patches 14/18 and 15/18]Post this change, boot w/ visible framebuffer and tux was successfully validated on beagle, 3430SDP and zoom3.
A patch mentioned in
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg42384.html was needed to get OMAP3 to boot up on top of linux-next of 20110115.OMAP4 hwmod support will be posted after the acceptance of this basic change in the dss2 design.
-------------------------------------------------
[original patch introduction]This patch series decouples the "Clocks for DSS in hwmod adaptation" changes from this series. Another series would be posted which could be discussed w.r.t clocks in DSS across omap2,3.
Removing the SYSCONFIG settings from DSS driver would also be part of these clock changes series and not covered in this series as it depends on some of the
omap_hwmodframework changes w.r.t opt clocks handling.Summary of the hwmod DSS design:
================================
DSS, DISPC, DSI, RFBI, VENC are made as platform drivers each corresponding to the hwmod class in the hwmod database.Each of these platform drivers' init / deinit are handled from core.c's
omap_dss_probe()in the exact sequence as required.No Hardcoding of silicon data:
hwmod database abstracts the SOC data like base addr, irq numbers and are implemented in this patch series.Continue to have custom bus for display panels:
"omap_display" driver continues to be a platform driver that registers the custom bus. It also continues to register the displaypanels(omap_dss_device)on the board to the panel drivers (omap_dss_driver)
For Eg: primary lcd device would be registered with lcd panel driver. lcd panel driver if it is on a parallel interface would use library functions exported from dpi.o. if it is on a dsi interface would use library functions exported from dsi platform driver(dsi.o).Clocks:
Handling of clocks in DSS only is one of the design approaches, that does not change the existing implementation. If each of the DSS HW IPs had to handle their own clocks, then corresponding clock changes can be requested in the hwmod database as well which is not the current design/implementation. As stated, this would be handled in another series seperately.
For Eg: VENC would need 54MCLK which is termed asdss_optclocks as of now apart for the dss main clocks. Currently VENC driver needs to be aware of this and has to use clk_get/put, clk_enable/disable, since VENC hwmod is not aware of 54MCLK.Current dss driver:
-------------------
1. Omapdss platform driver
- initialises necessary Ips dss, dispc.
- also initialises Ips like sdi, dsi, venc, rfbi
- creates a custom bus and registers the display devices/drivers connected on the board to the custom bus.2. Suspend/resume of omapdss
- in turn sends suspend/resume calls for each of the display devices registered to it.Modified change:
---------------
Platform driver for each DSS HW IP in addition to the software "omap_display" driver.Omapdss platform driver
- initialises necessary h/w IPs' platform drivers [dss, dispc, dsi, venc, rfbi] and software libraries like dpi, sdi.
- continues to have a custom bus and registers the display devices and drivers connected on the board to the custom bus.
- continues to handle suspend/resume of the display devices registered to the custom bus.DSS platform driver
- initialises DSS IP alone
- Handles the clocks related to the DSS and other DSSHW IPs like RFBI, DSI, VENC, DISPC. Previously this was a part of "omapdss" driver incore.c
- Continues to handle the DSS IRQs.
- No suspend/resume hooks.DISPC platform driver
- initialises DISPC IP alone
- Gets the required clock from DSS platform driver.
- No suspend/resume hooks.
- Continues to provide DISPC library functions.DSI platform driver
- initialises DSI IP alone
- Gets the required clock from DSS platform driver.
- No suspend/resume hooks.
- Continues to provide DSI library functions.RFBI, VENC platform drivers
- initialises DSI,VENC IPs
- Gets the required clock from DSS platform driver.
- No suspend/resume hooks.
- Continues to provide RFBI and VENC library functions.Testing:
---------
The patches are tested on 2420-n800, 2430sdp, 3630zoom, 3430sdp. Complete bootup with penguins on panel is done on 3430sdp.
For the rest of the mentioned platforms, kernel is built with "OMAP2_DSS" and bootup is tested so that base address andclk_getcalls are successful.DSS was built successfully as module, though not tested yet.
Changes since v6:
-----------------
*board-zoom-peripherals.c: Added missing change of device name from omapdss toomap_display. Found during testing on OMAP3630 on top of
Changes since v5:
----------------
1) Following review comments incorporated:
* http://www.mail-archive.com/linux-omap at vger.kernel.org/msg42031.html
Make suredisplay.cis built when DSS is enabled built-in or as a module.
* http://www.mail-archive.com/linux-omap at vger.kernel.org/msg42083.html
hwmod andomap_deviceheaders moved to patch 8 when they're needed the first time.
* http://www.mail-archive.com/linux-omap at vger.kernel.org/msg42094.html
- latency set toAUTO_ADJUST
- extra whitespaces removed.
- pdata memset to 0 before use.
- ifomap_device_buildfails, return error.
* http://www.mail-archive.com/linux-omap at vger.kernel.org/msg42095.html
renamed *_deinit_* to *_uninit_** http://www.mail-archive.com/linux-omap at vger.kernel.org/msg42171.html
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg42172.html
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg42173.html
- added L3 and L4 firewall related data,
- corrected handling of .idlest_idle_bit v/w .idlest_stdby_bit
- no .idlest_*_bit setting for dependent hwmods
- corrected .user to add SDMA
- renameddss_dsstodss_core
- hwmod for 3430es1 and later 3xxx are separated out, with some reuse of data.
* Removed forced-disable of dss clocks fromomap_dss_remove.Changes since v4:
----------------
1) Following review comments incorporated:
* http://www.mail-archive.com/linux-omap at vger.kernel.org/msg41970.html
Corrected the clocks to be enabled inomap_dss_probe.
Changes since v3:
----------------
1.) Following review comments incorporated:
* http://www.mail-archive.com/linux-omap at vger.kernel.org/msg41705.html
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg41683.html
Created a newdisplay.cfile for dss driver registration related code.* http://www.mail-archive.com/linux-omap at vger.kernel.org/msg41573.html
Changed the oh_name/dev_name handling in hwmod usage.* http://www.mail-archive.com/linux-omap at vger.kernel.org/msg41753.html
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg41718.html
removeddevice_initcall_sync(); init / deinit of each DSS h/w IP platform drivers are done fromomap_dss_probe()in sequence.* http://www.mail-archive.com/linux-omap at vger.kernel.org/msg41754.html
clock patches were cleaned up as per review comments.* http://www.mail-archive.com/linux-omap at vger.kernel.org/msg41756.html
printk()=>dev_dbgchange was separated out.Changes since v2:
-------------------
1.) Following review comments incorporated:
Split the device/driver name change and registration patches logically.
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg41205.html
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg41204.html
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg41203.htmlChanges since v1:
------------------
1.) Dynamically register for OMAP2,3 specific DSS HW IPs indevices.c2.) Following review comments incorporated:
Updation of all the board files on l-o dss2 branch as per
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg36915.html Comments incorporated indevices.canddisplay.has per
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg36919.html Comments incorporated indispc.c,dss.c,dsi.c,venc.c,rfbi.cso thatplatform_deviceis just aboveplatform_driverregistrations as per
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg36963.html
3.) Squashed some of the patches to one patch.Changes since RFC:
-------------------
1) All the platform driver registration except DSS, were within the filecore.c. Registeration of these driver got seperated to its own file.
2) Usage of regulators by different drivers are implemented.
For Eg: Regulator used by VENC is moved to venc driver. Butvdda_dacwould be needed by DPI and DSI as well.
4) OMAP2420 and OMAP2430 hwmod database are generated in this v1.
5) Module support for omapdss driver can continue as the DSS HW IP specific platform drivers are decoupled from omapdss driver.
6) Following review comments incorporated:
Changed the hwmod device name from "dss" to "dss_dss"
Changed name of core driver from "omapdss" to "omap_display" as it deals with panels. Fixed comments on return values from platform_get_resource/irq functions.Patch Base:
===========
Patch-set rebased and tested w/ Zoom3 (OMAP3630) on top of:
url =git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
branch "master"
commite8883f8057c0f7c9950fa9f20568f37bfa62f34a
Description: Add linux-next specific files for 20110115
+
Patch mentioned in http://www.mail-archive.com/linux-omap at vger.kernel.org/msg42384.html [PATCH] OMAP:counter_32k: init clocksource as part of machine timer init(This patch is required for OMAP bootup w/ 20110115 linux-next)
----------------------------------------------------------------------------
Senthilvadivu Guruswamy (15):
OMAP2420: hwmod data: add DSS DISPC RFBI VENC
OMAP2430: hwmod data: add DSS DISPC RFBI VENC
OMAP3: hwmod data: add DSS DISPC RFBI DSI VENC
OMAP2,3 DSS2 Change driver name toomap_display
OMAP2,3 DSS2 Use Regulator init with driver name
OMAP2,3: DSS2: board files: replaceplatform_device_registerwith
omap_display_init()
OMAP2,3: DSS2: Buildomap_devicefor each DSS HWIP OMAP2,3: DSS2: DSS: createplatform_driver, move init,exit to driver OMAP2,3: DSS2: Move clocks from core driver to dss driver OMAP2,3: DSS2: RFBI: createplatform_driver, move init,exit to driver OMAP2,3: DSS2: DISPC: createplatform_driver, move init,exit to
driver
OMAP2,3: DSS2: VENC: createplatform_driver, move init,exit to driver OMAP2,3: DSS2: DSI: createplatform_driver, move init,exit to driver OMAP2,3: DSS2: Use platform device to get baseaddr OMAP2,3: DSS2: Get DSS IRQ from platform deviceSumit Semwal (3):
OMAP2,3: DSS2: remove forced clk-disable fromomap_dss_removeOMAP2,3: DSS2: Create new filedisplay.cfor central dss driver
registration.
OMAP2,3: DSS2: replace printk withdev_dbgin initarch/arm/mach-omap2/Makefile | 3 + arch/arm/mach-omap2/board-3430sdp.c | 26 +-- arch/arm/mach-omap2/board-am3517evm.c | 16 +- arch/arm/mach-omap2/board-cm-t35.c | 22 +- arch/arm/mach-omap2/board-devkit8000.c | 22 +- arch/arm/mach-omap2/board-igep0020.c | 20 +- arch/arm/mach-omap2/board-omap3beagle.c | 22 +- arch/arm/mach-omap2/board-omap3evm.c | 30 +-- arch/arm/mach-omap2/board-omap3pandora.c | 17 +- arch/arm/mach-omap2/board-omap3stalker.c | 26 +- arch/arm/mach-omap2/board-rx51-peripherals.c | 4 +- arch/arm/mach-omap2/board-rx51-video.c | 15 +- arch/arm/mach-omap2/board-zoom-display.c | 15 +- arch/arm/mach-omap2/board-zoom-peripherals.c | 12 +- arch/arm/mach-omap2/clock2420_data.c | 8 +- arch/arm/mach-omap2/clock2430_data.c | 8 +- arch/arm/mach-omap2/clock3xxx_data.c | 14 +- arch/arm/mach-omap2/display.c | 96 ++++++ arch/arm/mach-omap2/omap_hwmod_2420_data.c | 311 ++++++++++++++++++- arch/arm/mach-omap2/omap_hwmod_2430_data.c | 284 ++++++++++++++++ arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 433 +++++++++++++++++++++++++ arch/arm/plat-omap/include/plat/display.h | 16 + arch/arm/plat-omap/include/plat/l3_2xxx.h | 20 ++ arch/arm/plat-omap/include/plat/l3_3xxx.h | 20 ++ arch/arm/plat-omap/include/plat/l4_2xxx.h | 24 ++ arch/arm/plat-omap/include/plat/l4_3xxx.h | 10 + drivers/video/omap2/dss/core.c | 448 ++------------------------ drivers/video/omap2/dss/dispc.c | 114 ++++--- drivers/video/omap2/dss/dsi.c | 78 ++++- drivers/video/omap2/dss/dss.c | 419 +++++++++++++++++++++++- drivers/video/omap2/dss/dss.h | 46 ++-- drivers/video/omap2/dss/rfbi.c | 118 ++++--- drivers/video/omap2/dss/venc.c | 125 +++++--- 33 files changed, 2055 insertions(+), 787 deletions(-) create mode 100644 arch/arm/mach-omap2/display.c create mode 100644 arch/arm/plat-omap/include/plat/l3_2xxx.h create mode 100644 arch/arm/plat-omap/include/plat/l3_3xxx.h create mode 100644 arch/arm/plat-omap/include/plat/l4_2xxx.h