From: "Michael Büsch" <m@bues.ch>
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH][WAS:bcmai,axi] bcma: add Broadcom specific AMBA bus driver
Date: Sat, 07 May 2011 15:55:55 +0200 [thread overview]
Message-ID: <1304776555.16344.2.camel@maggie> (raw)
In-Reply-To: <BANLkTimGBNT4FkS4mO9ToLWft0bCEYcEgg@mail.gmail.com>
On Sat, 2011-05-07 at 15:34 +0200, Rafa? Mi?ecki wrote:
> 2011/5/6 Rafa? Mi?ecki <zajec5@gmail.com>:
> > 2011/5/6 Arnd Bergmann <arnd@arndb.de>:
> >>> +const char *bcma_device_name(u16 coreid)
> >>> +{
> >>> + switch (coreid) {
> >>> + case BCMA_CORE_OOB_ROUTER:
> >>> + return "OOB Router";
> >>> + case BCMA_CORE_INVALID:
> >>> + return "Invalid";
> >>> + case BCMA_CORE_CHIPCOMMON:
> >>> + return "ChipCommon";
> >>> + case BCMA_CORE_ILINE20:
> >>> + return "ILine 20";
> >>
> >> It's better to make that a data structure than a switch() statement,
> >> both from readability and efficiency aspects.
> >
> > Well, maybe. We call it only once, at init time. In any case we're
> > still waiting for Broadcom to clarify which cores are really used for
> > BCMA.
>
> Arnd: did you have a look at defines at all?
>
> Most of the defines have values in range 0x800 ? 0x837. Converting
> this to array means loosing 0x800 u16 entries. We can not use 0x800
> offset, because there are also some defined between 0x000 and 0x800:
> #define BCMA_CORE_OOB_ROUTER 0x367 /* Out of band */
> #define BCMA_CORE_INVALID 0x700
>
> Oh and there is still:
> #define BCMA_CORE_DEFAULT 0xFFF
> we could want to include. Then we would loose additional (0xFFF -
> 0x837) u16 entries in array.
>
> I'll just leave this huge "case". As I said, it's called only once on
> initialization time. For standard PCI cards there are usually 3-5
> cores, for embedded systems this number can be bigger, but still is
> limited with 16 for 1 bus:
> #define BCMA_MAX_NR_CORES 16
The compiler does a better job than we do. I'm pretty sure that the
compiler will implement this switch statement as a series of small
lookup tables combined with some branches, if it thinks it's worth
it (also depends on flags and arch).
--
Greetings Michael.
WARNING: multiple messages have this Message-ID (diff)
From: "Michael Büsch" <m@bues.ch>
To: "Rafał Miłecki" <zajec5@gmail.com>
Cc: "Arnd Bergmann" <arnd@arndb.de>,
linux-wireless@vger.kernel.org,
"John W. Linville" <linville@tuxdriver.com>,
b43-dev@lists.infradead.org, "Greg KH" <greg@kroah.com>,
"Michael Büsch" <mb@bu3sch.de>,
"Larry Finger" <Larry.Finger@lwfinger.net>,
"George Kashperko" <george@znau.edu.ua>,
"Arend van Spriel" <arend@broadcom.com>,
linux-arm-kernel@lists.infradead.org,
"Russell King" <rmk@arm.linux.org.uk>,
"Andy Botting" <andy@andybotting.com>,
linuxdriverproject <devel@linuxdriverproject.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH][WAS:bcmai,axi] bcma: add Broadcom specific AMBA bus driver
Date: Sat, 07 May 2011 15:55:55 +0200 [thread overview]
Message-ID: <1304776555.16344.2.camel@maggie> (raw)
In-Reply-To: <BANLkTimGBNT4FkS4mO9ToLWft0bCEYcEgg@mail.gmail.com>
On Sat, 2011-05-07 at 15:34 +0200, Rafał Miłecki wrote:
> 2011/5/6 Rafał Miłecki <zajec5@gmail.com>:
> > 2011/5/6 Arnd Bergmann <arnd@arndb.de>:
> >>> +const char *bcma_device_name(u16 coreid)
> >>> +{
> >>> + switch (coreid) {
> >>> + case BCMA_CORE_OOB_ROUTER:
> >>> + return "OOB Router";
> >>> + case BCMA_CORE_INVALID:
> >>> + return "Invalid";
> >>> + case BCMA_CORE_CHIPCOMMON:
> >>> + return "ChipCommon";
> >>> + case BCMA_CORE_ILINE20:
> >>> + return "ILine 20";
> >>
> >> It's better to make that a data structure than a switch() statement,
> >> both from readability and efficiency aspects.
> >
> > Well, maybe. We call it only once, at init time. In any case we're
> > still waiting for Broadcom to clarify which cores are really used for
> > BCMA.
>
> Arnd: did you have a look at defines at all?
>
> Most of the defines have values in range 0x800 → 0x837. Converting
> this to array means loosing 0x800 u16 entries. We can not use 0x800
> offset, because there are also some defined between 0x000 and 0x800:
> #define BCMA_CORE_OOB_ROUTER 0x367 /* Out of band */
> #define BCMA_CORE_INVALID 0x700
>
> Oh and there is still:
> #define BCMA_CORE_DEFAULT 0xFFF
> we could want to include. Then we would loose additional (0xFFF -
> 0x837) u16 entries in array.
>
> I'll just leave this huge "case". As I said, it's called only once on
> initialization time. For standard PCI cards there are usually 3-5
> cores, for embedded systems this number can be bigger, but still is
> limited with 16 for 1 bus:
> #define BCMA_MAX_NR_CORES 16
The compiler does a better job than we do. I'm pretty sure that the
compiler will implement this switch statement as a series of small
lookup tables combined with some branches, if it thinks it's worth
it (also depends on flags and arch).
--
Greetings Michael.
WARNING: multiple messages have this Message-ID (diff)
From: m@bues.ch (Michael Büsch)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH][WAS:bcmai,axi] bcma: add Broadcom specific AMBA bus driver
Date: Sat, 07 May 2011 15:55:55 +0200 [thread overview]
Message-ID: <1304776555.16344.2.camel@maggie> (raw)
In-Reply-To: <BANLkTimGBNT4FkS4mO9ToLWft0bCEYcEgg@mail.gmail.com>
On Sat, 2011-05-07 at 15:34 +0200, Rafa? Mi?ecki wrote:
> 2011/5/6 Rafa? Mi?ecki <zajec5@gmail.com>:
> > 2011/5/6 Arnd Bergmann <arnd@arndb.de>:
> >>> +const char *bcma_device_name(u16 coreid)
> >>> +{
> >>> + switch (coreid) {
> >>> + case BCMA_CORE_OOB_ROUTER:
> >>> + return "OOB Router";
> >>> + case BCMA_CORE_INVALID:
> >>> + return "Invalid";
> >>> + case BCMA_CORE_CHIPCOMMON:
> >>> + return "ChipCommon";
> >>> + case BCMA_CORE_ILINE20:
> >>> + return "ILine 20";
> >>
> >> It's better to make that a data structure than a switch() statement,
> >> both from readability and efficiency aspects.
> >
> > Well, maybe. We call it only once, at init time. In any case we're
> > still waiting for Broadcom to clarify which cores are really used for
> > BCMA.
>
> Arnd: did you have a look at defines at all?
>
> Most of the defines have values in range 0x800 ? 0x837. Converting
> this to array means loosing 0x800 u16 entries. We can not use 0x800
> offset, because there are also some defined between 0x000 and 0x800:
> #define BCMA_CORE_OOB_ROUTER 0x367 /* Out of band */
> #define BCMA_CORE_INVALID 0x700
>
> Oh and there is still:
> #define BCMA_CORE_DEFAULT 0xFFF
> we could want to include. Then we would loose additional (0xFFF -
> 0x837) u16 entries in array.
>
> I'll just leave this huge "case". As I said, it's called only once on
> initialization time. For standard PCI cards there are usually 3-5
> cores, for embedded systems this number can be bigger, but still is
> limited with 16 for 1 bus:
> #define BCMA_MAX_NR_CORES 16
The compiler does a better job than we do. I'm pretty sure that the
compiler will implement this switch statement as a series of small
lookup tables combined with some branches, if it thinks it's worth
it (also depends on flags and arch).
--
Greetings Michael.
next prev parent reply other threads:[~2011-05-07 13:55 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-05 21:59 [PATCH][WAS:bcmai,axi] bcma: add Broadcom specific AMBA bus driver Rafał Miłecki
2011-07-08 17:41 ` Rafał Miłecki
2011-05-05 21:59 ` Rafał Miłecki
2011-05-05 22:59 ` Julian Calaby
2011-05-05 22:59 ` [PATCH][WAS:bcmai, axi] " Julian Calaby
2011-05-05 23:01 ` Rafał Miłecki
2011-05-05 23:01 ` Rafał Miłecki
2011-05-05 23:01 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-06 14:05 ` Arnd Bergmann
2011-05-06 14:05 ` [PATCH][WAS:bcmai, axi] " Arnd Bergmann
2011-05-06 14:50 ` Rafał Miłecki
2011-05-06 14:50 ` Rafał Miłecki
2011-05-06 14:50 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-07 13:34 ` [PATCH][WAS:bcmai, axi] " Rafał Miłecki
2011-05-07 13:34 ` Rafał Miłecki
2011-05-07 13:34 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-07 13:55 ` Michael Büsch [this message]
2011-05-07 13:55 ` Michael Büsch
2011-05-07 13:55 ` Michael Büsch
2011-05-07 16:29 ` Arend van Spriel
2011-05-07 16:29 ` Arend van Spriel
2011-05-07 16:49 ` [PATCH][WAS:bcmai, axi] " Rafał Miłecki
2011-05-07 16:49 ` Rafał Miłecki
2011-05-07 16:49 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-07 17:04 ` Arend van Spriel
2011-05-07 17:04 ` Arend van Spriel
2011-05-07 17:20 ` [PATCH][WAS:bcmai, axi] " Rafał Miłecki
2011-05-07 17:20 ` Rafał Miłecki
2011-05-07 17:20 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-07 17:51 ` George Kashperko
2011-05-07 17:51 ` George Kashperko
2011-05-07 18:05 ` [PATCH][WAS:bcmai, axi] " Rafał Miłecki
2011-05-07 18:05 ` Rafał Miłecki
2011-05-07 18:05 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-07 18:26 ` George Kashperko
2011-05-07 18:26 ` George Kashperko
2011-05-07 18:48 ` [PATCH][WAS:bcmai, axi] " Rafał Miłecki
2011-05-07 18:48 ` Rafał Miłecki
2011-05-07 18:48 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-07 19:02 ` George Kashperko
2011-05-07 19:02 ` George Kashperko
2011-05-07 19:21 ` [PATCH][WAS:bcmai, axi] " Rafał Miłecki
2011-05-07 19:21 ` Rafał Miłecki
2011-05-07 19:21 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-07 19:35 ` George Kashperko
2011-05-07 19:35 ` George Kashperko
2011-05-08 1:44 ` Michael Büsch
2011-05-08 1:44 ` Michael Büsch
2011-05-08 1:44 ` Michael Büsch
2011-05-08 2:01 ` George Kashperko
2011-05-08 2:01 ` George Kashperko
2011-05-07 19:03 ` George Kashperko
2011-05-07 19:03 ` George Kashperko
2011-05-08 8:43 ` Arend van Spriel
2011-05-08 8:43 ` Arend van Spriel
2011-05-08 10:16 ` Russell King - ARM Linux
2011-05-08 10:16 ` Russell King - ARM Linux
2011-05-08 10:37 ` [PATCH][WAS:bcmai, axi] " Rafał Miłecki
2011-05-08 10:37 ` Rafał Miłecki
2011-05-08 10:37 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-08 10:50 ` Russell King - ARM Linux
2011-05-08 10:50 ` Russell King - ARM Linux
2011-05-08 15:06 ` Arnd Bergmann
2011-05-08 15:06 ` [PATCH][WAS:bcmai, axi] " Arnd Bergmann
2011-05-08 15:25 ` Rafał Miłecki
2011-05-08 15:25 ` Rafał Miłecki
2011-05-08 15:25 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-08 15:54 ` Arnd Bergmann
2011-05-08 15:54 ` [PATCH][WAS:bcmai, axi] " Arnd Bergmann
2011-05-08 14:47 ` [PATCH][WAS:bcmai,axi] " Arnd Bergmann
2011-05-08 14:47 ` [PATCH][WAS:bcmai, axi] " Arnd Bergmann
2011-05-08 14:59 ` Rafał Miłecki
2011-05-08 14:59 ` Rafał Miłecki
2011-05-08 14:59 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-08 15:59 ` [PATCH][WAS:bcmai, axi] " Arnd Bergmann
2011-05-08 15:59 ` Arnd Bergmann
2011-05-09 14:33 ` Rafał Miłecki
2011-05-09 14:33 ` Rafał Miłecki
2011-05-09 14:33 ` Rafał Miłecki
2011-05-09 15:37 ` Greg KH
2011-05-09 15:37 ` Greg KH
2011-05-09 15:48 ` Rafał Miłecki
2011-05-09 15:48 ` Rafał Miłecki
2011-05-09 15:48 ` Rafał Miłecki
2011-05-07 16:13 ` Hauke Mehrtens
2011-05-07 16:13 ` Hauke Mehrtens
2011-05-07 16:13 ` [PATCH][WAS:bcmai,axi] " Hauke Mehrtens
2011-05-07 16:23 ` [PATCH][WAS:bcmai, axi] " Rafał Miłecki
2011-05-07 16:23 ` Rafał Miłecki
2011-05-07 16:23 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-07 16:32 ` [PATCH][WAS:bcmai, axi] " Hauke Mehrtens
2011-05-07 16:32 ` Hauke Mehrtens
2011-05-07 16:32 ` [PATCH][WAS:bcmai,axi] " Hauke Mehrtens
2011-05-07 16:51 ` [PATCH][WAS:bcmai, axi] " Rafał Miłecki
2011-05-07 16:51 ` Rafał Miłecki
2011-05-07 16:51 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-07 17:24 ` [PATCH][WAS:bcmai, axi] " Hauke Mehrtens
2011-05-07 17:24 ` Hauke Mehrtens
2011-05-07 17:24 ` [PATCH][WAS:bcmai,axi] " Hauke Mehrtens
2011-05-07 17:35 ` [PATCH][WAS:bcmai, axi] " Rafał Miłecki
2011-05-07 17:35 ` Rafał Miłecki
2011-05-07 17:35 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
2011-05-07 17:45 ` George Kashperko
2011-05-07 17:45 ` George Kashperko
2011-05-07 22:42 ` Henry Ptasinski
2011-05-07 22:42 ` Henry Ptasinski
2011-05-07 23:17 ` [PATCH][WAS:bcmai, axi] " Hauke Mehrtens
2011-05-07 23:17 ` Hauke Mehrtens
2011-05-07 23:17 ` [PATCH][WAS:bcmai,axi] " Hauke Mehrtens
2011-05-08 12:48 ` [PATCH][WAS:bcmai, axi] " Hauke Mehrtens
2011-05-08 12:48 ` Hauke Mehrtens
2011-05-08 12:48 ` [PATCH][WAS:bcmai,axi] " Hauke Mehrtens
2011-05-08 12:55 ` [PATCH][WAS:bcmai, axi] " Rafał Miłecki
2011-05-08 12:55 ` Rafał Miłecki
2011-05-08 12:55 ` [PATCH][WAS:bcmai,axi] " Rafał Miłecki
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=1304776555.16344.2.camel@maggie \
--to=m@bues.ch \
--cc=linux-arm-kernel@lists.infradead.org \
/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.