All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Rongrong Zou <zourongrong@gmail.com>
Cc: catalin.marinas@arm.com, will.deacon@arm.com,
	benh@kernel.crashing.org, lijianhua@huawei.com,
	lixiancai@huawei.com, linuxarm@huawei.com,
	linux-kernel@vger.kernel.org, minyard@acm.org,
	gregkh@linuxfoundation.org
Subject: Re: [PATCH v1 1/3] ARM64 LPC: indirect ISA PORT IO introduced
Date: Tue, 29 Dec 2015 14:47:01 +0100	[thread overview]
Message-ID: <3232651.99Svz5pbDW@wuerfel> (raw)
In-Reply-To: <1451396032-23708-2-git-send-email-zourongrong@gmail.com>

On Tuesday 29 December 2015 21:33:50 Rongrong Zou wrote:
> Indirect ISA port I/O accessing introduced, vendors can hook
> their own in/out function to general inb/outb. Drivers can access
> legacy ISA I/O port by inb/outb as it is done in x86 platform.
> 
> Signed-off-by: Rongrong Zou <zourongrong@gmail.com>

Looks correct to me, but I have a few style comments

> ---
>  arch/arm64/Kconfig.platforms |  5 ++-
>  arch/arm64/include/asm/io.h  | 78 ++++++++++++++++++++++++++++++++++++++++++++
>  arch/arm64/kernel/setup.c    |  5 +++
>  3 files changed, 87 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
> index 4043c35..98ae206 100644
> --- a/arch/arm64/Kconfig.platforms
> +++ b/arch/arm64/Kconfig.platforms
> @@ -127,5 +127,8 @@ config ARCH_ZYNQMP
>  	bool "Xilinx ZynqMP Family"
>  	help
>  	  This enables support for Xilinx ZynqMP Family
> -
> +config ARM64_INDIRECT_PIO
> +	bool "ARM64 Indirect port I/O"
> +	help
> +	  This enables support for ARM64 indirect port I/O
>  endmenu

The option should probably go into arch/arm64/Kconfig. Possibly you can make
it a silent option that just gets selected whenever a driver is enabled
that might set the callbacks.

> diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h
> index 44be1e0..0041f3b 100644
> --- a/arch/arm64/include/asm/io.h
> +++ b/arch/arm64/include/asm/io.h
> @@ -193,6 +193,84 @@ extern void __iomem *ioremap_cache(phys_addr_t phys_addr, size_t size);
>   */
>  #define xlate_dev_kmem_ptr(p)	p
>  
> +#ifdef CONFIG_ARM64_INDIRECT_PIO
> +#define DEF_PCI_HOOK_pio(x)   x
> +#else
> +#define DEF_PCI_HOOK_pio(x)   NULL
> +#endif

Maybe just put the entire definition block inside #ifdef and
fall back to the default inb/outb definitions otherwise.

> +/*
> + * This value is equal to PCIBIOS_MIN_IO
> + */
> +#define LEGACY_ISA_PORT_MAX 0x1000

I would just use PCIBIOS_MIN_IO instead of defining another macro.

> +extern struct arm64_isa_io {
> +	u8 (*inb)(unsigned long port);
> +	u16 (*inw)(unsigned long port);
> +	u32 (*inl)(unsigned long port);
> +	void (*outb)(u8 value, unsigned long port);
> +	void (*outw)(u16 value, unsigned long port);
> +	void (*outl)(u32 value, unsigned long port);
> +} arm64_isa_io;

Maybe make this a single function pointer like

void (*arm64_indirect_pio)(unsigned long port, bool write, int size, void *data);

