From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 3/7] usb: eth: introduce support for Moschip USB ethernet
Date: Tue, 18 Feb 2014 12:24:06 +0100 [thread overview]
Message-ID: <201402181224.06226.marex@denx.de> (raw)
In-Reply-To: <20140217224124.29B4A381337@gemini.denx.de>
Hello Wolfgang,
> Dear Marek,
>
> In message <201402172222.38911.marex@denx.de> you wrote:
> > > > +#define PHY_CMD1_READ BIT(6)
> > > > +#define PHY_CMD1_WRITE BIT(5)
> > > > +#define PHY_CMD1_PHYADDR BIT(0)
> > > > +
> > > > +#define PHY_CMD2_PEND BIT(7)
> > > > +#define PHY_CMD2_READY BIT(6)
> > >
> > > ...
> > >
> > > As mentioned in patch # 1, I object against the use of these
> > > obfuscating BIT() macros. Please do not use these; use plain
> > > readable code, that leaves no ambiguities to the reader.
> >
> > Just to chime in real quick, Linux uses these 'BIT()' macros, but I
> > personally have no hard feelings about them either way.
>
> Yes, certain developers have been using this style before. This does
> not make it any better. Fact is, that I have no way to tell what the
> code means. BIT(0) can be expected to have any of the following
> meanings: 0x01, 0x80, 0x8000, 0x80000000, ... So I always have to look
> up the macro definition first, before I can unerstand it. And then I
> have to compute in my head what the number actually means.
>
> Compare: BIT(6) or 0x40 - what is easier to write, to read, and to
> understand?
(1 << 6) is easier for me to read honestly, because then I can quickly
crosscheck it with the datasheet.
> You dump a register - either with the BDI, or with some printf().
> You get 0x27051956. Is BIT(17) set? Is bit 0x00020000 set?
> Which of these questions is easier to answer (even when you are sure
> that this is on a system where bit no. 0 is the LSB)?
You have a point with the endianness here.
Best regards,
Marek Vasut
next prev parent reply other threads:[~2014-02-18 11:24 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-17 19:35 [U-Boot] [PATCH v2 0/7] usb: eth: introduce Moschip MCS7830 driver Gerhard Sittig
2014-02-17 19:35 ` [U-Boot] [PATCH v2 1/7] include: move the BIT() macro into the common.h header file Gerhard Sittig
2014-02-17 21:01 ` Wolfgang Denk
2014-02-17 21:33 ` Gerhard Sittig
2014-02-17 19:35 ` [U-Boot] [PATCH v2 2/7] usb: eth: don't ifdef routine declarations in usb_ether.h Gerhard Sittig
2014-02-17 22:20 ` Simon Glass
2014-02-17 19:35 ` [U-Boot] [PATCH v2 3/7] usb: eth: introduce support for Moschip USB ethernet Gerhard Sittig
2014-02-17 20:57 ` Marek Vasut
2014-02-23 20:16 ` Gerhard Sittig
2014-02-24 17:48 ` Marek Vasut
2014-02-17 21:11 ` Wolfgang Denk
2014-02-17 21:22 ` Marek Vasut
2014-02-17 22:41 ` Wolfgang Denk
2014-02-18 11:24 ` Marek Vasut [this message]
2014-02-17 19:35 ` [U-Boot] [PATCH v2 4/7] config: alpha-sort USB ethernet items for Asix and SMSC Gerhard Sittig
2014-02-17 19:35 ` [U-Boot] [PATCH v2 5/7] config: enable Moschip USB ethernet support for several boards Gerhard Sittig
2014-02-17 19:35 ` [U-Boot] [PATCH v2 6/7] config: enable USB ethernet for taskit stamp9g20 Gerhard Sittig
2014-02-17 19:35 ` [U-Boot] [PATCH v2 7/7] usb: doc: update README.usb to list all USB ethernet options Gerhard Sittig
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=201402181224.06226.marex@denx.de \
--to=marex@denx.de \
--cc=u-boot@lists.denx.de \
/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.