linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andy Shevchenko <andy.shevchenko@gmail.com>
To: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Richard Weinberger <richard@nod.at>,
	"open list:MEMORY TECHNOLOGY..." <linux-mtd@lists.infradead.org>,
	Nicolas Ferre <nicolas.ferre@atmel.com>,
	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 13:02:21 +0200	[thread overview]
Message-ID: <CAHp75Vcb9gtzF7LvH74JwL4dTUyQvKmg=dnTXKfjhVHuyK3WXg@mail.gmail.com> (raw)
In-Reply-To: <20170221112641.6276c001@bbrezillon>

On Tue, Feb 21, 2017 at 12:26 PM, Boris Brezillon
<boris.brezillon@free-electrons.com> wrote:
> On Tue, 21 Feb 2017 12:03:45 +0200
> Andy Shevchenko <andy.shevchenko@gmail.com> wrote:

>> 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
> '+').

That's my point. I'm not a LISP programmer.
Personally I think it makes readability worse.

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

I know that.

>> >> Most important part I have noticed is a GPIO request.
>> >> I didn't get why you almost repeat gpiod_get() in case of platform data?
>> >> Shouldn't we have GPIO look up table?
>> >> Can we use builtin device properties (for GPIO and/or overall)?
>> >
>> > Sorry but I don't get it. Can give an example of what you'd like me to
>> > do?
>> >
>>
>> 4. First of all, why do you need this function in the first place?
>>
>> +struct gpio_desc *
>> +atmel_nand_pdata_get_gpio(struct atmel_nand_controller *nc, int gpioid,
>> +                         const char *name, bool active_low,
>> +                         enum gpiod_flags flags)
>
> Because I don't want to duplicate the code done in
> atmel_nand_pdata_get_gpio() each time I have to convert a GPIO number
> into a GPIO descriptor, and that is needed to support platforms that
> haven't moved to DT yet

They should use GPIO lookup tables.

We don't encourage people to use platform data anymore.

We have unified device properties for something like "timeout-us", we
have look up tables when you need specifics like pwm, gpio, pinctrl,
...

Abusing platform data with pointers is also not welcome.

> (in this case, avr32).

It's dead de facto.

When last time did you compile kernel for it? What was the version of kernel?
Did it get successfully?

When are we going to remove avr32 support from kernel completely?

>> 5. BIT() macro:

> We could probably use BIT() in a few places.

There are more places including data structures assignments.

> Again, this has been copied from the old driver. I'll have a closer
> look.

Exactly. You overlooked due to enormous LOC in the one change. See my
point below.

>> 7. Question to all that distribution or whatever functions, don't you
>> have a common helper? Or each vendor requires different logic behind
>> it?
>
> What are you talking about? nand_chip hooks?

That long arithmetic with some data.

>> 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?

I dunno, I'm asking you. Usually if I see a pattern I got a clue to
check lib/ and similar places. From time to time I discover something
new and interesting there.

>> 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.

Yes, because my point is *split* this to be reviewable.

-- 
With Best Regards,
Andy Shevchenko

  parent reply	other threads:[~2017-02-21 11:02 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
2017-02-21 11:02                   ` Andy Shevchenko [this message]
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='CAHp75Vcb9gtzF7LvH74JwL4dTUyQvKmg=dnTXKfjhVHuyK3WXg@mail.gmail.com' \
    --to=andy.shevchenko@gmail.com \
    --cc=alexandre.belloni@free-electrons.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=nicolas.ferre@atmel.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).