[meta-freescale] wandboard-rt & kernel-module-imx-gpu-viv error

Julio Cruz Barroso julio.cruz at smartmatic.com
Wed Jan 20 22:11:51 PST 2016

Hi Prabhu,

In the imx-gpu-viv there are various places with the following functions:

- spin_lock_irq(&signal->obj.wait.lock);
- spin_unlock_irq(&signal->obj.wait.lock);
- __add_wait_queue_tail(&signal->obj.wait, &wait);
-  __remove_wait_queue(&signal->obj.wait, &wait);

Those function will show error during building linux-rt. To solve the issue, the original patch change those as below (at the same order):

- raw_spin_lock_irq(&signal->obj.wait.lock);
- raw_spin_unlock_irq(&signal->obj.wait.lock);
- swait_prepare_locked(&signal->obj.wait, &wait);
- swait_finish_locked(&signal->obj.wait, &wait);

This change apply to the built-in driver. A similar patch was proposed for the external driver (basically the same). However, this still will fail at runtime (not find symbol). To solve this last issue, the latest patch was proposed (modify the kernel to export the symbols)

I could be wrong, let me know your feedback.



From: meta-freescale-bounces at yoctoproject.org [mailto:meta-freescale-bounces at yoctoproject.org] On Behalf Of Julio Cruz Barroso
Sent: Thursday, January 21, 2016 11:05 AM
To: Prabhu Sundararaj <prabhu.sundararaj at nxp.com>
Cc: meta-freescale at yoctoproject.org; Xiong Xiao <xiong.xiao at nxp.com>; dominic.sacre at gmx.de; Otavio Salvador <otavio.salvador at ossystems.com.br>
Subject: Re: [meta-freescale] wandboard-rt & kernel-module-imx-gpu-viv error


I use the 5.0.11.p7.
According with log:


On Jan 21, 2016, at 10:54 AM, Prabhu Sundararaj <prabhu.sundararaj at nxp.com> wrote:
checked 4.6.9.p13, 5.0.11.p4/p7, and there is no place to use swait_prepare_locked or swait_finish_locked symbol.
Which gpu driver version did you use?
Best Regards,

On Wed, Jan 20, 2016 at 6:49 PM -0800, "Julio Cruz Barroso" <julio.cruz at smartmatic.com> wrote:
Hi Prabhu,

I'm using the kernel version 3.14.28.



On Jan 20, 2016, at 11:16 PM, Prabhu Sundararaj <prabhu.sundararaj at nxp.com> wrote:

Wondering what is the kernel version you are using? The problem does not seem to occur in linux-imx with 3.14 kernel.

Best Regards,

-----Original Message-----
From: Julio Cruz Barroso [mailto:julio.cruz at smartmatic.com] 
Sent: Wednesday, January 20, 2016 5:59 AM
To: Otavio Salvador <otavio.salvador at ossystems.com.br>; Prabhu Sundararaj <prabhu.sundararaj at nxp.com>
Cc: meta-freescale at yoctoproject.org; dominic.sacre at gmx.de
Subject: RE: [meta-freescale] wandboard-rt & kernel-module-imx-gpu-viv error

Hi Otavio, Prabhu,

The previous patch help to build the imx-gpu-viv module for the Linux-wandboard-rt. After testing, there is the following issue:

[    3.692132] galcore: Unknown symbol swait_prepare_locked (err -22)
[    3.701981] galcore: Unknown symbol swait_finish_locked (err -22)

These symbols are part of the linux-rt patch. To solve it, the EXPORT_SYMBOL directive was used at /kernel/sched/wait-simple.c. The board is able to show QT application using eglfs (no xorg). Attached the additional patch.


-----Original Message-----
From: Otavio Salvador [mailto:otavio.salvador at ossystems.com.br]
Sent: Tuesday, January 12, 2016 7:13 PM
To: Julio Cruz Barroso <julio.cruz at smartmatic.com>; Prabhu Sundararaj <prabhu.sundararaj at nxp.com>
Cc: meta-freescale at yoctoproject.org; dominic.sacre at gmx.de
Subject: Re: [meta-freescale] wandboard-rt & kernel-module-imx-gpu-viv error

Hello Julio,

> On Tue, Jan 12, 2016 at 4:47 AM, Julio Cruz Barroso <julio.cruz at smartmatic.com> wrote:
> I'm trying to build a core-image-minimal for "wandboard-rt", but an error show-up compiling the module "kernel-module-imx-gpu-viv".
> I found two ways to solve this issue:
> 1. Apply a similar patch proposed by Dominic some months ago 
> ([meta-freescale] [meta-fsl-arm-extra][PATCH] linux-wandboard-rt: Add initial recipe), but this time, for the external module 2. Disable the kernel module and use the built-in. For this, it suggest to use the option defined by Otavio 5 month ago (patch-v2-0-5-dynamically-choose-between-built-in-or-external-vivante-gpu-kernel-driver#post8). MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE = "0" in the local.conf file.
> Currently, both sources (module and built-in) have difference and I'm not sure if the applied patch will be enough. Dominic, do you have any comments?

Ideally we ought to fix the kernel module source. Prabhu, is it possible for you to review the patch proposed by Julio? It seems good from my point of view and harmless for normal kernel as well.

Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750

More information about the meta-freescale mailing list