Re: [PATCH -next] xtensa: Fix build error due to missing include file

From: Guenter Roeck
Date: Sun Jul 24 2016 - 12:27:35 EST


On 07/24/2016 08:18 AM, Rob Herring wrote:
On Sun, Jul 24, 2016 at 9:20 AM, Max Filippov <jcmvbkbc@xxxxxxxxx> wrote:
On Sun, Jul 24, 2016 at 9:00 AM, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
On 07/23/2016 05:45 PM, Max Filippov wrote:

On Sun, Jul 24, 2016 at 3:24 AM, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:

Commit 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
with default match table") dropped various include files from
arch/xtensa/kernel/setup.c. This results in the following build error.

arch/xtensa/kernel/setup.c: In function âxtensa_dt_io_areaâ:
arch/xtensa/kernel/setup.c:213:2: error:
implicit declaration of function âof_read_ulongâ

Fixes: 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
with default match table")
Cc: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>
Cc: Rob Herring <robh@xxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
---
I would suggest to merge this patch into the commit causing the problem
if possible.

arch/xtensa/kernel/setup.c | 1 +
1 file changed, 1 insertion(+)


Acked-by: Max Filippov <jcmvbkbc@xxxxxxxxx>


Heads up: xtensa images build after this patch, but the image that
previously failed to build (generic_kc705_defconfig) doesn't boot,
at least not with qemu. I don't know if this is caused by 69d99e6c0d621f
or by some other patch.

It seems to be booting, but serial console is non-functional.
With commit 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate
with default match table") I see the following message during boot:

[ 6.375284] of_serial fd050020.serial: clk or clock-frequency not defined

Reverting that commit fixes serial console for me.
Any suggestions on what might go wrong?

Probably the init order changed somehow and deferred probe is not
supported correctly.


While the message is due to -EPROBE_DEFER (and there should really be no message
in this case), I suspect that the underlying problem is that of_clk_init() is
now called way too early, before the clock source is fully initialized.
Specifically, the call now happens before the message "clocksource: Switched
to clocksource ccount", which at least looks suspicious.

If I move of_clk_init() back into xtensa_device_probe(), to be called as
device_initcall(), everything is fine.

Guenter