diff options
author | Florian Tobias Schandinat <FlorianSchandinat@gmx.de> | 2011-10-14 20:19:52 -0400 |
---|---|---|
committer | Florian Tobias Schandinat <FlorianSchandinat@gmx.de> | 2011-10-14 20:19:52 -0400 |
commit | ef26b7943c5821aaff1efc14c098840c49fe15c0 (patch) | |
tree | a91834ef396633c5c56a0597c2fc525e0684fc30 /drivers/media | |
parent | 07aaae44f5a3962c3a410a6dd7936dfa7dece2b9 (diff) | |
parent | 3e28189038bb831512cf4f8313e1aead97c3e63f (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.c | 18 |
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 | ||