On 20 October 2015 at 21:08, Andrey Konovalov <andrey.konovalov@linaro.org> wrote:
Hi Goudong,

On 10/20/2015 05:44 AM, Guodong Xu wrote:


On 19 October 2015 at 16:53, Andrey Konovalov <andrey.konovalov@linaro.org <mailto:andrey.konovalov@linaro.org>> wrote:

    Hi Xinwei,


    On 10/19/2015 04:05 AM, Xinwei Kong wrote:

        hi Ryan:

        On 2015/10/16 19:13, Ryan Harkin wrote:

            Patch "hisilicon: iic: add sloving reset function" prevents Juno from
            booting due to referencing an uninitialised pointer:

                  [    4.050860] usbcore: registered new interface driver usbfs
                  [    4.056349] usbcore: registered new interface driver hub
                  [    4.061717] usbcore: registered new device driver usb
                  [    4.067159] Unable to handle kernel paging request at virtual address ffffffc9
                  [    4.074328] pgd = ffffffc000ccf000
                  [    4.077694] [ffffffc9] *pgd=0000000000000000, *pud=0000000000000000
                  [    4.083911] Internal error: Oops: 96000045 [#1] PREEMPT SMP
                  [    4.089426] Modules linked in:
                  [    4.092456] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 4.3.0-rc5
                  [    4.098572] Hardware name: ARM Juno development board (r1) (DT)
                  [    4.104432] task: ffffffc977cf6c00 ti: ffffffc977cf8000 task.ti: ffffffc977cf8000
                  [    4.111845] PC is at dw_i2c_probe+0x210/0x544
                  [    4.116159] LR is at dw_i2c_probe+0x1dc/0x544
                  [    4.120471] pc : [<ffffffc000652f14>] lr : [<ffffffc000652ee0>] pstate: 80000045
                  [    4.127791] sp : ffffffc977cfbbd0
                  [    4.131069] x29: ffffffc977cfbbd0 x28: ffffffc000b3e630
                  [    4.136336] x27: ffffffc000c58000 x26: ffffffc000af4254
                  [    4.141602] x25: ffffffc000b3e6a0 x24: ffffffc977f65410
                  [    4.146867] x23: ffffffc000cb6000 x22: 0000000000000001
                  [    4.152133] x21: ffffffc977f65400 x20: 0000000000000000
                  [    4.157399] x19: ffffffc9770d9818 x18: 0000000000000001
                  [    4.162664] x17: 0000000000000000 x16: 0000000000000019
                  [    4.167929] x15: fffffffffffffff8 x14: 0ffffffffffffffe
                  [    4.173194] x13: 0000000000000030 x12: 0000000000000008
                  [    4.178459] x11: 0000000000000030 x10: 0101010101010101
                  [    4.183725] x9 : fffffffffffffffe x8 : ffffffc977f0b940
                  [    4.188990] x7 : 0000000000000000 x6 : 0000000000008063
                  [    4.194255] x5 : 6300000000000000 x4 : 0000000000000000
                  [    4.199520] x3 : 0000000000000000 x2 : 0000000000000000
                  [    4.204784] x1 : 00000000ffffffc9 x0 : 0000000000000001

            This patch prevents the new code from running if the pointer has not been
            initialised.

            Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org <mailto:ryan.harkin@linaro.org>>

            ---
            Andrey, please add this patch to linux-linaro.  If you don't have change to add it to the HiSilicon topic branches
            and respin, I'd be happy with it simply being added to the top of the tree.  Without it, Juno is dead, unfortunately.

            Thanks,
            Ryan.

            ---
               drivers/i2c/busses/i2c-designware-platdrv.c | 3 ++-
               1 file changed, 2 insertions(+), 1 deletion(-)

            diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
            index 00231e3..7320b67 100644
            --- a/drivers/i2c/busses/i2c-designware-platdrv.c
            +++ b/drivers/i2c/busses/i2c-designware-platdrv.c
            @@ -252,7 +252,8 @@ static int dw_i2c_probe(struct platform_device *pdev)
                     if (IS_ERR(dev->clk))
                             return PTR_ERR(dev->clk);

            -       i2c_clk_domain_enable(dev, 0);
            +       if (sctrl_base)
            +               i2c_clk_domain_enable(dev, 0);

                     clk_prepare_enable(dev->clk);


        you can delete this above patch, this code have ported into uefi for iic2. you can use lastes uefi image
        and will slove your problem.


    This is good to know!
    If commit b8ddc7c "hisilicon: iic: add sloving reset function" is no longer needed in HiSilicon LT's tree [1],
    I would appreciate if [1] were updated.


I can do that today. I will fix this together with other bugs I saw when working with Debian developer build.

That would be great!

It's done. Now, this branch is up to date: 
https://github.com/96boards/linux/tree/hikey-mainline-rebase

-Guodong
 

Thanks,
Andrey

-Guodong


    Thanks,
    Andrey

        Thank you
        Xinwei.


    [1] https://github.com/96boards/linux/tree/hikey-mainline-rebase


    _______________________________________________
    Dev mailing list
    Dev@lists.96boards.org <mailto:Dev@lists.96boards.org>
    https://lists.96boards.org/mailman/listinfo/dev