linux/drivers/video
Archit Taneja cf398fb3e6 OMAP: DSS2: DSI: Introduce sync_vc functions
The DSI protocol engine has no interrupt for signalling the end of a Frame
transfer. The present approach is to send a BTA after DISPC generates a
FRAMEDONE interrupt, and unlock the dsi bus only when the BTA Ack is received.

The assumption made with this approach was that OMAP will send a BTA only after
the long packet corresponding to the last line is sent. However, it is possible
that on the DISPC FRAMEDONE interrupt there are 2 (or more) lines of pixel data
in the DSI line buffer. Hence, the BTA Ack could be received for the long packet
corresponding to the second last line (or the third last and so on..).
Therefore, the current method doesn't ensure that the complete frame data is
sent before we start a new transfer. A similar explanation holds valid if we
send a BTA in between multiple short/long command packets from the slave port.

Introduce dsi_sync_vc functions, based on Tomi Valkeinen's idea, which ensure
that the DSI Virtual Channel in use(update_channel) completes its previous work
before proceeding to the next Frame/Command.

For a frame update, the DSI driver now sends a callback to the Panel Driver
on the FRAMEDONE interrupt itself. The callback in the panel driver then unlocks
the bus. dsi_sync_vc() functions are placed in dsi_vc_config_l4() and
dsi_vc_config_vp() to ensure that the previous task of the Virtual Channel is
completed.

Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2011-05-11 14:10:55 +03:00
..
aty Fix common misspellings 2011-03-31 11:26:23 -03:00
backlight Fix common misspellings 2011-03-31 11:26:23 -03:00
console Merge branch 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6 2011-04-07 12:49:17 -07:00
display Fix common misspellings 2011-03-31 11:26:23 -03:00
geode Fix common misspellings 2011-03-31 11:26:23 -03:00
i810 Fix common misspellings 2011-03-31 11:26:23 -03:00
intelfb video: change to new flag variable 2011-03-17 14:05:35 +01:00
kyro Fix common misspellings 2011-03-31 11:26:23 -03:00
logo
matrox Fix common misspellings 2011-03-31 11:26:23 -03:00
mb862xx dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
mbx
msm msm: mdp: Set the correct pack pattern for XRGB/ARGB 2011-03-08 11:54:46 -08:00
nvidia backlight: add backlight type 2011-03-22 17:43:59 -07:00
omap Fix common misspellings 2011-03-31 11:26:23 -03:00
omap2 OMAP: DSS2: DSI: Introduce sync_vc functions 2011-05-11 14:10:55 +03:00
pnx4008
riva backlight: add backlight type 2011-03-22 17:43:59 -07:00
savage Merge branch 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6 2011-04-07 12:49:17 -07:00
sis sisfb: add support for XGI Z9 DDR2 POST 2011-03-22 15:21:01 +09:00
vermilion vmlfb: use list_move() instead of list_del()/list_add() combination 2011-03-22 15:13:38 +09:00
via Merge branch 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6 2011-04-07 12:49:17 -07:00
68328fb.c
acornfb.c
acornfb.h
amba-clcd.c Merge branches 'fixes', 'pgt-next' and 'versatile' into devel 2011-03-20 09:32:12 +00:00
amifb.c
arcfb.c
arkfb.c arkfb: Compute VGA base iomem pointer explicitly. 2011-03-22 15:47:55 +09:00
asiliantfb.c
atafb_iplan2p2.c
atafb_iplan2p4.c
atafb_iplan2p8.c
atafb_mfb.c
atafb_utils.h
atafb.c
atafb.h
atmel_lcdfb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
au1100fb.c
au1100fb.h
au1200fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
au1200fb.h
bf54x-lq043fb.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
bf537-lq035.c drivers/video/bf537-lq035.c: Add missing IS_ERR test 2011-01-25 15:09:24 +09:00
bfin_adv7393fb.c fbdev: bfin_adv7393fb: new Blackfin ADV7393 driver 2010-11-26 15:06:39 +09:00
bfin_adv7393fb.h Fix common misspellings 2011-03-31 11:26:23 -03:00
bfin-lq035q1-fb.c drivers/video/bfin-lq035q1-fb.c: introduce missing kfree 2011-04-06 09:44:57 -07:00
bfin-t350mcqb-fb.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
broadsheetfb.c
bt431.h
bt455.h
bw2.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
c2p_core.h
c2p_iplan2.c
c2p_planar.c
c2p.h
carminefb_regs.h
carminefb.c drivers/video/carminefb.c: improve error handling 2011-01-06 15:46:56 +09:00
carminefb.h
cfbcopyarea.c
cfbfillrect.c
cfbimgblt.c
cg3.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07: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
clps711xfb.c
cobalt_lcdfb.c
controlfb.c
controlfb.h
cyber2000fb.c VIDEO: cyberpro: remove unused cyber2000fb_get_fb_var() 2011-02-11 10:16:07 +00:00
cyber2000fb.h VIDEO: cyberpro: remove unused cyber2000fb_get_fb_var() 2011-02-11 10:16:07 +00:00
da8xx-fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
dnfb.c
edid.h video: Fix EDID macros H_SYNC_WIDTH and H_SYNC_OFFSET 2011-03-22 16:45:03 +09:00
efifb.c efifb: Add override for 11" Macbook Air 3,1 2011-04-06 10:58:10 -07:00
ep93xx-fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
epson1355fb.c
fb_ddc.c
fb_defio.c workqueue: convert cancel_rearming_delayed_work[queue]() users to cancel_delayed_work_sync() 2010-12-15 10:56:11 +01:00
fb_draw.h
fb_notify.c
fb_sys_fops.c
fb-puv3.c unicore32 framebuffer fix: get videomemory by __get_free_pages() and make it floatable 2011-04-02 16:17:38 +08:00
fbcmap.c framebuffer: fix fbcmap.c kernel-doc warning 2010-11-26 15:05:08 +09:00
fbcvt.c
fbmem.c fb: Reduce priority of resource conflict message 2011-04-06 09:58:29 -07:00
fbmon.c fbdev: when parsing E-EDID blocks, also use SVD entries 2010-11-15 14:52:23 +09:00
fbsysfs.c Fix common misspellings 2011-03-31 11:26:23 -03: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 Fix common misspellings 2011-03-31 11:26:23 -03:00
g364fb.c
gbefb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
gxt4500.c
hecubafb.c video: hecubafb: add __devexit_p around reference to hecubafb_remove 2011-03-22 16:34:28 +09:00
hgafb.c video: Fix the HGA framebuffer driver 2011-01-06 15:48:13 +09:00
hitfb.c
hpfb.c video: hpfb: use resource_size() 2011-03-22 16:07:32 +09:00
igafb.c
imsttfb.c
imxfb.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
jz4740_fb.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
Kconfig Merge branch 'devel-stable' of master.kernel.org:/home/rmk/linux-2.6-arm 2011-03-17 19:08:06 -07:00
leo.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
macfb.c
macmodes.c
macmodes.h
Makefile Merge branch 'devel-stable' of master.kernel.org:/home/rmk/linux-2.6-arm 2011-03-17 19:08:06 -07:00
maxinefb.c
metronomefb.c video: metronomefb: add __devexit_p around reference to metronomefb_remove 2011-03-22 16:34:33 +09:00
modedb.c video: tidy up modedb formatting. 2011-01-12 14:57:52 +09:00
mx3fb.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
mxsfb.c video: Add i.MX23/28 framebuffer driver 2011-03-07 19:29:30 +01:00
n411.c
neofb.c
nuc900fb.c video: nuc900fb: properly free resources in nuc900fb_remove 2011-01-18 13:38:06 +09:00
nuc900fb.h Fix common misspellings 2011-03-31 11:26:23 -03:00
offb.c
output.c
p9100.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
platinumfb.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
platinumfb.h
pm2fb.c
pm3fb.c
pmag-aa-fb.c
pmag-ba-fb.c
pmagb-b-fb.c
ps3fb.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
pvr2fb.c
pxa3xx-gcu.c Fix common misspellings 2011-03-31 11:26:23 -03:00
pxa3xx-gcu.h video: add driver for PXA3xx 2D graphics accelerator 2010-12-16 14:31:18 +08:00
pxa168fb.c video: pxa168fb: remove a redundant pxa168fb_check_var call 2011-01-25 15:09:19 +09:00
pxa168fb.h
pxafb.c ARM: pxafb: Fix access to nonexistent member of pxafb_info 2011-04-12 23:07:42 +08:00
pxafb.h ARM: pxafb: rework pxafb overlay memory management 2011-03-16 17:37:03 +08:00
q40fb.c
s1d13xxxfb.c s1d13xxxfb: drop unused code 2010-12-21 01:05:43 +09:00
s3c2410fb.c s3c2410fb: don't treat NULL clk as an error 2011-01-12 15:00:31 +09:00
s3c2410fb.h
s3c-fb.c video: s3c-fb: fix checkpatch errors and warning 2011-04-06 09:44:57 -07:00
s3fb.c s3fb: fix Virge/GX2 2011-03-31 13:48:58 +09:00
sa1100fb.c
sa1100fb.h
sbuslib.c
sbuslib.h
sgivwfb.c
sh7760fb.c video: sh7760fb: use resource_size() 2011-03-22 16:07:35 +09:00
sh_mipi_dsi.c fbdev: sh_mipi_dsi: use platform provided register layout and values 2011-01-05 17:22:32 +09:00
sh_mobile_hdmi.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
sh_mobile_lcdcfb.c Merge branch 'common/fbdev' of master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6 2011-03-29 16:06:21 +09:00
sh_mobile_lcdcfb.h Merge branch 'common/fbdev' of master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6 2011-03-29 16:06:21 +09:00
skeletonfb.c
sm501fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
sstfb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
sticore.h Fix common misspellings 2011-03-31 11:26:23 -03:00
stifb.c
sunxvr500.c
sunxvr1000.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
sunxvr2500.c
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 Fix common misspellings 2011-03-31 11:26:23 -03:00
tgafb.c
tmiofb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
tridentfb.c
udlfb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
uvesafb.c uvesafb,vesafb: create WC or WB PAT-entries 2011-03-22 16:20:44 +09:00
valkyriefb.c
valkyriefb.h
vesafb.c uvesafb,vesafb: create WC or WB PAT-entries 2011-03-22 16:20:44 +09:00
vfb.c
vga16fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
vgastate.c
vt8500lcdfb.c fbdev: Implement simple blanking in pseudocolor modes for vt8500lcdfb 2011-01-13 13:07:41 +09: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: Compute VGA base iomem pointer explicitly. 2011-03-22 15:47:59 +09:00
w100fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
w100fb.h
wm8505fb_regs.h ARM: Add support for the display controllers in VT8500 and WM8505 2010-11-09 18:52:07 +09:00
wm8505fb.c fbdev: Modify vsync timing calculation in wm8505fb 2010-12-21 01:05:48 +09:00
wmt_ge_rops.c fbdev: Minor cleanup in WM8505-related code 2010-12-21 01:05:43 +09: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 console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
xilinxfb.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00