aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
Commit message (Collapse)AuthorAgeFilesLines
* OMAPDSS: panel-ltn: remove set_gptimer_idle()Ziyan2016-07-031-3/+0
| | | | | | Since we aren't using FB_OMAP_BOOTLOADER_INIT, the gptimer is idle at bootup. Change-Id: I0ddef1b92ea6e848babfbec67d19cfd6db43b0a1
* OMAPDSS: panel-ltn: turn on gptimer before updating itZiyan2016-06-191-2/+19
| | | | Otherwise, the first update after returning from standby is ignored.
* OMAPDSS: panel-ltn: remove incomplete support for bootloader initZiyan2016-06-191-15/+3
|
* fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlersJosef Bacik2016-06-051-2/+9
| | | | | | | | | | | | | | | | | | | | Btrfs needs to be able to control how filemap_write_and_wait_range() is called in fsync to make it less of a painful operation, so push down taking i_mutex and the calling of filemap_write_and_wait() down into the ->fsync() handlers. Some file systems can drop taking the i_mutex altogether it seems, like ext3 and ocfs2. For correctness sake I just pushed everything down in all cases to make sure that we keep the current behavior the same for everybody, and then each individual fs maintainer can make up their mind about what to do from there. Thanks, Acked-by: Jan Kara <jack@suse.cz> Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Conflicts: Documentation/filesystems/porting Change-Id: I7697244cce355e6d443a39c5133a5c94f02e199b
* OMAPDSS: panel-ltn: don't turn on backlight on resumeZiyan2016-05-051-11/+12
| | | | | | Automatically turning on backlight on resume causes the screen to blink every time when alarms wake the device up. Only turn it on when it's actually requested.
* OMAPDSS: panel-ltn: fix suspend logicZiyan2016-04-301-7/+5
| | | | Don't return with an error if the panel is already suspended.
* OMAPDSS: add Samsung LTN070NL01/LTN101AL03 LCD panel driverZiyan2016-04-303-0/+562
| | | | | | | | Based on the sources from: GT-P3110_JB_Opensource, plus: * b898249 - panel-ltn: minor cleanups * 0c33698 - panel-ltn: improve logging messages * c7bf761 - panel-ltn: don't try to stop the gp timer twice * a8145af - panel-ltn: commonize ltn070nl01 and ltn101al03
* added checks for HDMI enabledHashcode2016-04-301-0/+2
|
* Merge remote-tracking branch 'linux-stable/linux-3.0.y' into ↵Ziyan2015-10-259-47/+109
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | p-android-omap-3.0-dev-espresso Conflicts: Makefile arch/arm/include/asm/hardware/cache-l2x0.h arch/arm/kernel/smp.c arch/arm/mach-omap2/board-4430sdp.c arch/arm/mach-omap2/board-omap4panda.c arch/arm/mach-omap2/opp.c arch/ia64/include/asm/futex.h drivers/bluetooth/ath3k.c drivers/bluetooth/btusb.c drivers/firmware/efivars.c drivers/gpu/drm/i915/intel_lvds.c drivers/gpu/drm/radeon/radeon_atombios.c drivers/gpu/drm/radeon/radeon_irq_kms.c drivers/hwmon/fam15h_power.c drivers/mfd/twl6030-irq.c drivers/mmc/core/sdio.c drivers/net/tun.c drivers/net/usb/ipheth.c drivers/net/usb/usbnet.c drivers/usb/core/hub.c drivers/usb/host/xhci-mem.c drivers/usb/host/xhci.h drivers/usb/musb/omap2430.c drivers/usb/serial/ftdi_sio.c drivers/usb/serial/ftdi_sio_ids.h drivers/usb/serial/option.c drivers/usb/serial/qcserial.c drivers/usb/serial/ti_usb_3410_5052.c drivers/usb/serial/ti_usb_3410_5052.h drivers/video/omap2/dss/hdmi.c fs/splice.c include/asm-generic/pgtable.h include/net/sch_generic.h kernel/cgroup.c kernel/futex.c kernel/time/timekeeping.c net/ipv4/route.c net/ipv4/syncookies.c net/ipv4/tcp_ipv4.c net/wireless/util.c security/commoncap.c sound/soc/soc-dapm.c
| * fbcon: when font is freed, clear also vc_font.dataMika Kuoppala2013-05-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit e6637d5427d2af9f3f33b95447bfc5347e5ccd85 upstream. commit ae1287865f5361fa138d4d3b1b6277908b54eac9 Author: Dave Airlie <airlied@redhat.com> Date: Thu Jan 24 16:12:41 2013 +1000 fbcon: don't lose the console font across generic->chip driver switch uses a pointer in vc->vc_font.data to load font into the new driver. However if the font is actually freed, we need to clear the data so that we don't reload font from dangling pointer. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=892340 Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * vm: convert fb_mmap to vm_iomap_memory() helperLinus Torvalds2013-04-251-26/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | commit fc9bbca8f650e5f738af8806317c0a041a48ae4a upstream. This is my example conversion of a few existing mmap users. The fb_mmap() case is a good example because it is a bit more complicated than some: fb_mmap() mmaps one of two different memory areas depending on the page offset of the mmap (but happily there is never any mixing of the two, so the helper function still works). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * fbcon: fix locking harderDave Airlie2013-04-252-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 054430e773c9a1e26f38e30156eff02dedfffc17 upstream. Okay so Alan's patch handled the case where there was no registered fbcon, however the other path entered in set_con2fb_map pit. In there we called fbcon_takeover, but we also took the console lock in a couple of places. So push the console lock out to the callers of set_con2fb_map, this means fbmem and switcheroo needed to take the lock around the fb notifier entry points that lead to this. This should fix the efifb regression seen by Maarten. Tested-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Tested-by: Lu Hua <huax.lu@intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * fb: Yet another band-aid for fixing lockdep messTakashi Iwai2013-02-282-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit e93a9a868792ad71cdd09d75e5a02d8067473c4e upstream. I've still got lockdep warnings even after Alan's patch, and it seems that yet more band aids are required to paper over similar paths for unbind_con_driver() and unregister_con_driver(). After this hack, lockdep warnings are finally gone. Signed-off-by: Takashi Iwai <tiwai@suse.de> Cc: Alan Cox <alan@linux.intel.com> Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Jiri Kosina <jkosina@suse.cz> Tested-by: Sedat Dilek <sedat.dilek@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * fb: rework locking to fix lock ordering on takeoverAlan Cox2013-02-283-4/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 50e244cc793d511b86adea24972f3a7264cae114 upstream. Adjust the console layer to allow a take over call where the caller already holds the locks. Make the fb layer lock in order. This is partly a band aid, the fb layer is terminally confused about the locking rules it uses for its notifiers it seems. [akpm@linux-foundation.org: remove stray non-ascii char, tidy comment] [akpm@linux-foundation.org: export do_take_over_console()] [airlied: cleanup another non-ascii char] Signed-off-by: Alan Cox <alan@linux.intel.com> Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Cc: Jiri Kosina <jkosina@suse.cz> Tested-by: Sedat Dilek <sedat.dilek@gmail.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * fbcon: don't lose the console font across generic->chip driver switchDave Airlie2013-02-281-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit ae1287865f5361fa138d4d3b1b6277908b54eac9 upstream. If grub2 loads efifb/vesafb, then when systemd starts it can set the console font on that framebuffer device, however when we then load the native KMS driver, the first thing it does is tear down the generic framebuffer driver. The thing is the generic code is doing the right thing, it frees the font because otherwise it would leak memory. However we can assume that if you are removing the generic firmware driver (vesa/efi/offb), that a new driver *should* be loading soon after, so we effectively leak the font. However the old code left a dangling pointer in vc->vc_font.data and we can now reuse that dangling pointer to load the font into the new driver, now that we aren't freeing it. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=892340 Signed-off-by: Dave Airlie <airlied@redhat.com> Cc: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * drivers/video/backlight/adp88?0_bl.c: fix resumeLars-Peter Clausen2013-02-282-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 5eb02c01bd1f3ef195989ab05e835e2b0711b5a9 upstream. Clearing the NSTBY bit in the control register also automatically clears the BLEN bit. So we need to make sure to set it again during resume, otherwise the backlight will stay off. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * video: mxsfb: fix crash when unblanking the displayLothar Waßmann2013-01-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 6c1ecba8d84841277d68140ef485335d5be28485 upstream. The VDCTRL4 register does not provide the MXS SET/CLR/TOGGLE feature. The write in mxsfb_disable_controller() sets the data_cnt for the LCD DMA to 0 which obviously means the max. count for the LCD DMA and leads to overwriting arbitrary memory when the display is unblanked. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Acked-by: Juergen Beisert <jbe@pengutronix.de> Tested-by: Lauri Hintsala <lauri.hintsala@bluegiga.net> Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * riva/fbdev: fix several -WuninitializedDanny Kukawka2012-12-031-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | commit c718a54649475cc397484f96e70f6d0fdd267165 upstream. Fix several -Wuninitialized compiler warnings by changing the order of getting modedb in riva_update_default_var() to set first the fallback and then the prefered timing. Signed-off-by: Danny Kukawka <danny.kukawka@bisect.de> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * viafb: don't touch clock state on OLPC XO-1.5Daniel Drake2012-10-211-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 012a1211845eab69a5488d59eb87d24cc518c627 upstream. As detailed in the thread titled "viafb PLL/clock tweaking causes XO-1.5 instability," enabling or disabling the IGA1/IGA2 clocks causes occasional stability problems during suspend/resume cycles on this platform. This is rather odd, as the documentation suggests that clocks have two states (on/off) and the default (stable) configuration is configured to enable the clock only when it is needed. However, explicitly enabling *or* disabling the clock triggers this system instability, suggesting that there is a 3rd state at play here. Leaving the clock enable/disable registers alone solves this problem. This fixes spurious reboots during suspend/resume behaviour introduced by commit b692a63a. Signed-off-by: Daniel Drake <dsd@laptop.org> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * video/udlfb: fix line counting in fb_writeAlexander Holler2012-10-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | commit b8c4321f3d194469007f5f5f2b34ec278c264a04 upstream. Line 0 and 1 were both written to line 0 (on the display) and all subsequent lines had an offset of -1. The result was that the last line on the display was never overwritten by writes to /dev/fbN. Signed-off-by: Alexander Holler <holler@ahsoftware.de> Acked-by: Bernie Thompson <bernie@plugable.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * fbcon: fix race condition between console lock and cursor timer (v1.1)Dave Airlie2012-10-021-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit d8636a2717bb3da2a7ce2154bf08de90bb8c87b0 upstream. So we've had a fair few reports of fbcon handover breakage between efi/vesafb and i915 surface recently, so I dedicated a couple of days to finding the problem. Essentially the last thing we saw was the conflicting framebuffer message and that was all. So after much tracing with direct netconsole writes (printks under console_lock not so useful), I think I found the race. Thread A (driver load) Thread B (timer thread) unbind_con_driver -> | bind_con_driver -> | vc->vc_sw->con_deinit -> | fbcon_deinit -> | console_lock() | | | | fbcon_flashcursor timer fires | console_lock() <- blocked for A | | fbcon_del_cursor_timer -> del_timer_sync (BOOM) Of course because all of this is under the console lock, we never see anything, also since we also just unbound the active console guess what we never see anything. Hopefully this fixes the problem for anyone seeing vesafb->kms driver handoff. v1.1: add comment suggestion from Alan. Signed-off-by: Dave Airlie <airlied@redhat.com> Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Tested-by: Josh Boyer <jwboyer@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * video:uvesafb: Fix oops that uvesafb try to execute NX-protected pageWang YanQing2012-04-221-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit b78f29ca0516266431688c5eb42d39ce42ec039a upstream. This patch fix the oops below that catched in my machine [ 81.560602] uvesafb: NVIDIA Corporation, GT216 Board - 0696a290, Chip Rev , OEM: NVIDIA, VBE v3.0 [ 81.609384] uvesafb: protected mode interface info at c000:d350 [ 81.609388] uvesafb: pmi: set display start = c00cd3b3, set palette = c00cd40e [ 81.609390] uvesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da [ 81.614558] uvesafb: VBIOS/hardware doesn't support DDC transfers [ 81.614562] uvesafb: no monitor limits have been set, default refresh rate will be used [ 81.614994] uvesafb: scrolling: ypan using protected mode interface, yres_virtual=4915 [ 81.744147] kernel tried to execute NX-protected page - exploit attempt? (uid: 0) [ 81.744153] BUG: unable to handle kernel paging request at c00cd3b3 [ 81.744159] IP: [<c00cd3b3>] 0xc00cd3b2 [ 81.744167] *pdpt = 00000000016d6001 *pde = 0000000001c7b067 *pte = 80000000000cd163 [ 81.744171] Oops: 0011 [#1] SMP [ 81.744174] Modules linked in: uvesafb(+) cfbcopyarea cfbimgblt cfbfillrect [ 81.744178] [ 81.744181] Pid: 3497, comm: modprobe Not tainted 3.3.0-rc4NX+ #71 Acer Aspire 4741 /Aspire 4741 [ 81.744185] EIP: 0060:[<c00cd3b3>] EFLAGS: 00010246 CPU: 0 [ 81.744187] EIP is at 0xc00cd3b3 [ 81.744189] EAX: 00004f07 EBX: 00000000 ECX: 00000000 EDX: 00000000 [ 81.744191] ESI: f763f000 EDI: f763f6e8 EBP: f57f3a0c ESP: f57f3a00 [ 81.744192] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 [ 81.744195] Process modprobe (pid: 3497, ti=f57f2000 task=f748c600 task.ti=f57f2000) [ 81.744196] Stack: [ 81.744197] f82512c5 f759341c 00000000 f57f3a30 c124a9bc 00000001 00000001 000001e0 [ 81.744202] f8251280 f763f000 f7593400 00000000 f57f3a40 c12598dd f5c0c000 00000000 [ 81.744206] f57f3b10 c1255efe c125a21a 00000006 f763f09c 00000000 c1c6cb60 f7593400 [ 81.744210] Call Trace: [ 81.744215] [<f82512c5>] ? uvesafb_pan_display+0x45/0x60 [uvesafb] [ 81.744222] [<c124a9bc>] fb_pan_display+0x10c/0x160 [ 81.744226] [<f8251280>] ? uvesafb_vbe_find_mode+0x180/0x180 [uvesafb] [ 81.744230] [<c12598dd>] bit_update_start+0x1d/0x50 [ 81.744232] [<c1255efe>] fbcon_switch+0x39e/0x550 [ 81.744235] [<c125a21a>] ? bit_cursor+0x4ea/0x560 [ 81.744240] [<c129b6cb>] redraw_screen+0x12b/0x220 [ 81.744245] [<c128843b>] ? tty_do_resize+0x3b/0xc0 [ 81.744247] [<c129ef42>] vc_do_resize+0x3d2/0x3e0 [ 81.744250] [<c129efb4>] vc_resize+0x14/0x20 [ 81.744253] [<c12586bd>] fbcon_init+0x29d/0x500 [ 81.744255] [<c12984c4>] ? set_inverse_trans_unicode+0xe4/0x110 [ 81.744258] [<c129b378>] visual_init+0xb8/0x150 [ 81.744261] [<c129c16c>] bind_con_driver+0x16c/0x360 [ 81.744264] [<c129b47e>] ? register_con_driver+0x6e/0x190 [ 81.744267] [<c129c3a1>] take_over_console+0x41/0x50 [ 81.744269] [<c1257b7a>] fbcon_takeover+0x6a/0xd0 [ 81.744272] [<c12594b8>] fbcon_event_notify+0x758/0x790 [ 81.744277] [<c10929e2>] notifier_call_chain+0x42/0xb0 [ 81.744280] [<c1092d30>] __blocking_notifier_call_chain+0x60/0x90 [ 81.744283] [<c1092d7a>] blocking_notifier_call_chain+0x1a/0x20 [ 81.744285] [<c124a5a1>] fb_notifier_call_chain+0x11/0x20 [ 81.744288] [<c124b759>] register_framebuffer+0x1d9/0x2b0 [ 81.744293] [<c1061c73>] ? ioremap_wc+0x33/0x40 [ 81.744298] [<f82537c6>] uvesafb_probe+0xaba/0xc40 [uvesafb] [ 81.744302] [<c12bb81f>] platform_drv_probe+0xf/0x20 [ 81.744306] [<c12ba558>] driver_probe_device+0x68/0x170 [ 81.744309] [<c12ba731>] __device_attach+0x41/0x50 [ 81.744313] [<c12b9088>] bus_for_each_drv+0x48/0x70 [ 81.744316] [<c12ba7f3>] device_attach+0x83/0xa0 [ 81.744319] [<c12ba6f0>] ? __driver_attach+0x90/0x90 [ 81.744321] [<c12b991f>] bus_probe_device+0x6f/0x90 [ 81.744324] [<c12b8a45>] device_add+0x5e5/0x680 [ 81.744329] [<c122a1a3>] ? kvasprintf+0x43/0x60 [ 81.744332] [<c121e6e4>] ? kobject_set_name_vargs+0x64/0x70 [ 81.744335] [<c121e6e4>] ? kobject_set_name_vargs+0x64/0x70 [ 81.744339] [<c12bbe9f>] platform_device_add+0xff/0x1b0 [ 81.744343] [<f8252906>] uvesafb_init+0x50/0x9b [uvesafb] [ 81.744346] [<c100111f>] do_one_initcall+0x2f/0x170 [ 81.744350] [<f82528b6>] ? uvesafb_is_valid_mode+0x66/0x66 [uvesafb] [ 81.744355] [<c10c6994>] sys_init_module+0xf4/0x1410 [ 81.744359] [<c1157fc0>] ? vfsmount_lock_local_unlock_cpu+0x30/0x30 [ 81.744363] [<c144cb10>] sysenter_do_call+0x12/0x36 [ 81.744365] Code: f5 00 00 00 32 f6 66 8b da 66 d1 e3 66 ba d4 03 8a e3 b0 1c 66 ef b0 1e 66 ef 8a e7 b0 1d 66 ef b0 1f 66 ef e8 fa 00 00 00 61 c3 <60> e8 c8 00 00 00 66 8b f3 66 8b da 66 ba d4 03 b0 0c 8a e5 66 [ 81.744388] EIP: [<c00cd3b3>] 0xc00cd3b3 SS:ESP 0068:f57f3a00 [ 81.744391] CR2: 00000000c00cd3b3 [ 81.744393] ---[ end trace 18b2c87c925b54d6 ]--- Signed-off-by: Wang YanQing <udknight@gmail.com> Cc: Michal Januszewski <spock@gentoo.org> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * backlight: fix typo in tosa_lcd.cMasanari Iida2012-04-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | commit 8da00edc1069f01c34510fa405dc15d96c090a3f upstream. Fix typo in drivers/video/backlight/tosa_lcd.c "tosa_lcd_reume" should be "tosa_lcd_resume". Signed-off-by: Masanari Iida <standby24x7@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * udlfb: remove sysfs framebuffer device with USB .disconnect()Kay Sievers2012-04-022-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit ce880cb860f36694d2cdebfac9e6ae18176fe4c4 upstream. The USB graphics card driver delays the unregistering of the framebuffer device to a workqueue, which breaks the userspace visible remove uevent sequence. Recent userspace tools started to support USB graphics card hotplug out-of-the-box and rely on proper events sent by the kernel. The framebuffer device is a direct child of the USB interface which is removed immediately after the USB .disconnect() callback. But the fb device in /sys stays around until its final cleanup, at a time where all the parent devices have been removed already. To work around that, we remove the sysfs fb device directly in the USB .disconnect() callback and leave only the cleanup of the internal fb data to the delayed work. Before: add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb) add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb) add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb0 (graphics) remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb) remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb) remove /2-1.2:1.0/graphics/fb0 (graphics) After: add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb) add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb) add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics) remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics) remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb) remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb) Tested-by: Bernie Thompson <bernie@plugable.com> Acked-by: Bernie Thompson <bernie@plugable.com> Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * OMAPDSS: HDMI: PHY burnout fixTomi Valkeinen2012-03-121-4/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit c49d005b6cc8491fad5b24f82805be2d6bcbd3dd upstream. A hardware bug in the OMAP4 HDMI PHY causes physical damage to the board if the HDMI PHY is kept powered on when the cable is not connected. This patch solves the problem by adding hot-plug-detection into the HDMI IP driver. This is not a real HPD support in the sense that nobody else than the IP driver gets to know about the HPD events, but is only meant to fix the HW bug. The strategy is simple: If the display device is turned off by the user, the PHY power is set to OFF. When the display device is turned on by the user, the PHY power is set either to LDOON or TXON, depending on whether the HDMI cable is connected. The reason to avoid PHY OFF when the display device is on, but the cable is disconnected, is that when the PHY is turned OFF, the HDMI IP is not "ticking" and thus the DISPC does not receive pixel clock from the HDMI IP. This would, for example, prevent any VSYNCs from happening, and would thus affect the users of omapdss. By using LDOON when the cable is disconnected we'll avoid the HW bug, but keep the HDMI working as usual from the user's point of view. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * OMAP: DSS2: HDMI: use default dividersTomi Valkeinen2012-03-121-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | commit 8d88767a4377171752c22ac39bcb2b505eb751da upstream. Use default regn and regm2 dividers in the hdmi driver if the board file does not define them. Cc: Mythri P K <mythripk@ti.com> Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* | DSS: Fixed compilation warnings at device.c:504Ievgen Musiichuk2012-11-121-1/+2
| | | | | | | | | | | | | | | | Warning: comparison of distinct pointer types lacks a cast Changed clamp macro to clamp_t with __u32 type Change-Id: I1ab6169a79e8dfdfb2e3b87147e225382a64248d Signed-off-by: Ievgen Musiichuk <ievgen.musiichuk@ti.com>
* | Tablet2: tc358765: Resetting tc358765 on power off.Andrii Anisov2012-11-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | Due to hardware bug backlight is not disabled by PWM. Gpio 102 is shared between resetting tc358765 and backlight enabling. For the case when we put a tablet into suspend we can reset tc358765 on it's power off and disable backlight. Backlight will be enabled on tc358765 power on. Change-Id: I092be7eedfcc6ca077472aa7c9350c1527017aff Signed-off-by: Andrii Anisov <andrii.anisov@ti.com>
* | OMAP: HDCP: Cancel pending start on disable/hpd dropMike J. Chen2012-10-261-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We observed a race condition where userland invoked an ioctl do blank/unblank the display while HDCP was pending to start (but hadn't yet started). The hdcp_irq_cb() wasn't cancelling that pending start. This caused the hdcp state machine to start when it shouldn't have been, interfering with the hpd state machine's reading of EDID once the unblank happened. The two state machines should really be unified at some point. Change-Id: Ief74d7eaa099f5455f6a42c65e98b965cdc50217 Signed-off-by: Mike J. Chen <mjchen@google.com> Signed-off-by: Ruslan Bilovol <ruslan.bilovol@ti.com>
* | OMAP: HDMI: Don't release power constraints which were never added.John Grossman2012-10-261-4/+11
| | | | | | | | | | | | | | | | | | | | Make certain we don't call pm_qos_remove_request if we have never added the request in the first place as it produces a nasty looking error message and stack track in the kernel logs. Change-Id: I1e955f15944908706f3a67cf6be0603478036ea5 Signed-off-by: John Grossman <johngro@google.com> Signed-off-by: Ruslan Bilovol <ruslan.bilovol@ti.com>
* | OMAPDSS: DSS: Fixing display's state-machine for suspendAndrii Guriev2012-10-192-4/+5
| | | | | | | | | | | | | | | | | | Issue with entering blaze to suspend state fixed. Also fixed error during hdmi driver resume when actual hdmi device was not connected. Change-Id: Iffb151982f020afb40dc2b39b35aa80a03091b32 Signed-off-by: Andrii Guriev <x0160204@ti.com>
* | OMAP:DSSCOMP:Limit modedb_len in query ioctlMike J. Chen2012-10-171-1/+10
| | | | | | | | | | | | | | | | | | Add an argument sanity check/limit to prevent heap corruption attacks. Change-Id: Ib466af13dba8da6bd4d9b326cdc6b842c8f3caa7 Signed-off-by: Erik Gilling <konkers@android.com> Signed-off-by: Ruslan Bilovol <ruslan.bilovol@ti.com>
* | OMAP4: DSSCOMP: Check user passed arg in ioctlMike J. Chen2012-10-171-0/+3
| | | | | | | | | | | | | | | | | | Prevent stack overflow if user passes in a value that's too large for num_ovl. Change-Id: I86a232544f8acc6a08eca00dfdb71db41f355341 Signed-off-by: Mike J. Chen <mjchen@google.com> Signed-off-by: Ruslan Bilovol <ruslan.bilovol@ti.com>
* | OMAP4: OMAPFB: Set overlay zorder to 0 if omapfb API usedMike J. Chen2012-10-171-0/+5
| | | | | | | | | | | | | | | | | | | | | | Since there's no ioctl to set zorder when modifying overlays using SETUP_PLANE, it's more useful to userland code if overlay is 0, so they don't have to use sysfs and first figure out which overlay is being used by omapfb. Change-Id: I1c2eeecb0b950439e40eec895d6b89c73df2fd7e Signed-off-by: Mike J. Chen <mjchen@google.com> Signed-off-by: Ruslan Bilovol <ruslan.bilovol@ti.com>
* | OMAP4: OMAPFB: Always set a x_decim and y_decim in overlaysMike J. Chen2012-10-171-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | When using the framebuffer API to setup overlay, there's currently no way to pass a x_decim and y_decim value in so set some safe non-zero defaults. Otherwise, when the overlay is enabled, zero values will cause divide by zero error in dispc. Change-Id: Id2cb4bc4cb6be7b57e3ab5fc28fffc57163faecb Signed-off-by: Mike J. Chen <mjchen@google.com> Signed-off-by: Ruslan Bilovol <ruslan.bilovol@ti.com>
* | omaplfb: Adds missing length assignment to clear bufferGustavo Diaz Prado2012-09-271-0/+1
| | | | | | | | | | | | | | | | | | Adds missing length assignment to the buffdesc used to clear (fill) the framebuffer. This was leading to problems in the GC driver buffer geometry validation. Change-Id: Ie75c48b530539f27cb977d3b7eda6fe2dd56901f Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
* | OMAPDSS: DSSCOMP: Add GPL license informationVictor Kleinik2012-09-261-0/+20
| | | | | | | | | | | | | | GPL license information was missing in gralloc.c Change-Id: I9da3b0cc8a4ad28439483bdc6fdc19587d1ad200 Signed-off-by: Victor Kleinik <x0150886@ti.com>
* | Revert "OMAPDSS: OMAPFB: Add support to suspend HDMI display"Andrii Guriev2012-09-241-22/+15
| | | | | | | | | | | | | | | | This reverts commit ecb0ad84eab0d6b2494fd40f68f6a9298047a3f7. For fixing power regression on HDMI and NULL pointer dereference. Change-Id: I158a4983bdf6f2e02bf54f2ab568f5ddfcdbbb3a Signed-off-by: Andrii Guriev <x0160204@ti.com>
* | OMAPDSS: panel tc358765 initialization delay after power-onMykhailo Denysiuk2012-09-121-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | This change adds delay for 100ms between powering on of display panel tc358765 and its initialization. This delay is needed, because time to time registers of the panel may be not initialized directly after power-on. The value for delay was found experimentally. Delay in tc358765_hw_reset() function (100ms) also plays role. Change-Id: I889a498787490adb004d0324a44fa44047278f6a Signed-off-by: Mykhailo Denysiuk <x0172934@ti.com>
* | OMAPDSS: DSSCOMP: support of MEM2MEM mode with blanked pannelArtem Rudenko2012-09-123-4/+74
| | | | | | | | | | | | | | This change implements MEM2MEM mode for pannels blanked case. Change-Id: Ia1e0034c73f196d877283e5ecc974f277988265e Signed-off-by: Artem Rudenko <artemrudenko@ti.com>
* | OMAPDSS: implementation of MEM2MEM mode with blanked pannel.Artem Rudenko2012-09-121-17/+98
| | | | | | | | | | | | | | This change implements MEM2MEM mode for pannels blanked case. Change-Id: Ic030682e7aaa33dd596d5150da23ab9dc1fc20f7 Signed-off-by: Artem Rudenko <artemrudenko@ti.com>
* | OMAPDSS: DISPC: do not lose taps selectionSergiy Kibrik2012-09-121-7/+10
| | | | | | | | | | | | | | | | Move taps selection logic before scaling check, so 3- of 5-tap always get selected, no metter whether we do scaling or not. Change-Id: I284b29933ca9fd69ae2088f279554dab9a66542c Signed-off-by: Sergiy Kibrik <sergiy.kibrik@globallogic.com>
* | OMAPDSS: DSS: Relax L3 bus bandwidth constraintTaras Kondratiuk2012-09-044-21/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a current codebase L3 BW constraint is set if any display has resution higher or equal FullHD. Estimated available DSS bandwidth on L3@OPP50 is ~800MB/s. It is approximately 3 WXGA layers or almost 1.5 FullHD layers at 60fps rate. This patch relaxes L3 BW constraint and set it only if current overlays' configuration needs higher BW. Change-Id: I45afe36876e9898b45e20901d2b5c2633f32b914 Signed-off-by: Taras Kondratiuk <taras@ti.com>
* | OMAPDSS: DSS: Scale DSS OPP according to pixel clock rateTaras Kondratiuk2012-09-041-0/+14
| | | | | | | | | | | | | | | | | | | | Before enabling pixel clock DSS should set its OPP for OPP framework to set correct VDD_CORE voltage level. When pixel clock is disabled DSS can set the lowest OPP. Change-Id: Ia1459614ae306dba9b048b149e474442e2880bba Signed-off-by: Taras Kondratiuk <taras@ti.com>
* | OMAPDSS: DISPC: Use FIR filters other than M19Lajos Molnar2012-09-031-3/+3
| | | | | | | | | | | | | | | | | | | | Pass correct arguments to FIR filter selection. Previously we always ended up selecting M19 5-tap filter. This should improve image quality of scaled layers. Change-Id: Iabe3219df7dcfd62c713fd92ee9c3d12221bc382 Signed-off-by: Lajos Molnar <lajos@ti.com>
* | omaplfb: add rotation check to pass the correct strideJack Yen2012-08-301-1/+4
| | | | | | | | | | | | | | | | Currently omaplfb_bv does calculate stride correctly for NV12. This patch fixed the stride calculation based on rotation angle. Change-Id: Icf4b099b2b6780a9e8743c8e712e00d580d1acf4 Signed-off-by: Jack Yen <jyen@ti.com>
* | OMAPDSS: connection to HDMI during suspendMykhailo Denysiuk2012-08-302-2/+3
| | | | | | | | | | | | | | | | This change adds capability to activate HDMI connection if cable was plugged in during suspend mode. Change-Id: I3f17489f16a3157fe20ae4ab86b4964a672f595f Signed-off-by: Mykhailo Denysiuk <x0172934@ti.com>
* | OMAPLFB: Dont foward compositions to DSSCOMP if overlay is ZeroDandawate Saket2012-08-281-4/+7
| | | | | | | | | | | | | | | | | | | | Do not foward compositions to DSSCOMP in case overlay number passed by HWC is zero. The dsscomp->num_overlay = 0 means that there is no primary display and no rendering is required. Change-Id: If7b582efeb55ce84878d0bfbd19eabd2ebd3afaa Signed-off-by: Tony Lofthouse <a0741364@ti.com> Signed-off-by: Dandawate Saket <dsaket@ti.com>
* | OMAPDSS: ld089wu1: add display driver for LG LD089WU1 panelVictor Kleinik2012-08-283-0/+375
| | | | | | | | | | | | | | Add display driver for LG LD089WU1 panel with WUXGA resolution Change-Id: Iaafd049ab1790b69023375710b54cf9ce050976d Signed-off-by: Victor Kleinik <x0150886@ti.com>
* | OMAPDSS: DSSCOMP:remove compilation warningsEugen Mandrenko2012-08-221-2/+2
| | | | | | | | | | | | | | SR requires there should be no compilation warnings Change-Id: I47b38f7ed134bd0e8f063d2276c31d1946dfcda2 Signed-off-by: Eugen Mandrenko <ievgen.mandrenko@ti.com>