aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2011-10-14 20:19:52 -0400
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2011-10-14 20:19:52 -0400
commitef26b7943c5821aaff1efc14c098840c49fe15c0 (patch)
treea91834ef396633c5c56a0597c2fc525e0684fc30 /drivers/media
parent07aaae44f5a3962c3a410a6dd7936dfa7dece2b9 (diff)
parent3e28189038bb831512cf4f8313e1aead97c3e63f (diff)
Merge branch 'for-florian' of git://gitorious.org/linux-omap-dss2/linux into fbdev-next
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/omap/omap_vout.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/media/video/omap/omap_vout.c b/drivers/media/video/omap/omap_vout.c
index b3a5ecdb33a..30d8896bb71 100644
--- a/drivers/media/video/omap/omap_vout.c
+++ b/drivers/media/video/omap/omap_vout.c
@@ -400,7 +400,6 @@ static int omapvid_setup_overlay(struct omap_vout_device *vout,
400 400
401 ovl->get_overlay_info(ovl, &info); 401 ovl->get_overlay_info(ovl, &info);
402 info.paddr = addr; 402 info.paddr = addr;
403 info.vaddr = NULL;
404 info.width = cropwidth; 403 info.width = cropwidth;
405 info.height = cropheight; 404 info.height = cropheight;
406 info.color_mode = vout->dss_mode; 405 info.color_mode = vout->dss_mode;
@@ -1165,12 +1164,17 @@ static int vidioc_try_fmt_vid_overlay(struct file *file, void *fh,
1165{ 1164{
1166 int ret = 0; 1165 int ret = 0;
1167 struct omap_vout_device *vout = fh; 1166 struct omap_vout_device *vout = fh;
1167 struct omap_overlay *ovl;
1168 struct omapvideo_info *ovid;
1168 struct v4l2_window *win = &f->fmt.win; 1169 struct v4l2_window *win = &f->fmt.win;
1169 1170
1171 ovid = &vout->vid_info;
1172 ovl = ovid->overlays[0];
1173
1170 ret = omap_vout_try_window(&vout->fbuf, win); 1174 ret = omap_vout_try_window(&vout->fbuf, win);
1171 1175
1172 if (!ret) { 1176 if (!ret) {
1173 if (vout->vid == OMAP_VIDEO1) 1177 if ((ovl->caps & OMAP_DSS_OVL_CAP_GLOBAL_ALPHA) == 0)
1174 win->global_alpha = 255; 1178 win->global_alpha = 255;
1175 else 1179 else
1176 win->global_alpha = f->fmt.win.global_alpha; 1180 win->global_alpha = f->fmt.win.global_alpha;
@@ -1194,8 +1198,8 @@ static int vidioc_s_fmt_vid_overlay(struct file *file, void *fh,
1194 1198
1195 ret = omap_vout_new_window(&vout->crop, &vout->win, &vout->fbuf, win); 1199 ret = omap_vout_new_window(&vout->crop, &vout->win, &vout->fbuf, win);
1196 if (!ret) { 1200 if (!ret) {
1197 /* Video1 plane does not support global alpha */ 1201 /* Video1 plane does not support global alpha on OMAP3 */
1198 if (ovl->id == OMAP_DSS_VIDEO1) 1202 if ((ovl->caps & OMAP_DSS_OVL_CAP_GLOBAL_ALPHA) == 0)
1199 vout->win.global_alpha = 255; 1203 vout->win.global_alpha = 255;
1200 else 1204 else
1201 vout->win.global_alpha = f->fmt.win.global_alpha; 1205 vout->win.global_alpha = f->fmt.win.global_alpha;
@@ -1788,7 +1792,9 @@ static int vidioc_s_fbuf(struct file *file, void *fh,
1788 if (ovl->manager && ovl->manager->get_manager_info && 1792 if (ovl->manager && ovl->manager->get_manager_info &&
1789 ovl->manager->set_manager_info) { 1793 ovl->manager->set_manager_info) {
1790 ovl->manager->get_manager_info(ovl->manager, &info); 1794 ovl->manager->get_manager_info(ovl->manager, &info);
1791 info.alpha_enabled = enable; 1795 /* enable this only if there is no zorder cap */
1796 if ((ovl->caps & OMAP_DSS_OVL_CAP_ZORDER) == 0)
1797 info.partial_alpha_enabled = enable;
1792 if (ovl->manager->set_manager_info(ovl->manager, &info)) 1798 if (ovl->manager->set_manager_info(ovl->manager, &info))
1793 return -EINVAL; 1799 return -EINVAL;
1794 } 1800 }
@@ -1820,7 +1826,7 @@ static int vidioc_g_fbuf(struct file *file, void *fh,
1820 } 1826 }
1821 if (ovl->manager && ovl->manager->get_manager_info) { 1827 if (ovl->manager && ovl->manager->get_manager_info) {
1822 ovl->manager->get_manager_info(ovl->manager, &info); 1828 ovl->manager->get_manager_info(ovl->manager, &info);
1823 if (info.alpha_enabled) 1829 if (info.partial_alpha_enabled)
1824 a->flags |= V4L2_FBUF_FLAG_LOCAL_ALPHA; 1830 a->flags |= V4L2_FBUF_FLAG_LOCAL_ALPHA;
1825 } 1831 }
1826 1832