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.

ti81xxfb ti81xxfb: fvid2 create failed. - video driver problem

Other Parts Discussed in Thread: AM3894, TLC59108

Hi everyone,

I'm porting Android to custom board based on Sitara AM3894 processor. I'm using this port rowboat-gingerbread-ti81xx.xml manifest file as a starting point. After some modification for my board system boots fine, in resolution 1080p that's initial resolution setting for video drivers. Picture is ok on my monitor that supports full HD resolution, and system is stable.

But I have a need to change that initial 1080p resolution to 800x600 for my touchscreen, that supports that resolution (as I can see when I execute 'cat /sys/devicesplatform/vpss/displa0/edid' ). I added this commands to rc.pvr script, before any module is loaded:
echo 0 > /sys/devices/platform/vpss/graphics0/enabled
echo 0 > /sys/devices/platform/vpss/display0/enabled
echo 40000,800/40/88/128,600/1/23/4,1 > /sys/devices/platform/vpss/display0/timings
fbset -g 800 600 800 600 32
echo 1 > /sys/devices/platform/vpss/display0/enabled
echo 1 > /sys/devices/platform/vpss/graphics0/enabled

When system is booted and Android is up, I get this error message in console: ti81xxfb ti81xxfb: fvid2 create failed. and there is no picture on display! When I type command fbset it seems that system recognised my settings but picture is not ok:
# fbset
mode "800x600-60"
    # D: 40.000 MHz, H: 37.879 kHz, V: 60.317 Hz
    geometry 800 600 800 600 32
    timings 25000 88 40 23 1 128 4
    accel false
    rgba 8/16,8/8,8/0,8/24
endmode


This is output of lsmod command, as I can see all video drivers are loaded properly:
# lsmod
omaplfb 10847 0 - Live 0xbf1da000
ti81xxhdmi 13894 0 - Live 0xbf19e000
ti81xxfb 21054 1 - Live 0xbf192000
vpss 61572 3 omaplfb,ti81xxhdmi,ti81xxfb, Live 0xbf177000
pvrsrvkm 155591 31 omaplfb, Live 0xbf13d000
syslink 1090650 0 - Live 0xbf000000

This is logcat output 3022.logcat_for_forum.txt . And this is the picture from DDMS:

Regard,

Srdjana

  • Hi Srdjana,

    1. Have you loaded your LCD driver in rc.syslink file. Because by default evm boots for HDMI output.

    e.g.

     insmod /system/lib/modules/2.6.37+/kernel/drivers/video/backlight/tlc59108.ko

    2. The step you have follow is rigth, but I recommend to  change resolution in rc.syslink instead rc.pvr

    #change resolution
        echo 0 > /sys/devices/platform/vpss/graphics0/enabled
        echo 1:dvo2 > /sys/devices/platform/vpss/graphics0/nodes
        echo vcompmux:dvo2 > /sys/devices/platform/vpss/video0/nodes
        echo 0 > /sys/devices/platform/vpss/display1/enabled
        echo 33500,800/164/89/10,480/10/23/10,1 > /sys/devices/platform/vpss/display1/timings /* replace your paramter */
        echo triplediscrete,rgb888 > /sys/devices/platform/vpss/display1/output
        echo 1 > /sys/devices/platform/vpss/display1/enabled
        echo 1 > /sys/devices/platform/vpss/graphics0/enabled

    #change fb dev entry to lcd resolution
        /system/bin/fbset -xres 800 -yres 480 -vxres 800 -vyres 960 /* replace your parameter */
        /system/bin/sgx/rc.pvr start

    I hope this will help you out.

    BR,

    satish

  • Hi Satish,

    1. I didn't load any LCD driver because I don't have any backlight chip on my board so I think I don't need no driver to be loaded.

    2. Regarding those commands you suggested, I added them to rc.syslink script after all modules are loaded. With a exception that in my commands I'm setting display0 not display1 like you typed (I suppose you made a typo, our I'm not understanding something what you want ???). So, I'm trying to set my resolution to 800x600, physical interface from my board to TFT display (that came with TI816 EVM board packet) is over HDMI, later I will use LCD display that will be connected over LVDS! Here are the list of commands I added:

          echo 0 > /sys/devices/platform/vpss/graphics0/enabled
          echo 0 > /sys/devices/platform/vpss/display0/enabled
          echo 1:dvo2 > /sys/devices/platform/vpss/graphics0/nodes
          echo vcompmux:dvo2 > /sys/devices/platform/vpss/video0/nodes    
          echo 40000,800/40/88/128,600/1/23/4,1 > /sys/devices/platform/vpss/display0/timings
          echo dvo2 > /sys/devices/platform/vpss/display0/name
          echo triplediscrete,rgb888 > /sys/devices/platform/vpss/display0/output
          /system/xbin/fbset -g 800 600 800 600 32
          sleep 100
          /system/xbin/fbset -t 25000 88 40 23 1 128 4
          sleep 100
          echo 1 > /sys/devices/platform/vpss/display0/enabled
          echo 1 > /sys/devices/platform/vpss/graphics0/enabled

      After system is booted I no longer get a error message! But there is no picture on display and when I type command fbset I get:
      mode "800x600-213"
          # D: 148.500 MHz, H: 137.500 kHz, V: 213.179 Hz
          geometry 800 600 800 4856 32
          timings 6734 148 88 36 4 44 5
          accel false
          rgba 8/16,8/8,8/0,8/24
      endmode

      And I don't understand why is FB timings are sill set to those for 1920x1080 resolution when I forced them to be for 800x600. Picture that I can capture in DDMS is

      , but display doesn't  manage to show that picture after those changes I made. I thing its because those timings are not ok?!

      Settings that I can read over console clearly show that everything is set like it was written in script, timings, nodes, output, mode are all set to match 800x600 resolution but for some reason resolution that fbset shows is 1920x1080!

      Regards,

      Srdjan

  • Hi,

    This could  be mostly because you need to stop FBDEV and V4L2 display both for changing resolution. By the time you come to script fbdev node (dev/fb0) is already opened by Android so you cant change resolution even if you do eccho 0 on /dev/xx/display0. You some how need to close /dev/fb0 and then run all commands.  I think Android team has done same thing with some patch.

    Regards,

    Hardik Shah

  • Hi Hardik,

    thank you for the tip, but I don't have a clue where I should put those changes and modifications. For now nobody from Android team gave me some solutions except those mentioned in above, maybe they will soon.

    Even on forum I haven't found some tips regarding this issue. If you could provide me with some help, please do!

    BR,

    Srdjan

  • Can anyone help me with this problem with changing resolution, give me some tip or patch? I need this solution because resolution in 1080p is useless for my system!!!

    Kind regards,

    Srdjan

  • Hi,

    Any idea which PSP release is being used on top of Anroid. This is because we have supported custom resolutions in later releases of PSP. So it might be the case that you might have to move to later releases. I will also try to get PSP release number from Android team here locally.

    Regards,

    Hardik Shah

  • Hi,

    PSP release is PSP_04.00.00.12, if I'm right! Manifest file is rowboat-gingerbread-ti81xx.xml, this is the source I downloaded and I using. On TI wiki about that PSP it says that it supports custom resolutions, but I'm not so sure about it after all this problems that I'm experiencing.

    But I still have a hope that it's possible to change resolution to some custom value.

    Thank in advance and kind regards,

    Srdjan