[meta-freescale] [meta-fsl-arm][PATCH 0/2] Fixes for current state of 1.4

Otavio Salvador otavio at ossystems.com.br
Wed Dec 19 11:57:35 PST 2012


On Wed, Dec 19, 2012 at 5:57 PM, Gary Thomas <samoht.yrag at gmail.com> wrote:
> On 2012-12-19 12:16, Otavio Salvador wrote:
>>
>> On Wed, Dec 19, 2012 at 5:09 PM, Gary Thomas <samoht.yrag at gmail.com>
>> wrote:
>>>
>>> On 2012-12-19 11:39, Otavio Salvador wrote:
>>>>
>>>>
>>>> On Wed, Dec 19, 2012 at 4:36 PM, Gary Thomas <samoht.yrag at gmail.com>
>>>> wrote:
>>>>>
>>>>>
>>>>> On 2012-12-19 11:26, Gary Thomas wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 2012-12-19 11:11, Otavio Salvador wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Dec 19, 2012 at 1:52 PM, Gary Thomas <samoht.yrag at gmail.com>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On 2012-12-19 08:35, Otavio Salvador wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Dec 19, 2012 at 1:22 PM, Gary Thomas
>>>>>>>>> <samoht.yrag at gmail.com>
>>>>>>>>> wrote:
>>>>>>>>> ...
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks, I'm now using the yoctoproject.org repository and can see
>>>>>>>>>> the
>>>>>>>>>> recent changes.
>>>>>>>>>>
>>>>>>>>>> Sadly though, I can't build X11 drivers - full log attached.
>>>>>>>>>> | In file included from ./vivante_util/vivante_common.h:69:0,
>>>>>>>>>> |                  from vivante_fbdev/vivante_fbdev_driver.c:23:
>>>>>>>>>> |
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> /home/local/imx6_poky/tmp/sysroots/sabrelite/usr/include/xorg/fbdevhw.h:50:23:
>>>>>>>>>> note: declared here
>>>>>>>>>> | vivante_fbdev/vivante_fbdev_driver.c:780:26: warning: assignment
>>>>>>>>>> from
>>>>>>>>>> incompatible pointer type [enabled by default]
>>>>>>>>>> | vivante_fbdev/vivante_fbdev_driver.c: In function
>>>>>>>>>> 'VivCloseScreen':
>>>>>>>>>> | vivante_fbdev/vivante_fbdev_driver.c:826:5: warning: passing
>>>>>>>>>> argument 1
>>>>>>>>>> of
>>>>>>>>>> 'pScreen->CloseScreen' makes pointer from integer without a cast
>>>>>>>>>> [enabled
>>>>>>>>>> by
>>>>>>>>>> default]
>>>>>>>>>> | vivante_fbdev/vivante_fbdev_driver.c:826:5: note: expected
>>>>>>>>>> 'ScreenPtr'
>>>>>>>>>> but
>>>>>>>>>> argument is of type 'int'
>>>>>>>>>> | vivante_fbdev/vivante_fbdev_driver.c:826:5: error: too many
>>>>>>>>>> arguments
>>>>>>>>>> to
>>>>>>>>>> function 'pScreen->CloseScreen'
>>>>>>>>>> | make[2]: *** [vivante_fbdev_driver.lo] Error 1
>>>>>>>>>> | make[2]: *** Waiting for unfinished jobs....
>>>>>>>>>> | make[2]: Leaving directory
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> `/home/local/imx6_poky/tmp/work/sabrelite-amltd-linux-gnueabi/xf86-video-imxfb-vivante/2_12.09.01-r20.1/xserver-xorg-video-imx-viv-12.09.01/src'
>>>>>>>>>> | make[1]: *** [all-recursive] Error 1
>>>>>>>>>> | make[1]: Leaving directory
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> `/home/local/imx6_poky/tmp/work/sabrelite-amltd-linux-gnueabi/xf86-video-imxfb-vivante/2_12.09.01-r20.1/xserver-xorg-video-imx-viv-12.09.01'
>>>>>>>>>>
>>>>>>>>>> Any ideas?  Maybe I've missed something else.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> It seems xf86 api changes; you need to check the change in API and
>>>>>>>>> prepare a patch to the driver ... otherwise I can do it ...
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> OK, I'll look at this.  I had expected this to already work, based
>>>>>>>> on
>>>>>>>> the earlier comments, but no problem.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I've researched how to make it in a flexible way and I found
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> http://cgit.freedesktop.org/xorg/driver/xf86-video-geode/commit/?id=a83fcb6f84995dc50b8adffc27e264a663fbd606
>>>>>>>
>>>>>>> So it's adviced to use a compat-api.h header that allows it to be
>>>>>>> usable in old and new Xorg API's.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Thanks.  I found much the same and have already integrated this
>>>>>> method.
>>>>>> I'll send a patch for it soon.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> This may take some time.  While it does now build, it immediately dies
>>>>> with a segmentation violation.
>>>>
>>>>
>>>>
>>>> You might have did a wrong replace for a macro and then pass a wrong
>>>> param; another thing, when adding the patch in the commit please add:
>>>>
>>>> Upstream-Status: Pending
>>>>
>>>> So we can grep for it later and propose for merge.
>>>
>>>
>>>
>>> I think I may need to pass this on to you - it's blowing up during the
>>> very
>>> initial steps.  Here's my GDB backtrace:
>>> Program received signal SIGSEGV, Segmentation fault.
>>> VivScreenInit (scrnIndex=scrnIndex at entry=1930440,
>>> pScreen=pScreen at entry=0x1,
>>> argc=argc at entry=2130705924,
>>>      argv=<optimized out>) at vivante_fbdev/vivante_fbdev_driver.c:615
>>> 615     vivante_fbdev/vivante_fbdev_driver.c: No such file or directory.
>>> (gdb) dir
>>>
>>> tmp/work/sabrelite-amltd-linux-gnueabi/xf86-video-imxfb-vivante/2_12.09.01-r20.1/xserver-xorg-video-imx-viv-12.09.01/src/vivante_fbdev
>>> Source directories searched:
>>>
>>> /home/local/imx6_poky/tmp/work/sabrelite-amltd-linux-gnueabi/xf86-video-imxfb-vivante/2_12.09.01-r20.1/xserver-xorg-video-imx-viv-12.09.01/src/vivante_fbdev:$cdir:$cwd
>>> (gdb) l
>>> 610         TRACE_EXIT(TRUE);
>>> 611     }
>>> 612
>>> 613     static Bool
>>> 614     VivScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char
>>> **argv) {
>>> 615         ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
>>> 616         VivPtr fPtr = GET_VIV_PTR(pScrn);
>>> 617         VisualPtr visual;
>>> 618         int init_picture = 0;
>>> 619         int ret, flags;
>>> (gdb) bt
>>> #0  VivScreenInit (scrnIndex=scrnIndex at entry=1930440,
>>> pScreen=pScreen at entry=0x1, argc=argc at entry=2130705924,
>>>      argv=<optimized out>) at vivante_fbdev/vivante_fbdev_driver.c:615
>>> #1  0x0003689c in AddScreen (pfnInit=0x2af556f0 <VivScreenInit>, argc=1,
>>> argc at entry=509968, argv=0x7efffe04,
>>>      argv at entry=0x6df14 <xf86SetDGAMode>) at dispatch.c:3830
>>> #2  0x000755fc in InitOutput (pScreenInfo=0x1aa870 <nmajor>,
>>> pScreenInfo at entry=0x1b5c88 <screenInfo>, argc=509968,
>>>      argc at entry=1, argv=0x6df14 <xf86SetDGAMode>, argv at entry=0x25fec
>>> <main+596>) at xf86Init.c:882
>>> #3  0x00025fec in main (argc=1, argv=0x25fec <main+596>, envp=<optimized
>>> out>) at main.c:204
>>>
>>> Looks like there are more than the [cosmetic] changes I made for
>>> CloseScreen().
>>>
>>> My preliminary patch is attached, maybe you can help.
>>>
>>
>> The xf86ScreenToScrn(pScrn) is the macro to use in place of
>> xf86Screens[pScrn->myNum]; you need to convert all code to use those
>> macros so it does the trick for you.
>
>
> That helped and along with a few other changes, I now have the X server
> running again.  Now I have to figure out why my mouse isn't working with
> the latest kernel.
>
> Once I get the whole X system going, I'll send an updated patch series.
> Most likely tomorrow :-)

Awesome!

--
Otavio Salvador                             O.S. Systems
E-mail: otavio at ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br



More information about the meta-freescale mailing list