linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nicolas Ferre <nicolas.ferre@atmel.com>
To: Boris Brezillon <boris.brezillon@free-electrons.com>,
	Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Richard Weinberger <richard@nod.at>,
	"open list:MEMORY TECHNOLOGY..." <linux-mtd@lists.infradead.org>,
	Alexandre Belloni <alexandre.belloni@free-electrons.com>,
	Haavard Skinnemoen <hskinnemoen@gmail.com>,
	Hans-Christian Egtvedt <egtvedt@samfundet.no>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Wenyou Yang <wenyou.yang@atmel.com>,
	Josh Wu <rainyfeeling@outlook.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Brian Norris <computersforpeace@gmail.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	Cyrille Pitchen <cyrille.pitchen@atmel.com>,
	linux-arm Mailing List <linux-arm-kernel@lists.infradead.org>,
	Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Kumar Gala <galak@codeaurora.org>,
	devicetree <devicetree@vger.kernel.org>
Subject: Re: [PATCH v2 1/3] mtd: nand: Cleanup/rework the atmel_nand driver
Date: Tue, 21 Feb 2017 11:46:32 +0100	[thread overview]
Message-ID: <ec74f8e0-0ede-714f-fcde-d612d9a26c1c@atmel.com> (raw)
In-Reply-To: <20170221112641.6276c001@bbrezillon>

Le 21/02/2017 à 11:26, Boris Brezillon a écrit :
> On Tue, 21 Feb 2017 12:03:45 +0200
> Andy Shevchenko <andy.shevchenko@gmail.com> wrote:
> 
>> On Tue, Feb 21, 2017 at 10:06 AM, Boris Brezillon
>> <boris.brezillon@free-electrons.com> wrote:
>>> On Tue, 21 Feb 2017 01:54:37 +0200
>>> Andy Shevchenko <andy.shevchenko@gmail.com> wrote:
>>>  
>>>> On Tue, Feb 21, 2017 at 1:40 AM, Andy Shevchenko
>>>> <andy.shevchenko@gmail.com> wrote:  
>>>>> On Mon, Feb 20, 2017 at 10:50 PM, Boris Brezillon
>>>>> <boris.brezillon@free-electrons.com> wrote:  
>>>>>> On Mon, 20 Feb 2017 21:38:03 +0100
>>>>>> Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
>>>>>>  
>>>>>>> On Mon, 20 Feb 2017 22:27:17 +0200
>>>>>>> Andy Shevchenko <andy.shevchenko@gmail.com> wrote:
>>>>>>>  
>>>>>>>> On Mon, Feb 20, 2017 at 2:28 PM, Boris Brezillon
>>>>>>>> <boris.brezillon@free-electrons.com> wrote:
>>>>>>>>  
>>>>>>>>>  drivers/mtd/nand/atmel/nand-controller.c | 2269 +++++++++++++++++++++++++++
>>>>>>>>>  drivers/mtd/nand/atmel_nand.c            | 2479 ------------------------------  
>>>>>>>>
>>>>>>>> Does -M -C help you?
>>>>>>>> At least it would help reviewers
>>>>>>>>  
>>>>>>>
>>>>>>> No it doesn't, because files were not just moved around using git mv,
>>>>>>> it's a complete rewrite of the driver. IIUC, you're about to review
>>>>>>> this submission, or are you just trolling like last time?  
>>>>>>
>>>>>> My bad, I mistaken you with someone else. Sorry for being harsh, but my
>>>>>> explanation stands ;-).  
>>>>>
>>>>> No problem. I was asking since it so big and on first glance looks
>>>>> like a partial copy (I dunno if parameter to -C makes it somehow
>>>>> useful), though I can't review this. It's too big to me. Sorry I'm
>>>>> really not trolling, just didn't read commit message carefully.  
>>>>
>>>> Okay, I very quickly looked into the code, what I noticed
>>>> - you like extra parens and empty lines in some cases (not big deal)  
>>>
>>> Can you point specific places where you think these are not needed?  
>>
>> 1. For example,
>>
>> #define ATMEL_NFC_CMD(pos, cmd)                        ((cmd) <<
>> (((pos) * 8) + 2))
> 
> Well, I like to explicitly put parenthesis even when operator
> precedence guarantees the order of the calculation ('*' is preceding
> '+').

Yes

> For the parenthesis around (cmd) and (pos), they are required to
> guarantee that things like ATMEL_NFC_CMD(x + y, cmd) are working
> correctly.

Absolutely.


Even when it's not needed, please keep this habit of using more
parenthesis than required by precedence to make code clearer.


>>  *events ^= (status & *events);
> 
> I agree with this one, it's uneeded.
> 
>>
>>  (((x) * 0x4) + 0x28)
> 
> See my comment about ATMEL_NFC_CMD().
> 
>>
>>   memset(&si[1], 0, sizeof(s16) * ((2 * strength) - 1));
> 
> Ditto.
> 
>>
>> Perhaps more in the code. I'm not a LISP programmer.

