Sumit Semwal <sumit.semwal@xxxxxx> writes: > 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 > 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_dac regulator 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@xxxxxxxxxxxxxxx/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_hwmod framework 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 display panels(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 as dss_opt clocks 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 in core.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 and clk_get calls 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 to omap_display. > Found during testing on OMAP3630 on top of > Changes since v5: > ---------------- > 1) Following review comments incorporated: > * http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg42031.html > Make sure display.c is built when DSS is enabled built-in or as a module. > * http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg42083.html > hwmod and omap_device headers moved to patch 8 when they're > needed the first time. > * http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg42094.html > - latency set to AUTO_ADJUST > - extra whitespaces removed. > - pdata memset to 0 before use. > - if omap_device_build fails, return error. > * http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg42095.html > renamed *_deinit_* to *_uninit_* > > * http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg42171.html > http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg42172.html > http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/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 > - renamed dss_dss to dss_core > - hwmod for 3430es1 and later 3xxx are separated out, with some > reuse of data. > * Removed forced-disable of dss clocks from omap_dss_remove. > > Changes since v4: > ---------------- > 1) Following review comments incorporated: > * http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg41970.html > Corrected the clocks to be enabled in omap_dss_probe. > Changes since v3: > ---------------- > 1.) Following review comments incorporated: > * http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg41705.html > http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg41683.html > Created a new display.c file for dss driver registration > related code. > > * http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg41573.html > Changed the oh_name/dev_name handling in hwmod usage. > > * http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg41753.html > http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg41718.html > removed device_initcall_sync(); init / deinit of each DSS h/w IP > platform drivers are done from omap_dss_probe() in sequence. > > * http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg41754.html > clock patches were cleaned up as per review comments. > > * http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg41756.html > printk() => dev_dbg change 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@xxxxxxxxxxxxxxx/msg41205.html > http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg41204.html > http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg41203.html > > Changes since v1: > ------------------ > 1.) Dynamically register for OMAP2,3 specific DSS HW IPs in devices.c > 2.) Following review comments incorporated: > Updation of all the board files on l-o dss2 branch as per > http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg36915.html > Comments incorporated in devices.c and display.h as per > http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg36919.html > Comments incorporated in dispc.c, dss.c, dsi.c, venc.c, rfbi.c > so that platform_device is just above platform_driver registrations as per > http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/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 file core.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. But vdda_dac would 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" > commit e8883f8057c0f7c9950fa9f20568f37bfa62f34a > Description: Add linux-next specific files for 20110115 > + > Patch mentioned in http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/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 to omap_display > OMAP2,3 DSS2 Use Regulator init with driver name > OMAP2,3: DSS2: board files: replace platform_device_register with > omap_display_init() > OMAP2,3: DSS2: Build omap_device for each DSS HWIP > OMAP2,3: DSS2: DSS: create platform_driver, move init,exit to driver > OMAP2,3: DSS2: Move clocks from core driver to dss driver > OMAP2,3: DSS2: RFBI: create platform_driver, move init,exit to driver > OMAP2,3: DSS2: DISPC: create platform_driver, move init,exit to > driver > OMAP2,3: DSS2: VENC: create platform_driver, move init,exit to driver > OMAP2,3: DSS2: DSI: create platform_driver, move init,exit to driver > OMAP2,3: DSS2: Use platform device to get baseaddr > OMAP2,3: DSS2: Get DSS IRQ from platform device > > Sumit Semwal (3): > OMAP2,3: DSS2: remove forced clk-disable from omap_dss_remove > OMAP2,3: DSS2: Create new file display.c for central dss driver > registration. > OMAP2,3: DSS2: replace printk with dev_dbg in init > > arch/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 -- 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