I'm guessing that this would result in smaller object code at the call sites,
but you'd have to try.

	Arnd


  reply	other threads:[~2015-12-29 13:47 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-29 13:33 [PATCH v1 0/3] ARM64 LPC: legacy ISA I/O support Rongrong Zou
2015-12-29 13:33 ` [PATCH v1 1/3] ARM64 LPC: indirect ISA PORT IO introduced Rongrong Zou
2015-12-29 13:47   ` Arnd Bergmann [this message]
2015-12-29 14:26     ` Rongrong Zou
2015-12-29 14:35       ` Arnd Bergmann
2015-12-30  1:24         ` Rongrong Zou
2015-12-30  8:59           ` Arnd Bergmann
2015-12-30  9:28             ` Rongrong Zou
2015-12-30  9:42               ` Arnd Bergmann
2016-01-04 10:11                 ` Will Deacon
2016-01-04 10:27                   ` Rongrong Zou
2016-01-04 10:27                     ` Rongrong Zou
2015-12-29 13:33 ` [PATCH v1 2/3] ARM64 LPC: LPC driver implementation Rongrong Zou
2015-12-29 13:51   ` Arnd Bergmann
2015-12-29 14:03     ` Rongrong Zou
2015-12-29 14:11       ` Arnd Bergmann
2015-12-29 13:33 ` [PATCH v1 3/3] ARM64 LPC: update binding doc Rongrong Zou
2015-12-29 13:52   ` Arnd Bergmann
2015-12-30  9:06   ` Arnd Bergmann
2015-12-31 14:12     ` Rongrong Zou
2015-12-31 14:12       ` Rongrong Zou
2015-12-31 14:40       ` Arnd Bergmann
     [not found]         ` <CABTftiT1+AmrNjiAie-T6on-oWA4Zz73+Tj2pQrixMT3o475uw@mail.gmail.com>
2016-01-03 12:24           ` Rongrong Zou
2016-01-03 12:24             ` Rongrong Zou
2016-01-03 12:24             ` Rongrong Zou
2016-01-04 11:13             ` Arnd Bergmann
2016-01-04 11:13               ` Arnd Bergmann
2016-01-04 11:13               ` Arnd Bergmann
2016-01-04 16:04               ` Rongrong Zou
2016-01-04 16:04                 ` Rongrong Zou
2016-01-04 16:04                 ` Rongrong Zou
2016-01-04 16:34                 ` Arnd Bergmann
2016-01-04 16:34                   ` Arnd Bergmann
2016-01-04 16:34                   ` Arnd Bergmann
2016-01-05 11:59                   ` Rongrong Zou
2016-01-05 11:59                     ` Rongrong Zou
2016-01-05 11:59                     ` Rongrong Zou
2016-01-05 12:19                     ` Arnd Bergmann
2016-01-05 12:19                       ` Arnd Bergmann
2016-01-06 13:36                       ` Rongrong Zou
2016-01-06 13:36                         ` Rongrong Zou
2016-01-06 13:36                         ` Rongrong Zou
2016-01-07  3:37                         ` Rongrong Zou
2016-01-07  3:37                           ` Rongrong Zou
2016-01-07  3:37                           ` Rongrong Zou
2016-01-10  9:29                       ` Rolland Chau
2016-01-10  9:29                         ` Rolland Chau
2016-01-10 13:38                         ` Rongrong Zou
2016-01-10 13:38                           ` Rongrong Zou
2016-01-10 13:38                           ` Rongrong Zou
2016-01-11 16:14               ` liviu.dudau
2016-01-11 16:14                 ` liviu.dudau at arm.com
2016-01-11 16:14                 ` liviu.dudau-5wv7dgnIgG8
2016-01-12  2:39                 ` Rongrong Zou
2016-01-12  2:39                   ` Rongrong Zou
2016-01-12  9:07                   ` liviu.dudau
2016-01-12  9:07                     ` liviu.dudau at arm.com
2016-01-12  9:25                     ` Rongrong Zou
2016-01-12  9:25                       ` Rongrong Zou
2016-01-12  9:25                       ` Rongrong Zou
2016-01-12 10:14                       ` liviu.dudau
2016-01-12 10:14                         ` liviu.dudau at arm.com
2016-01-12 11:05                         ` Rongrong Zou
2016-01-12 11:05                           ` Rongrong Zou
2016-01-12 11:05                           ` Rongrong Zou
2016-01-12 11:27                           ` liviu.dudau
2016-01-12 11:27                             ` liviu.dudau at arm.com
2016-01-12 11:27                             ` liviu.dudau-5wv7dgnIgG8
2016-01-12 11:56                             ` Rongrong Zou
2016-01-12 11:56                               ` Rongrong Zou
2016-01-12 11:56                               ` Rongrong Zou
2016-01-12 15:13                               ` liviu.dudau
2016-01-12 15:13                                 ` liviu.dudau at arm.com
2016-01-12 15:13                                 ` liviu.dudau-5wv7dgnIgG8
2016-01-12 22:52                                 ` Arnd Bergmann
2016-01-12 22:52                                   ` Arnd Bergmann
2016-01-13  5:53                                   ` Benjamin Herrenschmidt
2016-01-13  5:53                                     ` Benjamin Herrenschmidt
2016-01-13  5:53                                     ` Benjamin Herrenschmidt
2016-01-13  6:34                                     ` Rongrong Zou
2016-01-13  6:34                                       ` Rongrong Zou
2016-01-13  6:34                                       ` Rongrong Zou
2016-01-13  9:26                                       ` Arnd Bergmann
2016-01-13  9:26                                         ` Arnd Bergmann
2016-01-13  9:26                                         ` Arnd Bergmann
2016-01-13 10:10                                   ` liviu.dudau
2016-01-13 10:10                                     ` liviu.dudau at arm.com
2016-01-13 10:10                                     ` liviu.dudau-5wv7dgnIgG8
2016-01-13 10:18                                     ` Arnd Bergmann
2016-01-13 10:18                                       ` Arnd Bergmann
2016-01-13 10:32                                       ` liviu.dudau
2016-01-13 10:32                                         ` liviu.dudau at arm.com
2016-01-13 10:32                                         ` liviu.dudau-5wv7dgnIgG8
2016-01-12 22:54                         ` Arnd Bergmann
2016-01-12 22:54                           ` Arnd Bergmann
2016-01-13 10:09                           ` liviu.dudau
2016-01-13 10:09                             ` liviu.dudau at arm.com
2016-01-13 10:09                             ` liviu.dudau-5wv7dgnIgG8
2016-01-13 10:29                             ` Arnd Bergmann
2016-01-13 10:29                               ` Arnd Bergmann
2016-01-13 10:29                               ` Arnd Bergmann
2016-01-13 11:06                             ` Rongrong Zou
2016-01-13 11:06                               ` Rongrong Zou
2016-01-13 11:25                               ` liviu.dudau
2016-01-13 11:25                                 ` liviu.dudau at arm.com
2016-01-13 23:29   ` Benjamin Herrenschmidt
2016-01-14  2:03     ` Rongrong Zou
2016-01-14  3:39       ` Benjamin Herrenschmidt
2016-01-14  4:42         ` Rongrong Zou
2016-01-14 11:25           ` Benjamin Herrenschmidt
2016-01-14 13:11             ` Rongrong Zou

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=3232651.99Svz5pbDW@wuerfel \
    --to=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=catalin.marinas@arm.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=lijianhua@huawei.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=lixiancai@huawei.com \
    --cc=minyard@acm.org \
    --cc=will.deacon@arm.com \
    --cc=zourongrong@gmail.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.