All of lore.kernel.org
 help / color / mirror / Atom feed
From: Artem Bityutskiy <dedekind1@gmail.com>
To: Brian Norris <computersforpeace@gmail.com>
Cc: Huang Shijie <b32955@freescale.com>,
	Mike Dunn <mikedunn@newsguy.com>,
	MTD Maling List <linux-mtd@lists.infradead.org>
Subject: Re: [PATCH 12/12] mtd: nand: provision full ID support
Date: Tue, 05 Mar 2013 12:37:07 +0200	[thread overview]
Message-ID: <1362479827.2943.49.camel@sauron> (raw)
In-Reply-To: <CAN8TOE_Sb-h7zTp4rUCrx5e0rZHg44iDMM5_zKsgHQORXf3B0g@mail.gmail.com>

On Mon, 2013-03-04 at 11:45 -0800, Brian Norris wrote:
> >  struct nand_flash_dev {
> >         char *name;
> > -       int dev_id;
> > +       union {
> > +               struct {
> > +                       uint8_t mfr_id;
> > +                       uint8_t dev_id;
> > +               };
> > +               uint8_t id[8];
> > +       };
> 
> I'm sorry that I was unable to fully review Huang's code while it was
> being discussed earlier. But from what I read, it seemed there was
> some disagreement on some of the format of the tables (e.g., Artem
> wondered why the extra zeroes). Now, it seems like instead, we're
> including duplicate fields. The "mfr_id" and "dev_id" are always the
> first two bytes of the "id[8]" field. Does it make sense to repeat
> them? And I actually don't ever see where "mfr_id" would be used.

This is not repeating. Because of the union {}, mfr_id's memory address
is identical to id[0]'s address, and dev_id's memory address is
identical to id[1]'s address. You can consider 'mfr_id' and 'dev_id' to
be alias names for id[0] and id[1]. If one needs to have an alias name
for other ID bytes, they can be added.

My idea was that type->mfr_id and type->dev_id is more readable than
type->id[0] and type->id[1].

> There's also the (yet unanswered?) question of whether we reasonably
> would handle in this table both those chips which have their full
> information listed in conjunction with their 8-byte ID string and
> those chips with minimal information in the table, and the rest must
> be decoded from extended ID.

I was thinking that we have a single table which contains both, and we
make sure that all full ID records go first, and device ID-only records
go last. This would mean that we first match by full ID, and then by
device IDs.

> Perhaps the answer to this last question was already assumed to be
> "yes." But how would we differentiate the two types of table entries?
> Simply by seeing whether they filled out "dev_id" vs. "id[8]"? This
> patch doesn't clearly show how the new fields could be used.

I was thinking about

if (type->mfr_id == 0)
	/* this is device-only ID */
else
	/* this is full ID */

or

static inline bool is_full_nand_id(type) {
	return type->mfr_id;
}

> Hopefully my comments make some sense. If they don't, then that
> probably means we need some more discussion before including this last
> patch. If they do make sense, then that probably still means this last
> patch needs to be rewritten and/or included only along with a series
> that can reasonably make use of these fields (like Huang's series).

Sure, this is why you was in "To:" - you are the main NAND janitor
nowadays, because others mostly care about their little drivers, while
you demonstrated skills and will to make the general layer sane.

-- 
Best Regards,
Artem Bityutskiy

  reply	other threads:[~2013-03-05 10:36 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-04 16:42 [PATCH 00/12] mtd: nand: provision full ID support Artem Bityutskiy
2013-03-04 16:42 ` [PATCH 01/12] mtd: nand_ids: minor clean-ups Artem Bityutskiy
2013-03-04 18:36   ` Brian Norris
2013-03-05  8:32     ` Artem Bityutskiy
2013-03-04 16:42 ` [PATCH 02/12] mtd: remove museum NAND ID's support Artem Bityutskiy
2013-03-04 18:37   ` Brian Norris
2013-03-05  6:23   ` Re[2]: " Alexander Shiyan
2013-03-04 16:42 ` [PATCH 03/12] arm: defconfigs: lpc32xx_defconfig: remove museum NAND option Artem Bityutskiy
2013-03-04 16:42 ` [PATCH 04/12] mtd: nand: remove the rtc_from4 driver support Artem Bityutskiy
2013-03-04 16:42 ` [PATCH 05/12] mtd: nand: remove AG-AND support Artem Bityutskiy
2013-03-04 18:56   ` Brian Norris
2013-03-05  8:37     ` Artem Bityutskiy
2013-03-04 16:42 ` [PATCH 06/12] mtd: nand: remove a bunch of unused commands Artem Bityutskiy
2013-03-04 19:04   ` Brian Norris
2013-03-04 19:29   ` Re[2]: " Alexander Shiyan
2013-03-04 19:54     ` Brian Norris
2013-03-04 20:03       ` Re[4]: " Alexander Shiyan
2013-03-04 20:27         ` Brian Norris
2013-03-04 16:42 ` [PATCH 07/12] mtd: nand: remove NAND_NO_PADDING macro Artem Bityutskiy
2013-03-04 16:42 ` [PATCH 08/12] mtd: nand: remove NAND_COPYBACK macro Artem Bityutskiy
2013-03-04 16:42 ` [PATCH 09/12] mtd: nand: use NAND_HAS_CACHEPROG Artem Bityutskiy
2013-03-04 16:42 ` [PATCH 10/12] mtd: nand_ids: introduce helper macros Artem Bityutskiy
2013-03-04 19:23   ` Brian Norris
2013-03-05 13:34     ` Artem Bityutskiy
2013-03-04 16:42 ` [PATCH 11/12] mtd: nand: rename the id filed of 'struct nand_flash_dev' Artem Bityutskiy
2013-03-04 18:29   ` Brian Norris
2013-03-04 16:42 ` [PATCH 12/12] mtd: nand: provision full ID support Artem Bityutskiy
2013-03-04 16:50   ` Jan Lübbe
2013-03-04 19:45   ` Brian Norris
2013-03-05 10:37     ` Artem Bityutskiy [this message]
2013-03-06  5:32       ` Huang Shijie
2013-03-05  6:08   ` Huang Shijie
2013-03-05 10:42     ` Artem Bityutskiy
2013-03-05 14:36       ` Huang Shijie
2013-03-05 14:55         ` Artem Bityutskiy
2013-03-06  2:17           ` Huang Shijie
2013-03-04 19:48 ` [PATCH 00/12] " Brian Norris
2013-03-06  7:19   ` Artem Bityutskiy
2013-03-06  7:42     ` Huang Shijie

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=1362479827.2943.49.camel@sauron \
    --to=dedekind1@gmail.com \
    --cc=b32955@freescale.com \
    --cc=computersforpeace@gmail.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=mikedunn@newsguy.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.