Hi All,
I trying to get Composite Video working on Beagle Board. I am using OMAP35x-PSP-SDK-02.01.01.08, which has the DSS2 patches.
When I tried executing the instructions present in the DSS documentation (Clone GFX overlay to LCD and TV), I am able to get S-Video output. But unable to get Composite Video working.
The only change that I have done between S-Video and Composite Video is change the default VENC type from OMAP_DSS_VENC_TYPE_SVIDEO to OMAP_DSS_VENC_TYPE_COMPOSITE in arch/arm/mach-omap2/board-omap3beagle.c
As I started debugging the code, I see that all the settings are
getting reflected properly. The resolution is set to 720 * 472, venc
type is OMAP_DSS_VENC_TYPE_COMPOSITE, dispc_go function in arch/arm/plat-omap/dss/dispc.c is
being called with omap channel set to OMAP_DSS_CHANNEL_DIGIT.
But in the function dispc_go (arch/arm/plat-omap/dispc.c): I always hit with "if the channel is not
enabled, we don't need GO" condition and comes out of the function. The
corresponding code snippet is as follows:
*********************** CODE START ***********************
if (channel == OMAP_DSS_CHANNEL_LCD) {
bit = 0; /* LCDENABLE */
}
else {
bit = 1; /* DIGITALENABLE */
}
/* if the channel is not enabled, we don't need GO */
if (REG_GET(DISPC_CONTROL, bit, bit) == 0) {
goto end;
}
if (channel == OMAP_DSS_CHANNEL_LCD) {
bit = 5; /* GOLCD */
}
else {
bit = 6; /* GODIGIT */
}
*********************** CODE END ***********************
Further debugging, I see that in the function initialize_overalys (arch/arm/plat-omap/dss/display.c): overlay for TV manager is macro protected with CONFIG_VID1_TV_MANAGER and CONFIG_VID2_TV_MANAGER. I tried to enable this macro, but could not find a kernel config option pertaining to this, so I have put a #define CONFIG_VID1_TV_MANAGER before this. Below is the code snippet.
*********************** CODE START ***********************
/* Set the TV MGR as the default mgr for video based on config option */
#define CONFIG_VID1_TV_MANAGER /* Defined explicitly */
#ifdef CONFIG_VID1_TV_MANAGER
ovl = omap_dss_get_overlay(1);
omap_dss_unset_manager(ovl);
omap_dss_set_manager(ovl, tv_mgr);
#endif
#ifdef CONFIG_VID2_TV_MANAGER
ovl = omap_dss_get_overlay(2);
omap_dss_unset_manager(ovl);
omap_dss_set_manager(ovl, tv_mgr);
#endif
*********************** CODE END ***********************
The reason to do this is, in the DSS documentation the "Clone GFX overlay to LCD and TV" script uses vid1. But still I am unable get Composite Video working.
Appreciate any help in this regard.
Regards,
Kiran Murari