[U-Boot] [PATCH v3]net: Wrong Initialization in davinci-emac driver

Vishwas Srivastava vishu.kernel at gmail.com
Mon Feb 1 16:21:58 CET 2016


Author: Vishwas Srivastava <vishu.kernel at gmail.com>
Date:   Mon Jan 25 21:28:17 2016 +0530

Wrong Initialization in davinci emac driver

emac module of the davinci platform supports only 8 tx and 8
rx channels (total 16). emac driver for davinci platform,
however, while doing initialization of the dma descriptor
head pointers,wrongly initializes the 16 head pointers
(instead of  8) for tx dma and 16 head pointers(insted of 8)
for rx dma, which is wrong.The result is, that this register
initilization spills over the other registers which was not
intended and is undesirable.This patch fixes this problem.

Changes for v2:
        -cleaned up the style format
        -addressed various comments given by Joe <joe.hershberger at ni.com>
        on the first version of the patch.

Changes for v3:
        - Added the missing patch part of v2


Signed-off-by: Vishwas Srivastava <vishu.kernel at gmail.com>
CC: Joe Hershberger <joe.hershberger at ni.com>
Acked-by: Joe Hershberger <joe.hershberger at ni.com>

diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
index 92c3dca..3f54a3f 100644
--- a/drivers/net/davinci_emac.c
+++ b/drivers/net/davinci_emac.c
@@ -459,11 +459,11 @@ static int davinci_eth_open(struct eth_device *dev,
bd_t *bis)

        /* Set DMA 8 TX / 8 RX Head pointers to 0 */
        addr = &adap_emac->TX0HDP;
-       for(cnt = 0; cnt < 16; cnt++)
+       for (cnt = 0; cnt < 8; cnt++)
                writel(0, addr++);

        addr = &adap_emac->RX0HDP;
-       for(cnt = 0; cnt < 16; cnt++)
+       for (cnt = 0; cnt < 8; cnt++)
                writel(0, addr++);

        /* Clear Statistics (do this before setting MacControl register) */



On Fri, Jan 29, 2016 at 9:32 PM, Vishwas Srivastava <vishu.kernel at gmail.com>
wrote:

> Author: Vishwas Srivastava <vishu.kernel at gmail.com>
> Date:   Mon Jan 25 21:28:17 2016 +0530
>
> Wrong Initialization in davinci emac driver
>
> emac module of the davinci platform supports only 8 tx and 8
> rx channels (total 16). emac driver for davinci platform,
> however, while doing initialization of the dma descriptor
> head pointers,wrongly initializes the 16 head pointers
> (instead of  8) for tx dma and 16 head pointers(insted of 8)
> for rx dma, which is wrong.The result is, that this register
> initilization spills over the other registers which was not
> intended and is undesirable.This patch fixes this problem.
>
> Changes for v2:
>         -cleaned up the style format
>         -addressed various comments given by Joe <joe.hershberger at ni.com>
>         on the first version of the patch.
>
> Signed-off-by: Vishwas Srivastava <vishu.kernel at gmail.com>
> CC: Joe Hershberger <joe.hershberger at ni.com>
> Acked-by: Joe Hershberger <joe.hershberger at ni.com>
>
> diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
> index 92c3dca..3f54a3f 100644
> --- a/drivers/net/davinci_emac.c
> +++ b/drivers/net/davinci_emac.c
> @@ -459,11 +459,11 @@ static int davinci_eth_open(struct eth_device *dev,
> bd_t *bis)
>
>         /* Set DMA 8 TX / 8 RX Head pointers to 0 */
>         addr = &adap_emac->TX0HDP;
> -       for(cnt = 0; cnt < 16; cnt++)
> +       for (cnt = 0; cnt < 8; cnt++)
>                 writel(0, addr++);
>
>
> On Thu, Jan 28, 2016 at 1:27 AM, Joe Hershberger <
> joe.hershberger at gmail.com> wrote:
>
>> On Mon, Jan 25, 2016 at 11:00 AM, Vishwas Srivastava
>> <vishu.kernel at gmail.com> wrote:
>> > Author: Vishwas Srivastava <vishu.kernel at gmail.com>
>> > Date:   Mon Jan 25 21:28:17 2016 +0530
>>
>> Please fix the patch subject. No Leading colon.
>>
>> >
>> >     Wrong Initialization in davinci emac driver
>> >
>> >     emac module of the davinci platform supports only 8 tx and
>> >     8 rx channels (total 16). emac driver for davinci platform,
>> >     however, while doing initialization of the dma descriptor
>> >     head pointers,wrongly initializes the 16 head pointers
>> >     (instead of  8) for tx dma and 16 head pointers for rx dma,
>> >     which is wrong.The result is, that this register initilization
>> >     spills over the other registers which was not intended and is
>> >     undesirable.This patch fixes this problem.
>> >
>> >     Signed-off-by: Vishwas Srivastava <vishu.kernel at gmail.com>
>> >     CC: Sergey Kubushyn <ksi at koi8.net>;Joe Hershberger <
>> > joe.hershberger at ni.com>
>>
>> Please fix this formatting. One "Cc:" per line.
>>
>> >     Signed-off-by: Vishwas Srivastava <vishu.kernel at gmail.com>
>>
>> Don't specify this twice.
>>
>> >
>> > diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
>> > index 92c3dca..3f54a3f 100644
>> > --- a/drivers/net/davinci_emac.c
>> > +++ b/drivers/net/davinci_emac.c
>> > @@ -459,11 +459,11 @@ static int davinci_eth_open(struct eth_device
>> *dev,
>> > bd_t *bis)
>>
>> This line wrap is corrupt. The patch won't apply cleanly.
>>
>> >
>> >         /* Set DMA 8 TX / 8 RX Head pointers to 0 */
>> >         addr = &adap_emac->TX0HDP;
>> > -       for(cnt = 0; cnt < 16; cnt++)
>> > +       for(cnt = 0; cnt < 8; cnt++)
>> >                 writel(0, addr++);
>> >
>> >         addr = &adap_emac->RX0HDP;
>> > -       for(cnt = 0; cnt < 16; cnt++)
>> > +       for(cnt = 0; cnt < 8; cnt++)
>> >                 writel(0, addr++);
>> >
>> >         /* Clear Statistics (do this before setting MacControl
>> register) */
>>
>> This line was corrupted by patchwork. You are doing something wrong.
>>
>> > _______________________________________________
>> > U-Boot mailing list
>> > U-Boot at lists.denx.de
>> > http://lists.denx.de/mailman/listinfo/u-boot
>>
>> Please correct all these issues, but for the content of the patch, still
>> Acked.
>>
>> Thanks,
>> -Joe
>>
>
>


More information about the U-Boot mailing list