Juan or Brandon or Whomever,
Does CE 2.21 support the DM6446 under MontaVista 5?
Have a great weekend, a Merry Christmas and an awesome New Year!
Take care,
Darwin
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Juan or Brandon or Whomever,
Does CE 2.21 support the DM6446 under MontaVista 5?
Have a great weekend, a Merry Christmas and an awesome New Year!
Take care,
Darwin
Yes. The release notes include a "Device Support" section:
Chris
Hi, Chris
AYK, CE2.21 support DM6446.
But the LSP 2.00 cannot support the demos very well.
I've ported everything from dvsdk on to it. DSPLink, CMem, CodedecEnging, etc.
But when I try to run the demo, Cmem loading is ok, DSPlink loading is ok. but when run interface, system crashed.
I just printfed some infomation and found it crashed when call FBIOPUT_VSCREENINFO. No followed msgs printfed. As the Black an Italy line shows below.
static int screenInit(void)^M
{^M
struct fb_var_screeninfo varInfo;^M
int fd;^M
unsigned short *display;^M
FILE * fp;^M
char mode[16];^M
int status = FAILURE;^M
^M
^M
printf("Will open OSD DEVICE!\n");
fd = open(OSD_DEVICE, O_RDWR);^M
^M
if (fd == -1) {^M
ERR("Failed to open fb device %s\n", OSD_DEVICE);^M
return FAILURE;^M
}^M
^M
printf("Open OSD_DEVICE OK!\n");
if (ioctl(fd, FBIOGET_VSCREENINFO, &varInfo) == -1) {^M
ERR("Failed ioctl FBIOGET_VSCREENINFO on %s\n", OSD_DEVICE);^M
return FAILURE;^M
}^M
^M
if (ioctl(fd, FBIOGET_VSCREENINFO, &varInfo) == -1) {^M
ERR("Failed ioctl FBIOGET_VSCREENINFO on %s\n", OSD_DEVICE);^M
return FAILURE;^M
}^M
printf("ioctl FBIOGET_VSCREEINFO in screenInit OK!\n");
^M
if ((fp = fopen("/sys/class/davinci_display/ch0/mode", "r")) != NULL) {^M
printf("Open davinci_display OK!\n");
fscanf(fp, "%s", mode);^M
fclose(fp);^M
if (strcmp(mode, "NTSC") == 0) {^M
DBG("NTSC selected\n");^M
gbl.yFactor = NTSCSTD;^M
status = SUCCESS;^M
}^M
else if (strcmp(mode, "PAL") == 0) {^M
DBG("PAL selected\n");^M
gbl.yFactor = PALSTD;^M
status = SUCCESS;^M
}^M
}^M
^M
/* Try the requested size */^M
varInfo.xres = SCREEN_WIDTH;^M
varInfo.yres = SCREEN_HEIGHT;^M
varInfo.yres_virtual = NUM_OSD_BUFS * SCREEN_HEIGHT;^M
varInfo.bits_per_pixel = SCREEN_BPP;^M
^M
printf("Will ioctl FBIOPUT_VSCREEINFO in screenInit!\n");
if (ioctl(fd, FBIOPUT_VSCREENINFO, &varInfo) == -1) {^M
printf("Failed ioctl FBIOPUT_VSCREENINFO on %s\n", OSD_DEVICE);
ERR("Failed ioctl FBIOPUT_VSCREENINFO on %s\n", OSD_DEVICE);^M
return FAILURE;^M
}^M
printf("Ioctl FBIOPUT_VSCREEINFO in screenInit OK!\n");
^M
if (varInfo.xres != SCREEN_WIDTH ||^M
varInfo.yres != SCREEN_HEIGHT ||^M
varInfo.bits_per_pixel != SCREEN_BPP) {^M
ERR("Failed to get the requested screen size: %dx%d at %d bpp\n",^M
SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP);^M
}^M
^M
printf("will call mmap in screenInit!\n");
display = (unsigned short *) mmap(NULL, SCREEN_SIZE, PROT_READ | PROT_WRITE,^M
MAP_SHARED, fd, 0);^M
^M
if (display == MAP_FAILED) {^M
ERR("Failed mmap on %s\n", OSD_DEVICE);^M
Could you please give me any Idea about this.
It may be easy to get past this error (frame buffer driver ioctls are pretty standardized); I believe there are a couple of ioctls that tell you the driver capabilities underneath, which should serve as good reference to know what parameters you can pass via FBIOPUT_VSCREEINFO ioctl. As a last resort, we can always add printks to driver code to get additional information as to why this ioctl is failing.
What concerns me most is that you are dealing with LSP 2.0 and new CE, CMEM and DSPLINK. Not that it should not work, but it seems like a pretty large effort to undertake as the examples and demos in current DVSDK where not designed with these newer components in mind. There will be newer DVSDK coming out soon that should incorporrate LSP 2.0 as well as newer codec engine, dsplink and cmem.