From: Arnd Bergmann <arnd@arndb.de>
To: Ley Foon Tan <lftan@altera.com>
Cc: Linux-Arch <linux-arch@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
cltang@codesourcery.com
Subject: Re: [PATCH 07/28] nios2: I/O Mapping
Date: Fri, 02 May 2014 14:22:30 +0200 [thread overview]
Message-ID: <5393488.r5N1ijHzS4@wuerfel> (raw)
In-Reply-To: <CAFiDJ58MT1z-hw6_ZWBc5QcCJoEdNCdaVPfVgXE2BpUr9c9ztA@mail.gmail.com>
On Friday 02 May 2014 18:37:55 Ley Foon Tan wrote:
> On Thu, Apr 24, 2014 at 2:02 PM, Ley Foon Tan <lftan@altera.com> wrote:
> > On Tue, Apr 22, 2014 at 9:59 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> >> On Friday 18 April 2014, Ley Foon Tan wrote:
> >>
> >>> +
> >>> +#include <asm/pgtable-bits.h>
> >>> +
> >>> +#define IO_SPACE_LIMIT 0xffffffff
> >>
> >> Please use 0xffff here, this should work for almost any PCI bus.
> > Ah, CONFIG_PCI is not enable in nios2. So, I think IO_SPACE_LIMIT
> > should set to 0.
> >
> >
> >>> +
> >>> +/* Use "Duff's Device" to unroll the loops. */
> >>> +#define __IO_OUT_LOOP(a, b, l) \
> >>> + do { \
> >>> + if (l > 0) { \
> >>> + int _n = (l + 7) / 8; \
> >>> + switch (l % 8) { \
> >>> + case 0: \
> >>> + do { \
> >>> + *a = *b++; \
> >>
> >> I would recommend just doing all of this in out-of-line implementations
> >> rather than macros and inline functions.
> > Okay. Will move the macros to out-of-line function.
>
> I'm start working on this and found that it is better to keep it as
> macros. This is because the input arguments "a" and "b" can be
> byte/short/int pointers. Otherwise, we need to have separate function
> calls for byte/short/int.
But with the inline implementation, you have a separate instance for each
caller, which seems more wasteful.
You can put the function into a "lib" file to make sure it doesn't get linked
in if there are no callers though. And of course you can keep the macro
in the file implementing it so you don't have to write the same code
three times.
Arnd
next prev parent reply other threads:[~2014-05-02 12:22 UTC|newest]
Thread overview: 208+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-18 12:26 [PATCH 00/28] nios2 Linux kernel port Ley Foon Tan
2014-04-18 12:26 ` Ley Foon Tan
2014-04-18 12:26 ` [PATCH 01/28] nios2: Build infrastructure Ley Foon Tan
2014-04-18 12:26 ` Ley Foon Tan
2014-04-18 14:35 ` Sam Ravnborg
2014-04-21 3:03 ` Ley Foon Tan
2014-04-21 3:03 ` Ley Foon Tan
2014-04-18 19:16 ` Paul Bolle
2014-04-18 19:16 ` Paul Bolle
2014-04-21 5:02 ` Ley Foon Tan
2014-04-21 5:02 ` Ley Foon Tan
2014-04-18 19:41 ` Paul Bolle
2014-04-18 19:41 ` Paul Bolle
2014-04-21 3:26 ` Ley Foon Tan
2014-04-18 12:26 ` [PATCH 02/28] nios2: Assembly macros and definitions Ley Foon Tan
2014-04-18 12:26 ` [PATCH 04/28] nios2: Exception handling Ley Foon Tan
2014-04-18 12:26 ` Ley Foon Tan
2014-04-22 10:57 ` Ezequiel Garcia
2014-04-22 10:57 ` Ezequiel Garcia
2014-04-22 11:08 ` Ley Foon Tan
2014-04-22 12:33 ` Arnd Bergmann
2014-04-23 2:47 ` Ley Foon Tan
2014-04-23 2:47 ` Ley Foon Tan
2014-04-23 7:20 ` Geert Uytterhoeven
2014-04-23 7:20 ` Geert Uytterhoeven
2014-04-23 12:23 ` Arnd Bergmann
2014-04-24 6:04 ` Ley Foon Tan
2014-04-18 12:26 ` [PATCH 06/28] nios2: Memory management Ley Foon Tan
2014-04-18 12:26 ` Ley Foon Tan
2014-04-22 14:24 ` Ezequiel Garcia
2014-04-22 14:24 ` Ezequiel Garcia
2014-04-22 15:14 ` Tobias Klauser
2014-04-22 15:35 ` Ezequiel Garcia
2014-04-22 15:35 ` Ezequiel Garcia
2014-04-22 16:01 ` Chung-Lin Tang
2014-04-22 16:01 ` Chung-Lin Tang
2014-04-22 16:27 ` Ezequiel Garcia
2014-04-22 16:36 ` Chung-Lin Tang
2014-04-22 16:24 ` Sam Ravnborg
2014-04-23 2:53 ` LF.Tan
2014-04-23 7:24 ` Geert Uytterhoeven
2014-04-23 7:24 ` Geert Uytterhoeven
2014-04-18 12:26 ` [PATCH 08/28] nios2: MMU Fault handling Ley Foon Tan
2014-04-18 12:26 ` Ley Foon Tan
2014-04-22 14:30 ` Ezequiel Garcia
2014-04-22 14:30 ` Ezequiel Garcia
2014-04-24 6:42 ` Ley Foon Tan
2014-04-24 15:22 ` Ezequiel Garcia
2014-04-24 15:22 ` Ezequiel Garcia
2014-04-24 16:02 ` Ley Foon Tan
2014-04-24 16:18 ` Ezequiel Garcia
2014-04-24 16:18 ` Ezequiel Garcia
2014-04-24 7:18 ` Geert Uytterhoeven
2014-04-24 7:18 ` Geert Uytterhoeven
2014-04-18 12:26 ` [PATCH 09/28] nios2: Page table management Ley Foon Tan
2014-04-19 16:05 ` Pavel Machek
2014-04-19 16:05 ` Pavel Machek
2014-04-22 8:09 ` Ley Foon Tan
2014-04-22 8:09 ` Ley Foon Tan
2014-04-18 12:26 ` [PATCH 10/28] nios2: Process management Ley Foon Tan
2014-04-18 12:26 ` [PATCH 11/28] nios2: Cache handling Ley Foon Tan
2014-04-18 12:26 ` Ley Foon Tan
2014-04-18 12:26 ` [PATCH 12/28] nios2: TLB handling Ley Foon Tan
2014-04-18 12:26 ` [PATCH 13/28] nios2: Interrupt handling Ley Foon Tan
2014-04-18 12:26 ` [PATCH 15/28] nios2: ELF definitions Ley Foon Tan
2014-04-18 12:26 ` [PATCH 16/28] nios2: System calls handling Ley Foon Tan
2014-04-19 16:09 ` Pavel Machek
2014-04-21 17:32 ` Ley Foon Tan
2014-04-21 17:32 ` Ley Foon Tan
2014-04-21 17:52 ` Richard Weinberger
2014-04-21 20:48 ` Pavel Machek
2014-04-21 20:48 ` Pavel Machek
2014-04-22 8:24 ` Ley Foon Tan
2014-04-21 20:46 ` Pavel Machek
2014-04-21 20:46 ` Pavel Machek
2014-04-19 20:12 ` Geert Uytterhoeven
2014-04-21 17:23 ` Ley Foon Tan
2014-04-21 17:23 ` Ley Foon Tan
2014-04-22 12:30 ` Arnd Bergmann
2014-04-22 12:30 ` Arnd Bergmann
2014-04-24 16:23 ` Ley Foon Tan
2014-04-24 16:23 ` Ley Foon Tan
2014-04-18 12:27 ` [PATCH 17/28] nios2: Signal handling support Ley Foon Tan
2014-04-18 12:27 ` Ley Foon Tan
2014-04-19 19:29 ` Richard Weinberger
2014-04-19 19:29 ` Richard Weinberger
2014-04-24 10:01 ` Ley Foon Tan
2014-04-24 10:01 ` Ley Foon Tan
2014-04-24 10:07 ` Richard Weinberger
2014-04-24 10:07 ` Richard Weinberger
2014-04-24 10:13 ` Ley Foon Tan
2014-04-24 10:13 ` Ley Foon Tan
2014-04-24 10:17 ` Richard Weinberger
2014-04-24 10:17 ` Richard Weinberger
2014-04-24 10:29 ` Ley Foon Tan
2014-04-24 10:29 ` Ley Foon Tan
2014-04-24 10:39 ` Richard Weinberger
2014-04-24 10:39 ` Richard Weinberger
2014-04-24 10:46 ` Ley Foon Tan
2014-04-24 10:46 ` Ley Foon Tan
2014-04-24 16:16 ` Richard Weinberger
2014-04-24 16:16 ` Richard Weinberger
2014-04-18 12:27 ` [PATCH 18/28] nios2: Library functions Ley Foon Tan
2014-04-18 12:27 ` [PATCH 19/28] nios2: Device tree support Ley Foon Tan
2014-04-18 12:27 ` Ley Foon Tan
2014-04-22 13:42 ` Arnd Bergmann
2014-04-22 13:42 ` Arnd Bergmann
2014-04-23 6:52 ` Ley Foon Tan
2014-04-23 7:35 ` Arnd Bergmann
2014-04-23 7:35 ` Arnd Bergmann
2014-04-23 9:52 ` Ley Foon Tan
2014-04-23 9:52 ` Ley Foon Tan
2014-04-24 16:05 ` Ezequiel Garcia
2014-04-24 16:05 ` Ezequiel Garcia
2014-04-18 12:27 ` [PATCH 20/28] nios2: Time keeping Ley Foon Tan
2014-04-18 12:27 ` Ley Foon Tan
2014-04-22 13:44 ` Arnd Bergmann
2014-04-22 13:44 ` Arnd Bergmann
2014-04-23 3:21 ` Ley Foon Tan
2014-04-18 12:27 ` [PATCH 21/28] nios2: Cpuinfo handling Ley Foon Tan
2014-04-18 12:27 ` Ley Foon Tan
2014-04-18 12:27 ` [PATCH 22/28] nios2: Miscellaneous header files Ley Foon Tan
2014-04-18 12:27 ` [PATCH 23/28] nios2: Nios2 registers Ley Foon Tan
2014-04-22 12:39 ` Tobias Klauser
2014-04-23 7:10 ` Ley Foon Tan
2014-04-23 8:00 ` Tobias Klauser
2014-04-23 8:00 ` Tobias Klauser
2014-04-18 12:27 ` [PATCH 24/28] nios2: Module support Ley Foon Tan
2014-04-18 12:27 ` Ley Foon Tan
2014-04-18 12:27 ` [PATCH 25/28] nios2: ptrace support Ley Foon Tan
2014-04-18 12:27 ` Ley Foon Tan
2014-04-25 23:52 ` Pedro Alves
2014-04-28 6:03 ` Ley Foon Tan
2014-04-28 6:03 ` Ley Foon Tan
2014-04-18 12:27 ` [PATCH 26/28] Add ELF machine define for Nios2 Ley Foon Tan
2014-04-18 12:27 ` Ley Foon Tan
2014-04-18 12:27 ` [PATCH 27/28] MAINTAINERS: Add nios2 maintainer Ley Foon Tan
2014-04-18 12:27 ` [PATCH 28/28] Documentation: Add documentation for Nios2 architecture Ley Foon Tan
2014-04-18 12:27 ` Ley Foon Tan
2014-04-22 12:28 ` Tobias Klauser
2014-04-22 12:28 ` Tobias Klauser
2014-04-23 7:48 ` Ley Foon Tan
2014-04-18 18:19 ` [PATCH 03/28] nios2: Kernel booting and initialization Ley Foon Tan
2014-04-18 18:19 ` Ley Foon Tan
2014-04-18 18:19 ` [PATCH 05/28] nios2: Traps exception handling Ley Foon Tan
2014-04-18 18:19 ` Ley Foon Tan
2014-04-22 14:28 ` Ezequiel Garcia
2014-04-22 14:28 ` Ezequiel Garcia
2014-04-23 10:07 ` Ley Foon Tan
2014-04-23 10:07 ` Ley Foon Tan
2014-04-18 18:19 ` [PATCH 07/28] nios2: I/O Mapping Ley Foon Tan
2014-04-22 13:59 ` Arnd Bergmann
2014-04-22 13:59 ` Arnd Bergmann
2014-04-24 6:02 ` Ley Foon Tan
2014-04-24 6:02 ` Ley Foon Tan
2014-04-24 7:43 ` Arnd Bergmann
2014-04-24 7:43 ` Arnd Bergmann
2014-04-24 15:51 ` Ley Foon Tan
2014-04-24 15:51 ` Ley Foon Tan
2014-05-02 10:37 ` Ley Foon Tan
2014-05-02 12:22 ` Arnd Bergmann [this message]
2014-05-05 7:13 ` Ley Foon Tan
2014-04-18 18:19 ` [PATCH 14/28] nios2: DMA mapping API Ley Foon Tan
2014-04-18 18:19 ` Ley Foon Tan
2014-04-22 13:52 ` Arnd Bergmann
2014-04-22 13:52 ` Arnd Bergmann
2014-04-25 10:13 ` Ley Foon Tan
2014-04-25 10:33 ` Arnd Bergmann
2014-04-25 10:36 ` Ley Foon Tan
2014-04-25 10:36 ` Ley Foon Tan
2014-04-18 20:48 ` [PATCH 00/28] nios2 Linux kernel port H. Peter Anvin
2014-04-18 20:48 ` H. Peter Anvin
2014-04-19 15:30 ` Arnd Bergmann
2014-04-19 15:30 ` Arnd Bergmann
2014-04-21 5:23 ` Ley Foon Tan
2014-04-21 5:23 ` Ley Foon Tan
2014-04-21 5:31 ` H. Peter Anvin
2014-04-21 5:31 ` H. Peter Anvin
2014-04-21 8:14 ` Chung-Lin Tang
2014-04-21 8:14 ` Chung-Lin Tang
2014-04-22 10:37 ` Ley Foon Tan
2014-04-22 10:56 ` Arnd Bergmann
2014-04-22 11:20 ` Ley Foon Tan
2014-04-22 11:20 ` Ley Foon Tan
2014-04-22 14:48 ` Chung-Lin Tang
2014-04-22 14:48 ` Chung-Lin Tang
2014-04-23 17:59 ` Chung-Lin Tang
2014-04-23 17:59 ` Chung-Lin Tang
2014-04-23 18:15 ` Pinski, Andrew
2014-04-23 18:15 ` Pinski, Andrew
2014-04-23 19:21 ` H. Peter Anvin
2014-04-23 19:21 ` H. Peter Anvin
2014-04-24 6:26 ` Chung-Lin Tang
2014-04-24 8:55 ` Chung-Lin Tang
2014-04-24 8:55 ` Chung-Lin Tang
2014-04-24 15:28 ` Catalin Marinas
2014-04-24 18:37 ` Chung-Lin Tang
2014-04-24 18:37 ` Chung-Lin Tang
2014-04-24 18:42 ` Pinski, Andrew
2014-04-24 18:42 ` Pinski, Andrew
2014-04-25 6:06 ` Chung-Lin Tang
2014-04-25 6:06 ` Chung-Lin Tang
2014-04-25 8:37 ` Pinski, Andrew
2014-04-25 8:37 ` Pinski, Andrew
2014-04-25 13:19 ` Chung-Lin Tang
2014-04-25 13:19 ` Chung-Lin Tang
2014-04-25 8:49 ` Geert Uytterhoeven
2014-04-25 8:49 ` Geert Uytterhoeven
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=5393488.r5N1ijHzS4@wuerfel \
--to=arnd@arndb.de \
--cc=cltang@codesourcery.com \
--cc=lftan@altera.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox