summaryrefslogtreecommitdiffstats
path: root/drivers (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'fbdev-3.13' of ↵Linus Torvalds2013-11-14151-3033/+3792
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux Pull fbdev changes from Tomi Valkeinen: "Nothing particularly stands out in this pull request. The biggest part of the changes are cleanups. Maybe one fix to mention is the "fb: reorder the lock sequence to fix potential dead lock" which hopefully fixes the fb locking issues reported by multiple persons. There are also a few commits that have changes to arch/arm/mach-at91 and arch/avr32, which have been acked by the maintainers" * tag 'fbdev-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (143 commits) fb: reorder the lock sequence to fix potential dead lock fbdev: shmobile-lcdcfb: Convert to clk_prepare/unprepare fbdev: shmobile-hdmi: Convert to clk_prepare/unprepare omapdss: Add new panel driver for Topolly td028ttec1 LCD. video: exynos_mipi_dsi: Unlock the mutex before returning video: da8xx-fb: remove unwanted define video: Remove unnecessary semicolons simplefb: use write-combined remapping simplefb: fix unmapping fb during destruction OMAPDSS: connector-dvi: fix releasing i2c_adapter OMAPDSS: DSI: fix perf measuring ifdefs framebuffer: Use fb_<level> framebuffer: Add fb_<level> convenience logging macros efifb: prevent null-deref when iterating dmi_list fbdev: fix error return code in metronomefb_probe() video: xilinxfb: Fix for "Use standard variable name convention" OMAPDSS: Fix de_level in videomode_to_omap_video_timings() video: xilinxfb: Simplify error path video: xilinxfb: Use devm_kzalloc instead of kzalloc video: xilinxfb: Use standard variable name convention ...
| * fb: reorder the lock sequence to fix potential dead lockGu Zheng2013-11-113-28/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following commits: 50e244cc79 fb: rework locking to fix lock ordering on takeover e93a9a8687 fb: Yet another band-aid for fixing lockdep mess 054430e773 fbcon: fix locking harder reworked locking to fix related lock ordering on takeover, and introduced console_lock into fbmem, but it seems that the new lock sequence(fb_info->lock ---> console_lock) is against with the one in console_callback(console_lock ---> fb_info->lock), and leads to a potential dead lock as following: [ 601.079000] ====================================================== [ 601.079000] [ INFO: possible circular locking dependency detected ] [ 601.079000] 3.11.0 #189 Not tainted [ 601.079000] ------------------------------------------------------- [ 601.079000] kworker/0:3/619 is trying to acquire lock: [ 601.079000] (&fb_info->lock){+.+.+.}, at: [<ffffffff81397566>] lock_fb_info+0x26/0x60 [ 601.079000] but task is already holding lock: [ 601.079000] (console_lock){+.+.+.}, at: [<ffffffff8141aae3>] console_callback+0x13/0x160 [ 601.079000] which lock already depends on the new lock. [ 601.079000] the existing dependency chain (in reverse order) is: [ 601.079000] -> #1 (console_lock){+.+.+.}: [ 601.079000] [<ffffffff810dc971>] lock_acquire+0xa1/0x140 [ 601.079000] [<ffffffff810c6267>] console_lock+0x77/0x80 [ 601.079000] [<ffffffff81399448>] register_framebuffer+0x1d8/0x320 [ 601.079000] [<ffffffff81cfb4c8>] efifb_probe+0x408/0x48f [ 601.079000] [<ffffffff8144a963>] platform_drv_probe+0x43/0x80 [ 601.079000] [<ffffffff8144853b>] driver_probe_device+0x8b/0x390 [ 601.079000] [<ffffffff814488eb>] __driver_attach+0xab/0xb0 [ 601.079000] [<ffffffff814463bd>] bus_for_each_dev+0x5d/0xa0 [ 601.079000] [<ffffffff81447e6e>] driver_attach+0x1e/0x20 [ 601.079000] [<ffffffff81447a07>] bus_add_driver+0x117/0x290 [ 601.079000] [<ffffffff81448fea>] driver_register+0x7a/0x170 [ 601.079000] [<ffffffff8144a10a>] __platform_driver_register+0x4a/0x50 [ 601.079000] [<ffffffff8144a12d>] platform_driver_probe+0x1d/0xb0 [ 601.079000] [<ffffffff81cfb0a1>] efifb_init+0x273/0x292 [ 601.079000] [<ffffffff81002132>] do_one_initcall+0x102/0x1c0 [ 601.079000] [<ffffffff81cb80a6>] kernel_init_freeable+0x15d/0x1ef [ 601.079000] [<ffffffff8166d2de>] kernel_init+0xe/0xf0 [ 601.079000] [<ffffffff816914ec>] ret_from_fork+0x7c/0xb0 [ 601.079000] -> #0 (&fb_info->lock){+.+.+.}: [ 601.079000] [<ffffffff810dc1d8>] __lock_acquire+0x1e18/0x1f10 [ 601.079000] [<ffffffff810dc971>] lock_acquire+0xa1/0x140 [ 601.079000] [<ffffffff816835ca>] mutex_lock_nested+0x7a/0x3b0 [ 601.079000] [<ffffffff81397566>] lock_fb_info+0x26/0x60 [ 601.079000] [<ffffffff813a4aeb>] fbcon_blank+0x29b/0x2e0 [ 601.079000] [<ffffffff81418658>] do_blank_screen+0x1d8/0x280 [ 601.079000] [<ffffffff8141ab34>] console_callback+0x64/0x160 [ 601.079000] [<ffffffff8108d855>] process_one_work+0x1f5/0x540 [ 601.079000] [<ffffffff8108e04c>] worker_thread+0x11c/0x370 [ 601.079000] [<ffffffff81095fbd>] kthread+0xed/0x100 [ 601.079000] [<ffffffff816914ec>] ret_from_fork+0x7c/0xb0 [ 601.079000] other info that might help us debug this: [ 601.079000] Possible unsafe locking scenario: [ 601.079000] CPU0 CPU1 [ 601.079000] ---- ---- [ 601.079000] lock(console_lock); [ 601.079000] lock(&fb_info->lock); [ 601.079000] lock(console_lock); [ 601.079000] lock(&fb_info->lock); [ 601.079000] *** DEADLOCK *** so we reorder the lock sequence the same as it in console_callback() to avoid this issue. And following Tomi's suggestion, fix these similar issues all in fb subsystem. Signed-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * fbdev: shmobile-lcdcfb: Convert to clk_prepare/unprepareLaurent Pinchart2013-11-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Turn clk_enable() and clk_disable() calls into clk_prepare_enable() and clk_disable_unprepare() to get ready for the migration to the common clock framework. Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Cc: linux-fbdev@vger.kernel.org Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * fbdev: shmobile-hdmi: Convert to clk_prepare/unprepareLaurent Pinchart2013-11-111-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Turn clk_enable() and clk_disable() calls into clk_prepare_enable() and clk_disable_unprepare() to get ready for the migration to the common clock framework. Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Cc: linux-fbdev@vger.kernel.org Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * omapdss: Add new panel driver for Topolly td028ttec1 LCD.Marek Belisko2013-10-313-0/+487
| | | | | | | | | | | | | | Signed-off-by: Marek Belisko <marek@goldelico.com> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com> [tomi.valkeinen@ti.com: made a few funcs static] Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * video: exynos_mipi_dsi: Unlock the mutex before returningSachin Kamat2013-10-301-0/+1
| | | | | | | | | | | | | | | | Mutex should be unlocked before returning. Fixes mutex lock-unlock imbalance issue. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * video: da8xx-fb: remove unwanted defineManish Badarkhe2013-10-301-1/+0
| | | | | | | | | | | | | | Remove unwanted define "WSI_TIMEOUT" present in code. Signed-off-by: Manish Badarkhe <badarkhe.manish@gmail.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * video: Remove unnecessary semicolonsJoe Perches2013-10-3016-19/+19
| | | | | | | | | | | | | | These aren't necessary after switch, for, and if blocks. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * simplefb: use write-combined remappingDavid Herrmann2013-10-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Framebuffers shouldn't be cached and it is usually very uncommon to read them. Therefore, use ioremap_wc() to get significant speed improvements on systems which provide it. On all other systems it's aliased to ioremap_nocache() which is also fine. Reported-by: Tom Gundersen <teg@jklm.no> Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Tested-by: Tom Gundersen <teg@jklm.no> Tested-by: Alexandre Courbot <acourbot@nvidia.com> Tested-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * simplefb: fix unmapping fb during destructionDavid Herrmann2013-10-301-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately, fbdev does not create its own "struct device" for framebuffers. Instead, it attaches to the device of the parent layer. This has the side-effect that devm_* managed resources are not cleaned up on framebuffer-destruction but rather during destruction of the parent-device. In case of fbdev this might be too late, though. remove_conflicting_framebuffer() may remove fbdev devices but keep the parent device as it is. Therefore, we now use plain ioremap() and unmap the framebuffer in the fb_destroy() callback. Note that we must not free the device here as this might race with the parent-device removal. Instead, we rely on unregister_framebuffer() as barrier and we're safe. Reported-by: Tom Gundersen <teg@jklm.no> Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Acked-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * OMAPDSS: connector-dvi: fix releasing i2c_adapterTomi Valkeinen2013-10-291-0/+7
| | | | | | | | | | | | i2c adapter is not released correctly on error paths. Fix this. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * OMAPDSS: DSI: fix perf measuring ifdefsTomi Valkeinen2013-10-291-5/+5
| | | | | | | | | | | | | | | | DSI performance measuring code is meant to be explicitly enabled at compile time. At some point in time the perf code was changed to be enabled if DEBUG is defined. This is not right, so this patch fixes it. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * framebuffer: Use fb_<level>Joe Perches2013-10-2959-224/+186
| | | | | | | | | | | | | | Neaten and shorten the code using the new fb_<level> macros. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * efifb: prevent null-deref when iterating dmi_listJames Bates2013-10-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The dmi_list array is initialized using gnu designated initializers, and therefore may contain fewer explicitly defined entries as there are elements in it. This is because the enum above with M_xyz constants contains more items than the designated initializer. Those elements not explicitly initialized are implicitly set to 0. Now efifb_setup() loops through all these array elements, and performs a strcmp on each item. For non explicitly initialized elements this will be a null pointer: This patch swaps the check order in the if statement, thus checks first whether dmi_list[i].base is null. Signed-off-by: James Bates <james.h.bates@gmail.com> Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * fbdev: fix error return code in metronomefb_probe()Wei Yongjun2013-10-291-1/+2
| | | | | | | | | | | | | | | | | | Fix to return a negative error code from the error handling case instead of 0, as done elsewhere in this function. Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * video: xilinxfb: Fix for "Use standard variable name convention"Stephen Rothwell2013-10-291-4/+4
| | | | | | | | | | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Tested-by: Michal Simek <monstr@monstr.eu> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * OMAPDSS: Fix de_level in videomode_to_omap_video_timings()Roel Kluin2013-10-181-1/+1
| | | | | | | | | | | | | | | | | | | | In videomode_to_omap_video_timings, de_level is always set to HIGH regardless of what the vm->flags says. Fix this to set it to high or low according to vm->flags. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> [tomi.valkeinen@ti.com: rewrote the desc] Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * video: xilinxfb: Simplify error pathMichal Simek2013-10-111-18/+6
| | | | | | | | | | | | | | | | | | | | | | devm_iounmap is called automatically that's why remove it from the code dev_set_drvdata(dev, NULL) is called by generic code after device_release or on probe failure. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * video: xilinxfb: Use devm_kzalloc instead of kzallocMichal Simek2013-10-111-9/+2
| | | | | | | | | | | | | | | | Simplify driver probe and release function. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * video: xilinxfb: Use standard variable name conventionMichal Simek2013-10-111-9/+9
| | | | | | | | | | | | | | | | s/op/pdev/ in xilinxfb_of_probe(). No functional chagnes. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * hyperv-fb: add blanking supportGerd Hoffmann2013-10-091-0/+5
| | | | | | | | | | | | Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * hyperv-fb: add pci stubGerd Hoffmann2013-10-091-1/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a pci stub driver to hyper-fb. The hyperv framebuffer driver will bind to the pci device then, so linux kernel and userspace know there is a proper kernel driver for the device active. lspci shows this for example: [root@dhcp231 ~]# lspci -vs8 00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual VGA (prog-if 00 [VGA controller]) Flags: bus master, fast devsel, latency 0, IRQ 11 Memory at f8000000 (32-bit, non-prefetchable) [size=64M] Expansion ROM at <unassigned> [disabled] Kernel driver in use: hyperv_fb Another effect is that the xorg vesa driver will not attach to the device and thus the Xorg server will automatically use the fbdev driver instead. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * OMAPDSS: HDMI: Correctly compare timingsRichard Röjfors2013-10-091-1/+1
| | | | | | | | | | | | | | | | | | There is currently a copy and paste error where the hdmi vsync timings are not compared correctly, this patch fixes this. Signed-off-by: Richard Röjfors <richard.rojfors@gmail.com> [tomi.valkeinen@ti.com: fixed to apply on top of latest tree] Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * omapdss: HDMI: move common functions to a separate fileArchit Taneja2013-10-096-435/+447
| | | | | | | | | | | | | | | | | | The OMAP4 HDMI encoder driver(hdmi4.c) contains timings tables, and helper functions which can be used as is by the OMAP5/DRA7x encoder driver. Move these to hdmi_common.c so that it's not replicated in the future. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * omapdss: OMAP4: HDMI: remove unnecessary edid macrosArchit Taneja2013-10-091-8/+0
| | | | | | | | | | | | | | The hdmi4 driver has edid macros that aren't used at all. Remove them. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * omapdss: HDMI: Rename hdmi driver files to nicer namesArchit Taneja2013-10-0910-33/+25
| | | | | | | | | | | | | | | | Replace the ti_hdmi_4xxx* notation for OMAP4 HDMI driver with hdmi4. Rename the hdmi.c encoder driver to hdmi4.c. Rename ti_hdmi.h to hdmi.h Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * omapdss: HDMI: add HDMI wrapper IRQ flagsArchit Taneja2013-10-092-3/+15
| | | | | | | | | | | | | | | | Add flags for the interrupts present in HDMI wrapper block, these will be used to configure HDMI_IRQENABLE_SET/CLEAR and HDMI_IRQSTATUS registers. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * omapdss: HDMI: Clean up the header filesArchit Taneja2013-10-096-264/+171
| | | | | | | | | | | | | | | | | | | | | | | | Keep only OMAP4 HDMI core block related structs and enums in ti_hdmi_4xxx_ip.h, move the rest to ti_hdmi.h. This holds all library specific data which will be shared between OMAP4 and OMAP5/DRA7x HDMI encoder drivers. Move the duplicate register read/write/wait_for_bit_change functions in the hdmi library files to ti_hdmi.h Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * omapdss: HDMI: remove hdmi_ip_data structArchit Taneja2013-10-092-58/+47
| | | | | | | | | | | | | | | | | | | | | | | | The struct hdmi_ip_data contains information related to HDMI wrapper, PLL, PHY and core sub-blocks. Now that each of these sub blocks has it's own struct, hdmi_ip_data serves no purpose. The mutex lock in the struct was also never used. Remove this struct to make things cleaner. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * omapdss: HDMI: Use OMAP4 HDMI core functions directly and remove hdmi_ip_opsArchit Taneja2013-10-096-184/+162
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After removing wrapper, pll and phy funcs from ti_hdmi_4xxx_ip.c, we are left with OMAP4 HDMI core functions. Use these directly in hdmi.c rather than using hdmi_ip_ops. Rename the core functions with a 'hdmi4' suffix. We used to have hdmi_ip_ops so that one could support HDMI within a TI SoC which had a non-DSS display subsytem. This however never got put into use, and hence these ops aren't useful any more. The DT/hwmod information for hdmi doesn't split the address space according to the required sub blocks. Keep the address offset and size information in the driver for now. This will be removed when the driver gets the information correctly from DT/hwmod. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * omapdss: HDMI: create a PHY libraryArchit Taneja2013-10-096-135/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HDMI PHY is a block common to DSS in OMAP4, OMAP5 and DRA7x. Move the existing functions from ti_hdmi_4xxx_ip.c to a separate file. These funcs are called directly from the hdmi driver rather than hdmi_ip_ops function pointer calls. Add the PHY library function declarations to ti_hdmi.h. These will be shared amongst the omap4/5 hdmi platform drivers. Remove the PHY function pointer ops from the ti_hdmi_ip_ops struct. The DT/hwmod information for hdmi doesn't split the address space according to the required sub blocks. Keep the address offset and size information in the driver for now. This will be removed when the driver gets the information correctly from DT/hwmod. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * omapdss: HDMI: create a PLL libraryArchit Taneja2013-10-096-203/+285
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HDMI PLL is a block common to DSS in OMAP4, OMAP5 and DRA7x. Move the existing PLL functions from ti_hdmi_4xxx_ip.c and hdmi.c to a separate file. These funcs are called directly from the hdmi driver rather than hdmi_ip_ops function pointer calls. Add the PLL library function declarations to ti_hdmi.h. These will be shared amongst the omap4/5 hdmi platform drivers. Remove the PLL function pointer ops from the ti_hdmi_ip_ops struct. These will be shared amongst the omap4/5 hdmi platform drivers and other libraries. The DT/hwmod information for hdmi doesn't split the address space according to the required sub blocks. Keep the address offset and size information in the driver for now. This will be removed when the driver gets the information correctly from DT/hwmod. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * omapdss: HDMI: create a Wrapper libraryArchit Taneja2013-10-097-380/+479
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HDMI wrapper is a block common to DSS in OMAP4, OMAP5 and DRA7x. Move the existing functions from ti_hdmi_4xxx_ip.c to a separate file. These funcs are called directly from the hdmi driver rather than hdmi_ip_ops funtion pointer calls. Add new wrapper funcs which can be used by other hdmi libraries like core, pll and phy. Move some of the enums, structs and funcs related to the wrapper from ti_hdmi_4xxx_ip.h to ti_hdmi.h. These will be shared amongst the omap4/5 hdmi platform drivers and other libraries. The old hdmi_wp_init() is removed since it didn't do anything. Timing parameters like interlace, hsync_level and vsync_level weren't copied correctly before. Those are copied correctly now. The DT/hwmod information for hdmi doesn't split the address space according to the required sub blocks. Keep the address offset and size information in the driver for now. This will be removed when the driver gets the information correctly from DT/hwmod. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * simplefb: print some info about the registered fbTom Gundersen2013-10-091-0/+8
| | | | | | | | | | | | | | | | | | This is similar to the output printed by efifb. Signed-off-by: Tom Gundersen <teg@jklm.no> Acked-by: Stephen Warren <swarren@wwwdotorg.org> Cc: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * video: wmt_ge_rops: Fix a trivial typoSachin Kamat2013-10-091-1/+1
| | | | | | | | | | | | | | | | Add a missing closing brace for email address. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Cc: Alexey Charkov <alchark@gmail.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * video: wmt_ge_rops: Remove redundant of_match_ptrSachin Kamat2013-10-091-1/+1
| | | | | | | | | | | | | | | | | | The data structure of_match_ptr() protects is always compiled in. Hence of_match_ptr() is not needed. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Cc: Alexey Charkov <alchark@gmail.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * video: wm8505fb: Remove redundant of_match_ptrSachin Kamat2013-10-091-1/+1
| | | | | | | | | | | | | | | | | | The data structure of_match_ptr() protects is always compiled in. Hence of_match_ptr() is not needed. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Cc: Ed Spiridonov <edo.rus@gmail.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * video: ssd1307fb: Remove redundant of_match_ptrSachin Kamat2013-10-091-1/+1
| | | | | | | | | | | | | | | | | | The data structure of_match_ptr() protects is always compiled in. Hence of_match_ptr() is not needed. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * video: amba-clcd: Remove unnecessary amba_set_drvdata()Michal Simek2013-10-091-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | Driver core clears the driver data to NULL after device_release or on probe failure, so just remove it from here. Driver core change: "device-core: Ensure drvdata = NULL when no driver is bound" (sha1: 0998d0631001288a5974afc0b2a5f568bcdecb4d) Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * fbdev: sh_mobile_hdmi: Use devm_kzalloc()Sangjung Woo2013-10-091-5/+2
| | | | | | | | | | | | | | | | | | Use devm_kzalloc() instead of kzalloc() in order to be free automatically. This makes cleanup paths more simple. Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * Video / au1100fb: Use module_platform_driver() to simplify codeHanjun Guo2013-09-301-13/+1
| | | | | | | | | | | | | | Convert to module_platform_driver() to simplify code. Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * Video / au1200fb: Use module_platform_driver() to simplify codeHanjun Guo2013-09-301-15/+1
| | | | | | | | | | | | | | Convert to module_platform_driver() to simplify code. Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * Video / bf54x-lq043fb: Use module_platform_driver() to simplify codeHanjun Guo2013-09-301-13/+1
| | | | | | | | | | | | | | Convert to module_platform_driver() to simplify code. Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * Video / broadsheetfb: Use module_platform_driver() to simplify codeHanjun Guo2013-09-301-13/+1
| | | | | | | | | | | | | | Convert to module_platform_driver() to simplify code. Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * Video / cobalt_lcdfb: Use module_platform_driver() to simplify codeHanjun Guo2013-09-301-13/+1
| | | | | | | | | | | | | | Convert to module_platform_driver() to simplify code. Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * Video / da8xx-fb: Use module_platform_driver() to simplify codeHanjun Guo2013-09-301-13/+1
| | | | | | | | | | | | | | Convert to module_platform_driver() to simplify code. Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * Video / jz4740_fb: Use module_platform_driver() to simplify codeHanjun Guo2013-09-301-12/+1
| | | | | | | | | | | | | | Convert to module_platform_driver() to simplify code. Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * Video / metronomefb: Use module_platform_driver() to simplify codeHanjun Guo2013-09-301-13/+1
| | | | | | | | | | | | | | Convert to module_platform_driver() to simplify code. Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * Video / bfin-t350mcqb-fb: Use module_platform_driver() to simplify codeHanjun Guo2013-09-301-13/+1
| | | | | | | | | | | | | | Convert to module_platform_driver() to simplify code. Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
| * Video / hecubafb: Use module_platform_driver() to simplify codeHanjun Guo2013-09-301-13/+1
| | | | | | | | | | | | | | Convert to module_platform_driver() to simplify code. Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>