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.

RFBI Update for Refresh Window not Called

(Split from http://e2e.ti.com/support/omap/f/849/t/151821.aspx)

Dear Jorge,

       Do you have any ideas about how the DSS  structure call rfbi update APIs?

       I've brought up the LGDP4251 and can write data to screen by manual. But DSS driver doesn't call rfbi update for refresh window.

  • Robert,

    For better thracking, I have made this into a new thread.

    Regards,

    Magdalena

  • Hi Robert

    The call flow for a manual update panel is:

    In the file drivers/video/omap2/dsscomp/gralloc.c

    dsscomp_gralloc_queue() -> dsscomp_delayed_apply() -> dsscomp_do_apply() -> dsscomp_apply() ->

    And then it call your update function if the following conditions are met

        if (!r && (d->mode & DSSCOMP_SETUP_MODE_DISPLAY)) {
            if (dssdev_manually_updated(dssdev) && drv->update) {
                r = drv->update(dssdev, d->win.x,
                        d->win.y, d->win.w, d->win.h);

    The Blaze has two DSI manual update panels. You could check the file: drivers/video/omap2/displays/panel-taal.c

    And check the function taal_update() for reference.

    Regards

    Rafael Rodriguez

  • Dear Rafael,

        My Linux version is 2.6.32. And could you tell me that how to make RFBI update the LG DP4251 automatically?

        Currently, I just found omapfb provide ioctl for update window OMAPFB_UPDATE_WINDOW with omapfb_update_window_nolock, which call rfbi update API.

        Then RFBI update API rfbi_display_update will call rfbi driver setup_update(set the OLED Address Counter ), rfbi_transfer_area, then

         rfbi_write_reg(RFBI_PIXEL_CNT, width *height);

          l = rfbi_read_reg(RFBI_CONTROL);
          l = FLD_MOD(l, 1, 0, 0); /* enable */
          if(!rfbi.te_enabled)
          l = FLD_MOD(l, 1, 4, 4); /* ITE */

         But I found no other code called rfbi_display_update automatically.

         Any ideas about this issue to make lcd update automatically?

    Regards,

    Robert

  • Dear Rafael,

           Is there a patch, which setup a kernel thread in rfbi set_update_mode.

           It will periodic setup DMA channel and rfbi regs for one update.

           After update done interrupt triggered, it will prepare for the next update.

    Regards,

    Robert

  • Hi Robert.

    It is very hard for us to support such an old kernel. You should at least move to 2.6.35 which is what GingerBread has, but we would recommend you to move to 3.0.

    There is a patch for a dummy RFBI panel, that is used as a template for real RFBI drivers. But it is based on kernel 3.0.

    It is here:

    http://review.omapzoom.org/#/c/26180/

    Regards

    Rafael Rodriguez.

  • Dear Rafael,

          I've update Linux to latest version 3.6.5.

          And found a example named panel-n8x0.c for RFBI interface.

          But I didn't found a board use this panel.

          Is it OK for a reference for my own lg dp4251 display?

    Regards,

    Robert

  • Dear Rafael,

             Linux 3.6.5 seems doesn't contains file named gralloc.c and pannel-taal.c is used for DSI interface too.

             And the official version seems only support auto-update by setting omapfb.auto_update and omapfb.update_freq ?

             Any other ideas for it ?

    Regards,

    Robert

  • Hi Robert

    I think you downloaded the kernel from kernel.org, am I right?

    Indeed, TI goal is to merge all the code to linux mainline, but there are still many important things left out.

    Take a look at omappedia release notes. 

    http://omappedia.org/wiki/Release_Notes

    The current version I am using is version 4AI.1.4 for Blaze Tablet.

    http://omappedia.org/wiki/4AI.1.4_OMAP4_Icecream_Sandwich_Release_Notes

    But you could try something newer like 4AI.1.7 or 4AJ.2.1 if you want.

    You do not need to download everything there, just the kernel.

    On section 3, Downloading Release Software you can get the kernel, for example for 4AI.1.4 use these commands:

    cd ${YOUR_PATH}
    git clone git://git.omapzoom.org/kernel/omap.git kernel/android-3.0
    cd kernel/android-3.0
    git checkout d5e6ee8b7b648094892e501b4ee6e2424d59f7d1

    Which will get you a kernel version 3.0.21 with all the additional code from TI not yet on linux mainline.
    There on the folder drivers/video/omap2/dsscomp you will find gralloc.c.

    Indeed the panel-taal.c is a DSI panel, but I pointed it so you could see the manual update function, taal-update.

    Once you get the kernel, you could cherry pick the code for a dummy RFBI panel from here:

    http://review.omapzoom.org/26180

    That is... using this command:

    git fetch http://review.omapzoom.org/kernel/omap refs/changes/80/26180/1 && git cherry-pick FETCH_HEAD

    You can use it as a reference for your RFBI driver.
    I think you will be interested on the the file panel-dummy-rfbi.c which implements rfbi_dummy_panel_update function.

    Let me know how it goes.
    Regards
    Rafael


  • Dear Rafael,

             Yes, I downloaded kernel code from kernel.org.

             I'll check out code from ti and try the suggestion.

            Thanks.

    Regards,

    Robert

  • Dear Rafael,

             Is it possible to replace Linux 3.6.5 DSS part with the one from OMAPpedia engineer version?

             If it is, that will make the integration easier.

    Regards,

    Robert

  • Yes, It is possible.

    Though I haven't done it myself and I am not sure if there are other dependencies outside DSS.

    I don't think it's going to be simple. Any reason for not using omappedia version?

    Let me know how you do.

    Regards

    Rafael