[..]

>> 8. Have you checked what kernel library provides?
> 
> I think so, but again, this is really vague, what kind of
> open-coded functions do you think could be replaced with core libraries
> helpers?
> 
>> And I believe there are still issues like those. After, who is on
>> topic, might even find some logical and other issues...
>>
>> P.S. TBH, so big change is unreviewable in meaningful time. To have a
>> comprehensive review I, for example, spend ~1h/250LOC, and
>> ~2.5h/1000LOC, I would estimate ~4h/2000LOC. Imagine one to spend one
>> day for this. Any volunteer? Not me.
> 
> I'm not asking you to review the whole driver, but you started to
> comment on the code without pointing clearly to the things you wanted
> me to address.

Moreover, it's not like if the driver would come without previous code.
So, this re-factoring comes with the experience of previous driver and
its aim is to be comparable feature-wise with the old one. So the amount
of changes doesn't surprise me.

As Boris noted in his patch series, additional optimization and use of
common BCH code can be studied afterwards.

Best regards,
-- 
Nicolas Ferre

  reply	other threads:[~2017-02-21 10:46 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-20 12:28 [PATCH v2 0/3] mtd: nand: Rework/cleanup the Atmel NAND driver Boris Brezillon
2017-02-20 12:28 ` [PATCH v2 1/3] mtd: nand: Cleanup/rework the atmel_nand driver Boris Brezillon
2017-02-20 20:27   ` Andy Shevchenko
2017-02-20 20:38     ` Boris Brezillon
2017-02-20 20:50       ` Boris Brezillon
2017-02-20 23:40         ` Andy Shevchenko
2017-02-20 23:54           ` Andy Shevchenko
2017-02-21  8:06             ` Boris Brezillon
2017-02-21 10:03               ` Andy Shevchenko
2017-02-21 10:26                 ` Boris Brezillon
2017-02-21 10:46                   ` Nicolas Ferre [this message]
2017-02-21 11:02                   ` Andy Shevchenko
2017-02-21 11:20                     ` Boris Brezillon
2017-02-21 13:47                       ` Nicolas Ferre
2017-02-21 15:55                       ` Andy Shevchenko
2017-02-21 16:12                         ` Alexandre Belloni
2017-02-21 11:27                     ` Alexandre Belloni
2017-02-21 16:09                       ` Andy Shevchenko
2017-02-21 16:21                         ` Alexandre Belloni
2017-02-21 16:32                           ` Andy Shevchenko
2017-02-21 16:43                             ` Andy Shevchenko
2017-02-21 17:14                               ` Alexandre Belloni
2017-02-24  5:18                                 ` Håvard Skinnemoen
2017-02-24  8:14                                   ` Hans-Christian Noren Egtvedt
2017-02-24  8:27                                     ` Boris Brezillon
2017-02-24  8:52                                       ` Hans-Christian Noren Egtvedt
2017-02-24  8:55                                         ` Boris Brezillon
2017-02-24  9:04                                           ` Hans-Christian Noren Egtvedt
2017-02-24  9:21                                             ` Boris Brezillon
2017-02-24  9:51                                             ` Alexandre Belloni
2017-02-24 11:43                                               ` Andy Shevchenko
2017-03-01  8:22                                             ` Boris Brezillon
2017-03-01  8:38                                               ` Hans-Christian Noren Egtvedt
2017-03-01  8:49                                                 ` Boris Brezillon
2017-02-24  9:28                                     ` Alexandre Belloni
2017-02-21 17:05                             ` Alexandre Belloni
2017-02-21 13:55                     ` Russell King - ARM Linux
2017-02-21 13:02   ` Nicolas Ferre
2017-02-20 12:28 ` [PATCH v2 2/3] mtd: nand: atmel: Document the new DT bindings Boris Brezillon
2017-02-21 13:11   ` Nicolas Ferre
2017-02-27 19:12   ` Rob Herring
2017-02-20 12:28 ` [PATCH v2 3/3] mtd: nand: Remove unused chip->write_page() hook Boris Brezillon
2017-03-07 12:04   ` Masahiro Yamada
2017-03-07 18:34     ` Boris Brezillon
2017-03-08  1:31       ` Masahiro Yamada

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ec74f8e0-0ede-714f-fcde-d612d9a26c1c@atmel.com \
    --to=nicolas.ferre@atmel.com \
    --cc=alexandre.belloni@free-electrons.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=boris.brezillon@free-electrons.com \
    --cc=computersforpeace@gmail.com \
    --cc=cyrille.pitchen@atmel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=egtvedt@samfundet.no \
    --cc=galak@codeaurora.org \
    --cc=hskinnemoen@gmail.com \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=marek.vasut@gmail.com \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=rainyfeeling@outlook.com \
    --cc=richard@nod.at \
    --cc=robh+dt@kernel.org \
    --cc=wenyou.yang@atmel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).