linux/drivers/video
Tomi Valkeinen ddb1d5ca99 OMAPDSS: HDMI: clean up PHY power handling
The TRM tells to set PHY to TXON only after getting LINK_CONNECT, and to
set PHY to OFF or LDOON after getting LINK_DISCONNECT, in order to avoid
damage to the PHY.

We don't currently do it quite like that. Instead of using the HDMI
interrupts, we use HPD signal. This works, but is not actually quite
correct, as HPD comes at a different time than LINK_CONNECT and
LINK_DISCONNECT interrupts. Also, the HPD GPIO is a property of the TPD
level shifter, not HDMI IP, so handling the GPIO in the HDMI driver is
wrong.

This patch implements the PHY power handling correctly, using the
interrupts.

There is a corner case that causes some additional difficulties: we may
get both LINK_CONNECT and LINK_DISCONNECT interrupts at the same time.
This is handled in the code by retrying: turning off the PHY, clearing
the interrupt status, and re-enabling the PHY. This causes a new
LINK_CONNECT interrupt to happen if a cable is connected.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2013-06-17 14:00:54 +03:00
..
aty Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
backlight Removal of GENERIC_GPIO for v3.10 2013-05-09 09:59:16 -07:00
console staging/solo6x10: depend on CONFIG_FONTS 2013-05-16 15:37:50 -07:00
exynos Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-04-30 09:36:50 -07:00
geode drivers/video/geode: remove depends on CONFIG_EXPERIMENTAL 2013-01-21 14:52:46 -08:00
i810 Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
intelfb Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
kyro Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
logo
matrox matroxfb: convert struct i2c_msg initialization to C99 format 2013-04-29 15:54:26 -07:00
mb862xx Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
mbx Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
mmp drivers/video/mmp: remove legacy hw definitions 2013-04-29 15:54:27 -07:00
msm new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
nvidia Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
omap ARM: OMAP: remove "config FB_OMAP_CONSISTENT_DMA_SIZE" 2013-04-10 15:03:31 +03:00
omap2 OMAPDSS: HDMI: clean up PHY power handling 2013-06-17 14:00:54 +03:00
riva Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
savage Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sis Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
vermilion fbdev/vermillion: use vm_iomap_memory() 2013-04-24 08:41:42 +03:00
via viafb: rename display_timing to via_display_timing 2013-01-24 08:59:44 +01:00
68328fb.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
acornfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
acornfb.h
amba-clcd.c
amifb.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-04-30 09:36:50 -07:00
arcfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
arkfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
asiliantfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
atafb_iplan2p2.c
atafb_iplan2p4.c
atafb_iplan2p8.c
atafb_mfb.c
atafb_utils.h
atafb.c
atafb.h
atmel_lcdfb.c atmel_lcdfb: blank the backlight on remove 2013-06-01 03:18:55 +08:00
au1100fb.c MIPS: remove obsolete Kconfig macros 2013-05-08 01:19:06 +02:00
au1100fb.h
au1200fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
au1200fb.h
auo_k190x.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-04-30 09:36:50 -07:00
auo_k190x.h
auo_k1900fb.c AUO-K190x: add runtime-pm calls to controller init functions 2013-04-04 13:08:06 +03:00
auo_k1901fb.c AUO-K190x: add runtime-pm calls to controller init functions 2013-04-04 13:08:06 +03:00
bf54x-lq043fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
bf537-lq035.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
bfin_adv7393fb.c procfs: new helper - PDE_DATA(inode) 2013-04-09 14:13:32 -04:00
bfin_adv7393fb.h
bfin-lq035q1-fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
bfin-t350mcqb-fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
broadsheetfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
bt431.h
bt455.h
bw2.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
c2p_core.h
c2p_iplan2.c
c2p_planar.c
c2p.h
carminefb_regs.h
carminefb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
carminefb.h
cfbcopyarea.c
cfbfillrect.c
cfbimgblt.c
cg3.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
cg6.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
cg14.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
chipsfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
cirrusfb.c powerpc: remove PReP platform 2013-04-18 13:03:53 +10:00
clps711xfb.c ARM defconfigs: add missing inclusions of linux/platform_device.h 2013-02-14 15:14:32 -08:00
cobalt_lcdfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
controlfb.c fbdev/controlfb: use vm_iomap_memory() 2013-04-24 08:41:41 +03:00
controlfb.h
cyber2000fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
cyber2000fb.h
da8xx-fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
display_timing.c video: add display_timing and videomode 2013-01-24 09:03:04 +01:00
dnfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
edid.h
efifb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
ep93xx-fb.c drivers/video/ep93xx-fb.c: fix section mismatch and use module_platform_driver 2013-04-29 15:54:26 -07:00
fb_ddc.c
fb_defio.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
fb_draw.h
fb_notify.c
fb_sys_fops.c
fb-puv3.c fbdev/fb-puv3: use vm_iomap_memory() 2013-04-24 08:41:41 +03:00
fbcmap.c
fbcvt.c
fbmem.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2013-05-02 19:40:34 -07:00
fbmon.c Merge branch '3.10/fb-mmap' into for-next 2013-04-26 09:14:47 +03:00
fbsysfs.c fb: rework locking to fix lock ordering on takeover 2013-02-08 12:02:40 +10:00
ffb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
fm2fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
fsl-diu-fb.c drivers/video: fsl-diu-fb: add hardware cursor support 2013-04-10 15:03:32 +03:00
g364fb.c
gbefb.c fbdev: improve fb_mmap bounds checks 2013-04-26 08:28:56 +03:00
goldfishfb.c treewide: Fix typos in printk 2013-03-20 16:26:32 +01:00
grvga.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
gxt4500.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
hdmi.c video: hdmi: Relicense under MIT 2013-04-12 14:01:40 +10:00
hecubafb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
hgafb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
hitfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
hpfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
hyperv_fb.c drivers/video: add Hyper-V Synthetic Video Frame Buffer Driver 2013-04-29 15:54:26 -07:00
i740_reg.h
i740fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
igafb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
imsttfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
imxfb.c This is yet another critical imxfb fixes held off by absence of FB 2013-01-23 20:35:02 -08:00
jz4740_fb.c video: Convert to devm_ioremap_resource() 2013-01-22 11:41:58 -08:00
Kconfig fbdev: FB_GOLDFISH should depend on HAS_DMA 2013-05-24 16:22:52 -07:00
leo.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
macfb.c
macmodes.c
macmodes.h
Makefile drivers/video: implement a simple framebuffer driver 2013-05-24 16:22:51 -07:00
maxinefb.c
metronomefb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
modedb.c
mx3fb.c drivers/video/mx3fb.c: use NULL for pointer 2013-02-21 17:22:19 -08:00
mxsfb.c video: mxsfb: Adapt to new videomode API 2013-05-09 13:06:00 -07:00
n411.c
neofb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
nuc900fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
nuc900fb.h ARM: w90x900: move platform_data definitions 2012-09-14 11:18:59 +02:00
of_display_timing.c videomode: combine videomode dmt_flags and data_flags 2013-03-12 15:46:52 +02:00
of_videomode.c videomode: videomode_from_timing work 2013-03-21 14:34:33 +02:00
offb.c
output.c
p9100.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
platinumfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
platinumfb.h
pm2fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
pm3fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
pmag-aa-fb.c
pmag-ba-fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
pmagb-b-fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
ps3fb.c fbdev/ps3fb: fix compile warning 2013-05-02 14:59:21 +03:00
pvr2fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
pxa3xx-gcu.c pxa3xx-gcu: stop embedding file_operations into device-private object 2013-04-09 14:16:40 -04:00
pxa3xx-gcu.h
pxa168fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
pxa168fb.h
pxafb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
pxafb.h
q40fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
s1d13xxxfb.c treewide: Fix typo in printks 2013-04-12 15:21:36 +02:00
s3c2410fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
s3c2410fb.h
s3c-fb.c video/s3c: move platform_data out of arch/arm 2013-04-11 14:49:20 +03:00
s3fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sa1100fb.c fbdev/sa1100fb: use vm_iomap_memory() 2013-04-24 08:41:41 +03:00
sa1100fb.h
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 fbdev/sgivwfb: use vm_iomap_memory() 2013-04-24 08:41:42 +03:00
sh7760fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sh_mipi_dsi.c drivers: video: use module_platform_driver_probe() 2013-04-10 15:03:31 +03:00
sh_mobile_hdmi.c drivers: video: use module_platform_driver_probe() 2013-04-10 15:03:31 +03:00
sh_mobile_lcdcfb.c fbdev: sh_mobile_lcdc: fixup B side hsync adjust settings 2013-03-27 22:47:24 +09: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 Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
simplefb.c drivers/video: implement a simple framebuffer driver 2013-05-24 16:22:51 -07:00
skeletonfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sm501fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
smscufx.c fbdev: improve fb_mmap bounds checks 2013-04-26 08:28:56 +03:00
ssd1307fb.c treewide: Fix typo in printks 2013-04-12 15:21:36 +02:00
sstfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sticore.h
stifb.c
sunxvr500.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sunxvr1000.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sunxvr2500.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
svgalib.c
syscopyarea.c
sysfillrect.c
sysimgblt.c
tcx.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
tdfxfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
tgafb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
tmiofb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
tridentfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
udlfb.c fbdev: improve fb_mmap bounds checks 2013-04-26 08:28:56 +03:00
uvesafb.c video/uvesafb: rename random32() to prandom_u32() 2013-04-29 18:28:43 -07:00
valkyriefb.c
valkyriefb.h
vesafb.c
vfb.c fbdev: improve fb_mmap bounds checks 2013-04-26 08:28:56 +03:00
vga16fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
vgastate.c
videomode.c videomode: videomode_from_timing work 2013-03-21 14:34:33 +02:00
vt8500lcdfb.c video: fb: vt8500: Convert framebuffer drivers to standardized binding 2013-04-04 13:07:34 +03:00
vt8500lcdfb.h
vt8623fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
w100fb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
w100fb.h
wm8505fb_regs.h
wm8505fb.c video: wm8505fb: Convert to devm_ioremap_resource() 2013-04-10 11:15:49 +03:00
wmt_ge_rops.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
wmt_ge_rops.h video: vt8500: Make wmt_ge_rops optional 2013-04-04 13:07:33 +03:00
xen-fbfront.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
xilinxfb.c Drivers: video: remove __dev* attributes. 2013-01-03 15:57:01 -08:00