This is what I'm seeing too. The additional ioctl that directfb is calling
are missing in the mv kernel. Mayber they have a patch that did not get into
the sources for directfb. I'm currently using directfb-1.1.1
I have it working via the fbdev. I can display to a rgb16 osd0 in 720x480
(fb0) mode.
We also use vid0 in rgb24 1280x720 (fb1) for our gui app (non-directfb).
however the format that the davinci stores rgb24 is like big endian, however
it is a little endian arm. I can get rgb24 to work too, but the colors are
wrong dues to the rgb ordering.
I will need to get vid0 1280x720 working in eitehr rgb24 or yuv422. osd0 has
an internal buffer problem in the osd0 window that TI is aware of in the
davinci which cause video tearing. so osd0 is not acceptable.
Craig
On Thursday 03 January 2008 2:20:14 pm Caglar Akyuz wrote:
> Craig Matsuura wrote:
> > So I see the smae problem. I wondering if there is a patch for the mv
>
> 2.6.10
>
> > kernel for these ioctl's?
> >
> > Craig
>
> Here is the ioctl function from my davincifb.c and I don't get how
> FBIO_GET_TIMING is provided by the driver. I searched both 2.6.10 mv and
> 2.6.23-git kernels, and I don't know where to look else. I guess there
> are some other ioctls not provided by this driver.
>
> Caglar
>
> __________________________________________________________________________
>
> static int davincifb_ioctl(struct fb_info *info, unsigned int cmd,
> unsigned long arg)
> {
> struct dm_win_info *w = (struct dm_win_info *)info->par;
> void __user *argp = (void __user *)arg;
> struct fb_fillrect rect;
> struct zoom_params zoom;
> long std = 0;
>
> switch (cmd) {
> case FBIO_WAITFORVSYNC:
> /* This ioctl accepts an integer argument to specify a
> * display. We only support one display, so we will
> * simply ignore the argument.
> */
> return (davincifb_wait_for_vsync(w));
> break;
> case FBIO_SETATTRIBUTE:
> if (copy_from_user(&rect, argp, sizeof(rect)))
> return -EFAULT;
> return (davincifb_set_attr_blend(&rect));
> break;
> case FBIO_SETPOSX:
> if (arg >= 0 && arg <= DISP_XRES) {
> w->x = arg;
> davincifb_check_var(&w->info.var, &w->info);
> davincifb_set_par(&w->info);
> return 0;
> } else
> return -EINVAL;
> break;
> case FBIO_SETPOSY:
> if (arg >= 0 && arg <= DISP_YRES) {
> w->y = arg;
> davincifb_check_var(&w->info.var, &w->info);
> davincifb_set_par(&w->info);
> return 0;
> } else
> return -EINVAL;
> break;
> case FBIO_SETZOOM:
> if (copy_from_user(&zoom, argp, sizeof(zoom)))
> return -EFAULT;
> if ((zoom.zoom_h == 2) || (zoom.zoom_h == 0)
>
> || (zoom.zoom_h == 1) || (zoom.zoom_v == 2)
> || (zoom.zoom_v == 0) || (zoom.zoom_v == 1)) {
>
> set_zoom(zoom.window_id, zoom.zoom_h, zoom.zoom_v);
> return 0;
> } else {
> return -EINVAL;
> }
> break;
> case FBIO_GETSTD:
> std = ((dmparams.output << 16) | (dmparams.format)); //(NTSC
> <<16) |
> (COPOSITE);
> if (copy_to_user(argp, &std, sizeof(u_int32_t)))
> return -EFAULT;
> return 0;
> break;
> }
> return (-EINVAL);
> }
_______________________________________________
directfb-users mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users