summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* drivers/video: fsl-diu-fb: remove redundant default video modeTimur Tabi2011-09-181-25/+7
| | | | | | | | | The framebuffer layer already uses the first video mode defined in the fb_videomode array as a default, so there's no need to duplicate the first entry into a stand-alone structure. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: improve device tree usageTimur Tabi2011-09-181-41/+24
| | | | | | | | | | | | | | | | | Implement various improvements to the way the Freescale DIU framebuffer driver access the device tree. 1) Use of_iomap() instead of of_address_to_resource() and ioremap() 2) Use be32_to_cpup() instead of directly dereferencing the device_node pointer. 3) Rename variable 'ofdev' to 'pdev' to avoid any confusion that it's a platform_device pointer, not an of_device pointer (of_device no longer exists). Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: fix compilation warningTimur Tabi2011-09-181-1/+1
| | | | | | | | | Fix this compilation warning in the Freescale DIU framebuffer driver: warning: 'dummy_ad_addr' may be used uninitialized in this function Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: remove unused ioctlsTimur Tabi2011-09-182-17/+0
| | | | | | | | | | | | Remove some unused ioctl commands, and treat those commands as unsupported instead of ignored. Also remove struct mfb_alpha, which isn't used by any ioctl. It may have been once intended for MFB_SET_ALPHA, but that ioctl uses a different data structure. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: clean up printk usageTimur Tabi2011-09-181-88/+17
| | | | | | | | | Remove debug printk messages (they don't help in debugging), replace printk(KERN_xxx with its pr_xxx or dev_xxx equivalent, and add a couple missing error messages. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: clean up whitespace and formattingTimur Tabi2011-09-181-49/+55
| | | | | | | | Fix various indentation and line length problems in the Freescale DIU framebuffer driver. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* smscufx: reduce number of casts in ufx_raw_rectSteve Glendinning2011-09-141-10/+10
| | | | | Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* video: s3c-fb: Add S5P64X0 specific s3c_fb_driverdataAjay Kumar2011-09-141-0/+27
| | | | | | | | | | | This patch: -- Adds s3c_fb_driverdata for S5P64X0, which supports 3 windows. -- Also, register "s5p64x0-fb" type driver_data. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Acked-by: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* fbdev: fix indentation in modedb.cTimur Tabi2011-09-141-219/+225
| | | | | | | Fix the incorrect indentation in functions fb_try_mode() and fb_find_mode(). Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* fbdev: sh_mobile_lcdc: Remove sh_mobile_lcdc_set_bpp()Laurent Pinchart2011-09-051-70/+17
| | | | | | | | The function duplicates code found in sh_mobile_check_var(). Remove sh_mobile_lcdc_set_bpp() and call sh_mobile_check_var() instead. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* fbdev: sh_mobile_lcdc: Split channel initialization from probe functionLaurent Pinchart2011-09-051-118/+129
| | | | | | | | | Move channel initialization to sh_mobile_lcdc_channel_init() and call the function from sh_mobile_lcdc_probe(). This makes the code more readable and prepares it for fix/var initialization rework. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* fbdev: sh_mobile_lcdc: Avoid forward declarationsLaurent Pinchart2011-09-051-52/+50
| | | | | | | Reorder probe/remove functions to avoid forward declarations. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* fbdev: sh_mobile_lcdc: Update fix.line_length in .fb_set_par()Laurent Pinchart2011-09-051-6/+11
| | | | | | | | | Instead of updating the fixed screen information line length manually after calling fb_set_var() in sh_mobile_fb_reconfig(), update the field in the .fb_set_par() operation handler. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* fbdev: sh_mobile_lcdc: use display information in info for panningLaurent Pinchart2011-09-051-12/+12
| | | | | | | | We must not use any information in the passed var besides xoffset, yoffset and vmode as otherwise applications might abuse it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* fbdev: sh_mobile_lcdc: Add support for format changes at runtimeLaurent Pinchart2011-09-051-0/+14
| | | | | | | Implement .fb_set_par to support frame buffer format changes at runtime. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* fbdev: sh_mobile_lcdc: Adjust requested parameters in .fb_check_varLaurent Pinchart2011-09-051-15/+88
| | | | | | | | | Instead of failing when the requested fb_var_screeninfo parameters are not supported, adjust the parameters according to the hardware capabilities. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* sh_mobile_meram: Reset ICBs at unregistration timeLaurent Pinchart2011-09-051-2/+4
| | | | | | | | | When ICBs are unregistered and later reused they need to be reset to avoid data corruption. Set the WBF, WF and RF bits to make sure ICBs get reset properly. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* Add support for SMSC UFX6000/7000 USB display adaptersSteve Glendinning2011-09-054-0/+2017
| | | | | | | | | This patch adds framebuffer suport for SMSC's UFX6000 (USB 2.0) and UFX7000 (USB 3.0) display adapters. Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* fb: sh-mobile: Fix deadlock risk between lock_fb_info() and console_lock()Bruno Prémont2011-09-021-21/+26
| | | | | | | | | | | | | | | | Following on Herton's patch "fb: avoid possible deadlock caused by fb_set_suspend" which moves lock_fb_info() out of fb_set_suspend() to its callers, correct sh-mobile's locking around call to fb_set_suspend() and the same sort of deaklocks with console_lock() due to order of taking the lock. console_lock() must be taken while fb_info is already locked and fb_info must be locked while calling fb_set_suspend(). Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: stable@kernel.org
* fb: avoid possible deadlock caused by fb_set_suspendHerton Ronaldo Krzesinski2011-09-022-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A lock ordering issue can cause deadlocks: in framebuffer/console code, all needed struct fb_info locks are taken before acquire_console_sem(), in places which need to take console semaphore. But fb_set_suspend is always called with console semaphore held, and inside it we call lock_fb_info which gets the fb_info lock, inverse locking order of what the rest of the code does. This causes a real deadlock issue, when we write to state fb sysfs attribute (which calls fb_set_suspend) while a framebuffer is being unregistered by remove_conflicting_framebuffers, as can be shown by following show blocked state trace on a test program which loads i915 and runs another forked processes writing to state attribute: Test process with semaphore held and trying to get fb_info lock: .. fb-test2 D 0000000000000000 0 237 228 0x00000000 ffff8800774f3d68 0000000000000082 00000000000135c0 00000000000135c0 ffff880000000000 ffff8800774f3fd8 ffff8800774f3fd8 ffff880076ee4530 00000000000135c0 ffff8800774f3fd8 ffff8800774f2000 00000000000135c0 Call Trace: [<ffffffff8141287a>] __mutex_lock_slowpath+0x11a/0x1e0 [<ffffffff814142f2>] ? _raw_spin_lock_irq+0x22/0x40 [<ffffffff814123d3>] mutex_lock+0x23/0x50 [<ffffffff8125dfc5>] lock_fb_info+0x25/0x60 [<ffffffff8125e3f0>] fb_set_suspend+0x20/0x80 [<ffffffff81263e2f>] store_fbstate+0x4f/0x70 [<ffffffff812e7f70>] dev_attr_store+0x20/0x30 [<ffffffff811c46b4>] sysfs_write_file+0xd4/0x160 [<ffffffff81155a26>] vfs_write+0xc6/0x190 [<ffffffff81155d51>] sys_write+0x51/0x90 [<ffffffff8100c012>] system_call_fastpath+0x16/0x1b .. modprobe process stalled because has the fb_info lock (got inside unregister_framebuffer) but waiting for the semaphore held by the test process which is waiting to get the fb_info lock: .. modprobe D 0000000000000000 0 230 218 0x00000000 ffff880077a4d618 0000000000000082 0000000000000001 0000000000000001 ffff880000000000 ffff880077a4dfd8 ffff880077a4dfd8 ffff8800775a2e20 00000000000135c0 ffff880077a4dfd8 ffff880077a4c000 00000000000135c0 Call Trace: [<ffffffff81411fe5>] schedule_timeout+0x215/0x310 [<ffffffff81058051>] ? get_parent_ip+0x11/0x50 [<ffffffff814130dd>] __down+0x6d/0xb0 [<ffffffff81089f71>] down+0x41/0x50 [<ffffffff810629ac>] acquire_console_sem+0x2c/0x50 [<ffffffff812ca53d>] unbind_con_driver+0xad/0x2d0 [<ffffffff8126f5f7>] fbcon_event_notify+0x457/0x890 [<ffffffff814144ff>] ? _raw_spin_unlock_irqrestore+0x1f/0x50 [<ffffffff81058051>] ? get_parent_ip+0x11/0x50 [<ffffffff8141836d>] notifier_call_chain+0x4d/0x70 [<ffffffff8108a3b8>] __blocking_notifier_call_chain+0x58/0x80 [<ffffffff8108a3f6>] blocking_notifier_call_chain+0x16/0x20 [<ffffffff8125dabb>] fb_notifier_call_chain+0x1b/0x20 [<ffffffff8125e6ac>] unregister_framebuffer+0x7c/0x130 [<ffffffff8125e8b3>] remove_conflicting_framebuffers+0x153/0x180 [<ffffffff8125eef3>] register_framebuffer+0x93/0x2c0 [<ffffffffa0331112>] drm_fb_helper_single_fb_probe+0x252/0x2f0 [drm_kms_helper] [<ffffffffa03314a3>] drm_fb_helper_initial_config+0x2f3/0x6d0 [drm_kms_helper] [<ffffffffa03318dd>] ? drm_fb_helper_single_add_all_connectors+0x5d/0x1c0 [drm_kms_helper] [<ffffffffa037b588>] intel_fbdev_init+0xa8/0x160 [i915] [<ffffffffa0343d74>] i915_driver_load+0x854/0x12b0 [i915] [<ffffffffa02f0e7e>] drm_get_pci_dev+0x19e/0x360 [drm] [<ffffffff8141821d>] ? sub_preempt_count+0x9d/0xd0 [<ffffffffa0386f91>] i915_pci_probe+0x15/0x17 [i915] [<ffffffff8124481f>] local_pci_probe+0x5f/0xd0 [<ffffffff81244f89>] pci_device_probe+0x119/0x120 [<ffffffff812eccaa>] ? driver_sysfs_add+0x7a/0xb0 [<ffffffff812ed003>] driver_probe_device+0xa3/0x290 [<ffffffff812ed1f0>] ? __driver_attach+0x0/0xb0 [<ffffffff812ed29b>] __driver_attach+0xab/0xb0 [<ffffffff812ed1f0>] ? __driver_attach+0x0/0xb0 [<ffffffff812ebd3e>] bus_for_each_dev+0x5e/0x90 [<ffffffff812ecc2e>] driver_attach+0x1e/0x20 [<ffffffff812ec6f2>] bus_add_driver+0xe2/0x320 [<ffffffffa03aa000>] ? i915_init+0x0/0x96 [i915] [<ffffffff812ed536>] driver_register+0x76/0x140 [<ffffffffa03aa000>] ? i915_init+0x0/0x96 [i915] [<ffffffff81245216>] __pci_register_driver+0x56/0xd0 [<ffffffffa02f1264>] drm_pci_init+0xe4/0xf0 [drm] [<ffffffffa03aa000>] ? i915_init+0x0/0x96 [i915] [<ffffffffa02e84a8>] drm_init+0x58/0x70 [drm] [<ffffffffa03aa094>] i915_init+0x94/0x96 [i915] [<ffffffff81002194>] do_one_initcall+0x44/0x190 [<ffffffff810a066b>] sys_init_module+0xcb/0x210 [<ffffffff8100c012>] system_call_fastpath+0x16/0x1b .. fb-test2 which reproduces above is available on kernel.org bug #26232. To solve this issue, avoid calling lock_fb_info inside fb_set_suspend, and move it out to where needed (callers of fb_set_suspend must call lock_fb_info before if needed). So far, the only place which needs to call lock_fb_info is store_fbstate, all other places which calls fb_set_suspend are suspend/resume hooks that should not need the lock as they should be run only when processes are already frozen in suspend/resume. References: https://bugzilla.kernel.org/show_bug.cgi?id=26232 Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: stable@kernel.org
* fbdev: au1200fb: silence debug outputManuel Lauss2011-09-021-1/+1
| | | | | | | it's annoying and takes up way too much space in dmesg. Signed-off-by: Manuel Lauss <manuel.lauss@googlemail.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* video: mb862xx-i2c: fix for reliable decoder register accessAnatolij Gustschin2011-09-021-1/+1
| | | | | | | | Increase delay when polling for tx status. This fixes the unreliable video decoder i2c register access. Signed-off-by: Anatolij Gustschin <agust@denx.de> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* fbdev: fix parsing of standard timingsTomi Valkeinen2011-09-011-6/+15
| | | | | | | | | | | | The standard timings parses uses 1:1 dimensions when the ratio in the EDID data is 0. However, for EDID 1.3 and later the dimensions are 16:10 when the ratio is 0. Pass the version and revision numbers to get_std_timing() which can then make the right decision about dimensions. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* video: nuc900fb: remove include of mach/clkdev.hAxel Lin2011-09-011-1/+0
| | | | | | | | | | | | | | | | Since commit aa3831cf9d29cfeaebd8c2169378b74111364487 "ARM: Consolidate the clkdev header files", the header file arch/arm/mach-nuc93x/include/mach/clkdev.h is removed. This patch fixes below build error: drivers/video/nuc900fb.c:42:25: error: mach/clkdev.h: No such file or directory make[2]: *** [drivers/video/nuc900fb.o] Error 1 make[1]: *** [drivers/video] Error 2 make: *** [drivers] Error 2 Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* video: mxsfb: add missing include of linux/module.hAxel Lin2011-09-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Include linux/module.h to fix below build error: from drivers/video/mxsfb.c:42: arch/arm/mach-mxs/include/mach/memory.h:22:1: warning: this is the location of the previous definition drivers/video/mxsfb.c:574: error: 'THIS_MODULE' undeclared here (not in a function) drivers/video/mxsfb.c:893: warning: data definition has no type or storage class drivers/video/mxsfb.c:893: warning: type defaults to 'int' in declaration of 'MODULE_DEVICE_TABLE' drivers/video/mxsfb.c:893: warning: parameter names (without types) in function declaration drivers/video/mxsfb.c:917: error: expected declaration specifiers or '...' before string constant drivers/video/mxsfb.c:917: warning: data definition has no type or storage class drivers/video/mxsfb.c:917: warning: type defaults to 'int' in declaration of 'MODULE_DESCRIPTION' drivers/video/mxsfb.c:917: warning: function declaration isn't a prototype drivers/video/mxsfb.c:918: error: expected declaration specifiers or '...' before string constant drivers/video/mxsfb.c:918: warning: data definition has no type or storage class drivers/video/mxsfb.c:918: warning: type defaults to 'int' in declaration of 'MODULE_AUTHOR' drivers/video/mxsfb.c:918: warning: function declaration isn't a prototype drivers/video/mxsfb.c:919: error: expected declaration specifiers or '...' before string constant drivers/video/mxsfb.c:919: warning: data definition has no type or storage class drivers/video/mxsfb.c:919: warning: type defaults to 'int' in declaration of 'MODULE_LICENSE' drivers/video/mxsfb.c:919: warning: function declaration isn't a prototype make[2]: *** [drivers/video/mxsfb.o] Error 1 make[1]: *** [drivers/video] Error 2 make: *** [drivers] Error 2 Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* Merge branch 'sh-mobile-lcdc' of git://linuxtv.org/pinchartl/fbdev into ↵Florian Tobias Schandinat2011-08-306-427/+556
|\ | | | | | | fbdev-next
| * fbdev: sh_mobile_meram: Remove unneeded sh_mobile_meram.hLaurent Pinchart2011-08-193-36/+4
| | | | | | | | | | | | | | | | The drivers/video/sh_mobile_meram.h header contains unused definitions and declarations. Move the only used macro to sh_mobile_meram.c, and remove the header. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
| * fbdev: sh_mobile_meram: Fix MExxCTL register save on runtime PM suspendLaurent Pinchart2011-08-191-1/+1
| | | | | | | | | | | | | | | | | | | | To reset the ICB on resume the MExxCTL register needs to be OR'ed with MExxCTL_WBF | MExxCTL_WF | MExxCTL_RF, no set to that value. Fix this. This fixes corruption at the bottom of the display when resuming from runtime PM. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
| * fbdev: sh_mobile_meram: Validate ICB configuration outside mutexLaurent Pinchart2011-08-191-10/+8
| | | | | | | | | | | | | | Validate as much of the requested ICB configuration as possible outside of the mutex-protected region when registering ICBs. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
| * fbdev: sh_mobile_meram: Replace hardcoded register values with macrosLaurent Pinchart2011-08-191-26/+71
| | | | | | | | | | | | | | | | Instead of hardcoding register values through the driver, define macros for individual register bits using the register name and the bit name, and use the macros. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
| * fbdev: sh_mobile_lcdc: Restart LCDC in runtime PM resume handlerLaurent Pinchart2011-08-192-45/+5
| | | | | | | | | | | | | | | | | | | | | | | | Instead of restoring registers blindly, restart the LCDC by going through the startup sequence when resuming from runtime PM suspend. All registers are now correctly initialized in the right order. As a side effect, this also gets rid fo a possible panning restore issue caused by always saving the frame buffer base address registers from set A instead of the currently active set. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
| * fbdev: sh_mobile_lcdc: Store the frame buffer base address when panningLaurent Pinchart2011-08-191-13/+9
| | | | | | | | | | | | | | | | When the frame buffer base address is changed by a panning operation, store it in the channel structure. It will be reused when runtime PM code will use __sh_mobile_lcdc_start(). Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
| * fbdev: sh_mobile_lcdc: Split LCDC start code from sh_mobile_lcdc_startLaurent Pinchart2011-08-192-158/+162
| | | | | | | | | | | | | | Splitting the LCDC start code from clock, MERAM and panel management will make the code usable by runtime PM. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
| * fbdev: sh_mobile_lcdc: Compute clock pattern using divider denominatorLaurent Pinchart2011-08-191-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | The clock divider pattern is computed based on the dot clock register value which stores the divider denumerator. However, when using a 1:1 divider ratio, the register is programmed with a value that must not be interpreted as a denominator. This results in a shift left operation with a value of 32, which produces undefined behaviour. Compute the clock pattern using the divider denominator, not the dot clock register value. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
| * fbdev: sh_mobile_lcdc: Don't acknowlege interrupts unintentionallyLaurent Pinchart2011-08-191-12/+8
| | | | | | | | | | | | | | | | | | | | | | The LDINTR register caries both interrupt enable and interrupt status bits. When setting or clearing interrupt enable bits, write all status bits to 1 to avoid acknowledging interrupts by mistake. When acknowledging interrupts, write 1 to all non-triggered interrupt bits to avoid losing interrupts. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
| * fbdev: sh_mobile_lcdc: Replace hardcoded register values with macrosLaurent Pinchart2011-08-192-130/+209
| | | | | | | | | | | | | | | | Instead of hardcoding register values through the driver, define macros for individual register bits using the register name and the bit name, and use the macros. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
| * fbdev: sh_mobile_lcdc: Turn dot clock on before resuming from runtime PMLaurent Pinchart2011-08-191-3/+3
| | | | | | | | | | | | | | | | | | | | | | Resuming from runtime PM restores all LCDC registers. If the dot clock is off at that time display panning information will be corrupted. Turn the dot clock on before resuming from runtime PM. Similarly, turn the clock off after suspending the LCDC. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
| * fbdev: sh_mobile_meram: Assign meram to the SH7372_A4LC power domainDamian2011-08-191-0/+1
| | | | | | | | | | | | | | Register the MERAM device as a part of the A4LC power domain for power management. Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
| * fbdev: sh_mobile_meram: Backup/restore device registers on shutdown/resumeDamian Hobson-Garcia2011-08-191-0/+71
| | | | | | | | | | | | | | Save and reconfigure the MERAM registers when the MERAM is powered down and restored Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
| * fbdev: sh_mobile_meram: Move private data from .h to .cDamian Hobson-Garcia2011-08-192-8/+8
| | | | | | | | | | | | | | There is no reason for sh_mobile_meram_priv to be in the .h file since it should be private to sh_mobile_meram.c Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
| * fbdev: sh_mobile_meram: Enable/disable MERAM along with LCDCDamian Hobson-Garcia2011-08-191-0/+4
| | | | | | | | | | | | | | The MERAM reference counts should be tied to the two LCDC devices (LCD/HDMI) so that when they are enable/disabled, the MERAM is as well. Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
| * fbdev: sh_mobile_meram: Enable runtime PMDamian Hobson-Garcia2011-08-191-0/+5
| | | | | | | | Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
* | Merge branch 'master' of ↵Florian Tobias Schandinat2011-08-2928-303/+1039
|\ \ | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-3.x into fbdev-next Conflicts: drivers/video/atmel_lcdfb.c
| * \ Merge branch 'viafb-next' of git://github.com/schandinat/linux-2.6Paul Mundt2011-07-212-5/+16
| |\ \
| | * | viafb: improve pitch handlingFlorian Tobias Schandinat2011-07-172-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds checks for minimum and maximum pitch size to prevent invalid settings which could otherwise crash the machine. Also the alignment is done in a slightly more readable way. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: stable@kernel.org
| | * | viafb: use display information in info not in var for panningFlorian Tobias Schandinat2011-05-271-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As Laurent pointed out we must not use any information in the passed var besides xoffset, yoffset and vmode as otherwise applications might abuse it. Also use the aligned fix.line_length and not the (possible) unaligned xres_virtual. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Reported-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: stable@kernel.org
| * | | Merge branch 'fbdev/stable-updates'Paul Mundt2011-07-13547-2891/+28484
| |\ \ \
| | * | | drivers/video/udlfb match class, subclass, and protocolBernie Thompson2011-07-131-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Match udlfb only against vendor-specific class (e.g. only DisplayLink graphics, not composite standard audio class interfaces). This enables compatibility with composite graphics+audio devices (e.g. HDMI). Match udlfb only against compatible subclass 0 and protocol 0 chips. DisplayLink's USB 3.0 generation chips increment these values to signal that they have a incompatible protocol, preventing udlfb from erroneously matching to hardware it does not support. Tested to confirm proper behavior on both USB 2.0 and USB 3.0 generation devices. Reported-by: Andrew Kephart <akephart@akephart.org> Signed-off-by: Bernie Thompson <bernie@plugable.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | | carminefb: Fix module parameters permissionsJean Delvare2011-07-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The third parameter of module_param is supposed to be an octal value. The missing leading "0" causes the following: $ ls -l /sys/module/carminefb/parameters/ total 0 -rw-rwxr-- 1 root root 4096 Jul 8 08:55 fb_displays -rw-rwxr-- 1 root root 4096 Jul 8 08:55 fb_mode -rw-rwxr-- 1 root root 4096 Jul 8 08:55 fb_mode_str After fixing the perm parameter, we get the expected: $ ls -l /sys/module/carminefb/parameters/ total 0 -r--r--r-- 1 root root 4096 Jul 8 08:56 fb_displays -r--r--r-- 1 root root 4096 Jul 8 08:56 fb_mode -r--r--r-- 1 root root 4096 Jul 8 08:56 fb_mode_str Signed-off-by: Jean Delvare <jdelvare@suse.de> Cc: Paul Mundt <lethal@linux-sh.org> Cc: Sebastian Siewior <bigeasy@linutronix.de> Cc: stable@kernel.org Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | | video: s3c2410: remove unused variableWolfram Sang2011-07-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: drivers/video/s3c2410fb.c: In function 's3c2410fb_cpufreq_transition': drivers/video/s3c2410fb.c:770:24: warning: unused variable 'freqs' Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Cc: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
OpenPOWER on IntegriCloud