android_kernel_motorola_sm6225/drivers/video
Anatolij Gustschin b2639b5f1d drivers/video: fsl-diu-fb: fix bugs in interrupt handling
Since commit f74de500 "drivers/video: fsl-diu-fb: streamline
enabling of interrupts" the interrupt handling in the driver
is broken. Enabling diu interrupt causes an interrupt storm and
results in system lockup.

The cookie for the interrupt handler function passed to request_irq()
is wrong (it must be a pointer to the diu struct, and not the address
of the pointer to the diu struct). As a result the interrupt handler
can not read diu registers and acknowledge the interrupt. Fix cookie
arguments for request_irq() and free_irq().

Registering the diu interrupt handler in probe() must happen before
install_fb() calls since this function registers framebuffer devices
and if fbcon tries to take over framebuffer after registering a frame
buffer device, it will call fb_open of the diu driver and enable the
interrupts. At this time the diu interrupt handler must be registered
already.

Disabling the interrupts in fsl_diu_release() must happen only if all
other AOIs are closed. Otherwise closing an overlay plane will disable
the interrupts even if the primary frame buffer plane is opened. Add
an appropriate check in the release function.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Cc: Timur Tabi <timur@tabi.org>
Cc: stable@vger.kernel.org
2013-01-29 08:29:57 +00:00
..
aty mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
backlight backlight: locomolcd: fix checkpatch error and warning 2012-12-18 15:02:11 -08:00
console fbdev changes for 3.8: 2012-12-15 13:03:48 -08:00
exynos video: exynos_dp: remove redundant parameters 2012-11-29 10:33:28 +09:00
geode sections: fix section conflicts in drivers/video 2012-10-06 03:04:44 +09:00
i810 sections: fix section conflicts in drivers/video 2012-10-06 03:04:44 +09:00
intelfb drivers/video/intelfb/intelfbdrv.c: add missing agp_backend_release 2012-05-13 13:05:24 +00:00
kyro kyrofb: fix on x86_64 2012-04-08 14:27:08 +00:00
logo module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
matrox i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING 2012-05-30 10:55:34 +02:00
mb862xx drivers/video/mb862xx/mb862xxfbdrv.c: fix error return code 2012-09-22 21:41:51 +00:00
mbx video: mbxfb: Include linux/io.h instead of asm/io.h 2012-09-22 21:19:38 +00:00
msm fbdev updates for 3.7 2012-10-12 10:21:02 +09:00
nvidia drivers/video/nvidia/nvidia.c: fix warning 2012-01-12 20:13:03 -08:00
omap ARM: OMAP: Move plat-omap/dma-omap.h to include/linux/omap-dma.h 2012-11-30 08:41:50 -08:00
omap2 ARM: OMAP: Fix drivers to depend on omap for internal devices 2012-12-16 15:23:37 -08:00
riva riva/fbdev: fix several -Wuninitialized 2012-02-13 02:59:14 +00:00
savage drivers/video/savage/savagefb_driver.c: fix error return code 2012-10-10 02:06:18 +00:00
sis drivers/video/sis/initextlfb.c: removes unnecessary semicolon 2012-09-22 21:35:41 +00:00
vermilion fbdev updates for 3.7 2012-10-12 10:21:02 +09:00
via viafb: don't touch clock state on OLPC XO-1.5 2012-09-22 21:31:01 +00:00
68328fb.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
acornfb.c acornfb: use display information in info not in var for panning 2011-08-19 10:29:34 +02:00
acornfb.h
amba-clcd.c fbdev: amba: Enable module alias autogeneration for AMBA drivers 2011-11-22 10:58:33 +00:00
amifb.c fbdev/amifb: Remove write-only variable amifb_inverse 2012-08-23 13:19:46 +00:00
arcfb.c drivers/video/arcfb.c: fix error return code 2012-09-22 21:41:53 +00:00
arkfb.c arkfb: use display information in info not in var for panning 2011-08-19 10:29:44 +02:00
asiliantfb.c
atafb.c m68k/atari: Do not use "/" in interrupt names 2011-05-19 18:19:10 +02:00
atafb.h
atafb_iplan2p2.c
atafb_iplan2p4.c
atafb_iplan2p8.c
atafb_mfb.c
atafb_utils.h
atmel_lcdfb.c arm: at91: move platfarm_data to include/linux/platform_data/atmel.h 2012-11-06 20:29:33 +08:00
au1100fb.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
au1100fb.h fb: fix au1100fb bitrot. 2011-10-03 15:52:38 +00:00
au1200fb.c fbdev: fix au1*fb builds 2012-04-08 14:27:09 +00:00
au1200fb.h
auo_k190x.c drivers/video/auo_k190x.c: drop kfree of devm_kzalloc's data 2012-08-23 12:32:09 +00:00
auo_k190x.h video: auo_k190x: add code shared by controller drivers 2012-04-29 19:35:35 +00:00
auo_k1900fb.c video: auo_k190x: add driver for AUO-K1900 variant 2012-04-29 19:35:40 +00:00
auo_k1901fb.c video: auo_k190x: add driver for AUO-K1901 variant 2012-04-29 19:35:42 +00:00
bf54x-lq043fb.c video: bf*: Add missing spinlock init 2012-09-22 21:35:02 +00:00
bf537-lq035.c drivers/video/bf537-lq035.c: use devm_ functions 2012-08-23 12:59:58 +00:00
bfin-lq035q1-fb.c video: bf*: Add missing spinlock init 2012-09-22 21:35:02 +00:00
bfin-t350mcqb-fb.c video: bf*: Add missing spinlock init 2012-09-22 21:35:02 +00:00
bfin_adv7393fb.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-07-24 13:34:56 -07:00
bfin_adv7393fb.h Fix common misspellings 2011-03-31 11:26:23 -03:00
broadsheetfb.c drivers/video: use correct __devexit_p annotation 2012-06-09 12:51:11 +00:00
bt431.h Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
bt455.h Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
bw2.c drivers/video/bw2.c: fix error return code 2012-09-22 21:41:52 +00:00
c2p.h
c2p_core.h
c2p_iplan2.c
c2p_planar.c
carminefb.c video: Add module.h to drivers/video files who really use it. 2011-10-31 19:31:33 -04:00
carminefb.h
carminefb_regs.h
cfbcopyarea.c
cfbfillrect.c
cfbimgblt.c
cg3.c drivers/video/cg3.c: fix error return code 2012-09-22 21:41:51 +00:00
cg6.c video: add missing framebuffer_release in error path 2011-03-22 16:35:44 +09:00
cg14.c video: add missing framebuffer_release in error path 2011-03-22 16:35:44 +09:00
chipsfb.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
cirrusfb.c video: Fix typo in drivers/video 2012-07-24 12:58:15 +02:00
clps711xfb.c ARM: clps711x: Moving backlight controls of framebuffer driver to the board 2012-11-21 09:57:45 -08:00
cobalt_lcdfb.c drivers/video/cobalt_lcdfb.c: use devm_ functions 2012-08-23 12:59:02 +00:00
controlfb.c Drivers: video: controlfb: fixed a brace coding style issue 2011-11-22 01:00:16 +00:00
controlfb.h
cyber2000fb.c drivers/video/cyber2000fb.c: fix error return code 2012-09-22 21:41:52 +00:00
cyber2000fb.h VIDEO: cyberpro: remove unused cyber2000fb_get_fb_var() 2011-02-11 10:16:07 +00:00
da8xx-fb.c da8xx: Fix revision check on the da8xx driver 2012-12-04 11:19:41 +02:00
dnfb.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
edid.h video: Fix EDID macros H_SYNC_WIDTH and H_SYNC_OFFSET 2011-03-22 16:45:03 +09:00
efifb.c efifb: Skip DMI checks if the bootloader knows what it's doing 2012-09-17 13:29:23 +01:00
ep93xx-fb.c fbdev updates for 3.7 2012-10-12 10:21:02 +09:00
fb-puv3.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
fb_ddc.c video: Add module.h to drivers/video files who really use it. 2011-10-31 19:31:33 -04:00
fb_defio.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
fb_draw.h fbdev: Make pixel_to_pat() failure mode more friendly 2012-07-29 12:25:06 +00:00
fb_notify.c video: Add export.h for THIS_MODULE/EXPORT_SYMBOL to drivers/video 2011-10-31 19:31:33 -04:00
fb_sys_fops.c
fbcmap.c framebuffer: fix fbcmap.c kernel-doc warning 2010-11-26 15:05:08 +09:00
fbcvt.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
fbmem.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
fbmon.c fbdev: fix parsing of standard timings 2011-09-01 00:31:05 +00:00
fbsysfs.c fb: handle NULL pointers in framebuffer release 2012-05-29 13:00:03 +00:00
ffb.c video: ffb: fix ffb_probe error path 2011-03-22 16:18:51 +09:00
fm2fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
fsl-diu-fb.c drivers/video: fsl-diu-fb: fix bugs in interrupt handling 2013-01-29 08:29:57 +00:00
g364fb.c g364fb: use display information in info not in var for panning 2011-08-19 10:31:09 +02:00
gbefb.c fbdev updates for 3.7 2012-10-12 10:21:02 +09:00
grvga.c grvga: Fix error handling issues 2012-07-08 14:03:17 +00:00
gxt4500.c fbdev: Add GXT4000P and GXT6500P support to the gxt4500 driver 2012-11-15 12:59:14 +11:00
hecubafb.c hecubafb: add module_put on error path in hecubafb_probe() 2011-06-24 17:00:39 +09:00
hgafb.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
hitfb.c
hpfb.c video: hpfb: Fix error handling 2012-09-22 21:16:20 +00:00
i740_reg.h Resurrect Intel740 driver: i740fb 2012-02-15 04:31:21 +00:00
i740fb.c video: Fix typo in drivers/video 2012-07-24 12:58:15 +02:00
igafb.c doc: fix broken references 2011-09-27 18:08:04 +02:00
imsttfb.c imsttfb: use display information in info not in var for panning 2011-08-19 10:31:39 +02:00
imxfb.c video: imxfb: remove cpu_is_xxx by using platform_device_id 2012-10-15 10:05:42 +08:00
jz4740_fb.c fbdev updates for 3.7 2012-10-12 10:21:02 +09:00
Kconfig Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-12-18 09:58:09 -08:00
leo.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
macfb.c macfb: fix black and white modes 2012-01-22 14:50:02 +01:00
macmodes.c
macmodes.h
Makefile drivers/video: add support for the Solomon SSD1307 OLED Controller 2012-12-10 11:33:53 +02:00
maxinefb.c
metronomefb.c video: Convert vmalloc/memset to vzalloc 2011-06-02 17:25:35 +09:00
modedb.c fbdev: fix indentation in modedb.c 2011-09-14 16:40:52 +00:00
mx3fb.c video: mx3fb: remove unneeded mach/hardware.h inclusion 2012-10-15 10:03:14 +08:00
mxsfb.c video: mxsfb: add simple device tree probe 2012-07-03 13:22:37 +08:00
n411.c
neofb.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
nuc900fb.c fbdev updates for 3.7 2012-10-12 10:21:02 +09:00
nuc900fb.h ARM: w90x900: move platform_data definitions 2012-09-14 11:18:59 +02:00
offb.c offb: Fix setting of the pseudo-palette for >8bpp 2012-01-03 12:09:25 +11:00
output.c
p9100.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
platinumfb.c video: platinumfb: Add __devexit_p at necessary place 2011-10-15 00:19:58 +00:00
platinumfb.h
pm2fb.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
pm3fb.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
pmag-aa-fb.c
pmag-ba-fb.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
pmagb-b-fb.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ps3fb.c fbdev updates for 3.7 2012-10-12 10:21:02 +09:00
pvr2fb.c drivers/video/pvr2fb.c: ensure arguments to request_irq and free_irq are compatible 2012-03-13 23:17:31 +00:00
pxa3xx-gcu.c video: pxa3xx-gcu: Simplify the logic to exit while loop in pxa3xx_gcu_wait_idle 2012-04-09 16:18:15 +00:00
pxa3xx-gcu.h video: add driver for PXA3xx 2D graphics accelerator 2010-12-16 14:31:18 +08:00
pxa168fb.c drivers/video/pxa168fb.c: use devm_ functions 2012-02-24 00:49:59 +00:00
pxa168fb.h
pxafb.c ARM: pxa: move platform_data definitions 2012-09-14 11:18:10 +02:00
pxafb.h ARM: pxafb: rework pxafb overlay memory management 2011-03-16 17:37:03 +08:00
q40fb.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
s1d13xxxfb.c s1d13xxxfb: drop unused code 2010-12-21 01:05:43 +09:00
s3c-fb.c video: s3c-fb: fix red offset and length for ARGB232 format 2012-11-26 13:35:36 +09:00
s3c2410fb.c video: s3c2410: fix checkpatch warnings 2012-09-22 21:37:56 +00:00
s3c2410fb.h
s3fb.c s3fb: Add Virge/MX (86C260) 2012-07-08 14:03:50 +00:00
sa1100fb.c FB: sa11x0: convert to use platform resource and ioremap() 2012-02-24 09:39:59 +00:00
sa1100fb.h FB: sa11x0: convert to use platform resource and ioremap() 2012-02-24 09:39:59 +00:00
sbuslib.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
sbuslib.h
sgivwfb.c
sh7760fb.c video: convert drivers/video/* to use module_platform_driver() 2011-12-03 22:08:42 +00:00
sh_mipi_dsi.c fbdev: sh_mipi_dsi: Remove last reference to LCDC platform data 2012-11-21 15:50:01 +01:00
sh_mobile_hdmi.c fbdev: sh_mobile_hdmi: add HDMI Control Register support 2012-05-13 13:07:59 +00:00
sh_mobile_lcdcfb.c fbdev: sh_mobile_lcdc: Make sh_mobile_lcdc_sys_bus_ops static 2012-11-21 15:50:02 +01:00
sh_mobile_lcdcfb.h fbdev: sh_mobile_lcdc: Store the backlight brightness internally 2012-11-21 15:50:01 +01:00
sh_mobile_meram.c sh_mobile_meram: Add direct MERAM allocation API 2012-07-19 02:05:22 +02:00
skeletonfb.c skeletonfb: fixed module exit function typo. 2012-04-15 21:44:02 +00:00
sm501fb.c video: convert drivers/video/* to use module_platform_driver() 2011-12-03 22:08:42 +00:00
smscufx.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
ssd1307fb.c drivers/video: add support for the Solomon SSD1307 OLED Controller 2012-12-10 11:33:53 +02:00
sstfb.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
sticore.h Fix common misspellings 2011-03-31 11:26:23 -03:00
stifb.c
sunxvr500.c drivers/video/sunxvr500.c: fix error return code 2012-09-22 21:41:51 +00:00
sunxvr1000.c drivers/video/sunxvr1000.c: fix error return code 2012-09-22 21:41:51 +00:00
sunxvr2500.c drivers/video/sunxvr2500.c: fix error return code 2012-08-23 13:21:48 +00:00
svgalib.c svga: Make svga_set_timings() take an iomem regbase pointer. 2011-03-22 15:47:22 +09:00
syscopyarea.c
sysfillrect.c
sysimgblt.c
tcx.c video: add missing framebuffer_release in error path 2011-03-22 16:35:44 +09:00
tdfxfb.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
tgafb.c
tmiofb.c tmiofb: missing NULL pointer checks 2012-09-01 08:51:03 -07:00
tridentfb.c tridentfb: use display information in info not in var for panning 2011-08-19 10:35:18 +02:00
udlfb.c fbdev updates for 3.7 2012-10-12 10:21:02 +09:00
uvesafb.c video:uvesafb: check the return value of kzalloc 2012-08-23 13:18:08 +00:00
valkyriefb.c video: Fix speficied typo 2011-06-24 17:14:39 +09:00
valkyriefb.h
vesafb.c vesafb: fix memory leak 2011-07-04 16:02:48 +09:00
vfb.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
vga16fb.c vga16fb: use display information in info not in var for panning 2011-08-19 10:35:34 +02:00
vgastate.c
vt8500lcdfb.c ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
vt8500lcdfb.h ARM: Add support for the display controllers in VT8500 and WM8505 2010-11-09 18:52:07 +09:00
vt8623fb.c vt8623fb: use display information in info not in var for panning 2011-08-19 10:36:20 +02:00
w100fb.c video: w100fb: Reduce sleep mode battery discharge 2012-07-08 14:03:02 +00:00
w100fb.h
wm8505fb.c ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
wm8505fb_regs.h ARM: Add support for the display controllers in VT8500 and WM8505 2010-11-09 18:52:07 +09:00
wmt_ge_rops.c video: vt8500: Add devicetree support for vt8500-fb and wm8505-fb 2012-09-21 19:23:56 +12:00
wmt_ge_rops.h ARM: Add support for the display controllers in VT8500 and WM8505 2010-11-09 18:52:07 +09:00
xen-fbfront.c xen-fbfront: handle backend CLOSED without CLOSING 2012-10-30 09:28:17 -04:00
xilinxfb.c video: convert drivers/video/* to use module_platform_driver() 2011-12-03 22:08:42 +00:00