linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: monstr@monstr.eu (Michal Simek)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/6] microblaze: move pci flag functions into asm-generic
Date: Tue, 05 Jul 2011 12:36:48 +0200	[thread overview]
Message-ID: <4E12E940.8040602@monstr.eu> (raw)
In-Reply-To: <1309366019-24379-2-git-send-email-robherring2@gmail.com>

Hi Arnd and Ben,

Ben: how is it going with your OF pci redesigning patches?

Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
> 
> Move pci_set_flags, pci_add_flags, and pci_has_flag into
> asm-generic/pci-bridge.h so other archs can use them.
 >
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
> Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
> ---
>  arch/microblaze/include/asm/pci-bridge.h |   36 +-----------------
>  include/asm-generic/pci-bridge.h         |   62 ++++++++++++++++++++++++++++++
>  2 files changed, 63 insertions(+), 35 deletions(-)
>  create mode 100644 include/asm-generic/pci-bridge.h
> 
> diff --git a/arch/microblaze/include/asm/pci-bridge.h b/arch/microblaze/include/asm/pci-bridge.h
> index 746df91..ad1480f 100644
> --- a/arch/microblaze/include/asm/pci-bridge.h
> +++ b/arch/microblaze/include/asm/pci-bridge.h
> @@ -10,6 +10,7 @@
>  #include <linux/pci.h>
>  #include <linux/list.h>
>  #include <linux/ioport.h>
> +#include <asm-generic/pci-bridge.h>
>  
>  struct device_node;
>  
> @@ -164,40 +165,5 @@ extern struct pci_controller *pcibios_alloc_controller(struct device_node *dev);
>  extern void pcibios_free_controller(struct pci_controller *phb);
>  extern void pcibios_setup_phb_resources(struct pci_controller *hose);
>  
> -#ifdef CONFIG_PCI
> -extern unsigned int pci_flags;
> -
> -static inline void pci_set_flags(int flags)
> -{
> -	pci_flags = flags;
> -}
> -
> -static inline void pci_add_flags(int flags)
> -{
> -	pci_flags |= flags;
> -}
> -
> -static inline int pci_has_flag(int flag)
> -{
> -	return pci_flags & flag;
> -}
> -
> -extern struct list_head hose_list;
> -
> -extern int pcibios_vaddr_is_ioport(void __iomem *address);
> -#else
> -static inline int pcibios_vaddr_is_ioport(void __iomem *address)
> -{
> -	return 0;
> -}
> -
> -static inline void pci_set_flags(int flags) { }
> -static inline void pci_add_flags(int flags) { }
> -static inline int pci_has_flag(int flag)
> -{
> -	return 0;
> -}
> -#endif	/* CONFIG_PCI */
> -
>  #endif	/* __KERNEL__ */
>  #endif	/* _ASM_MICROBLAZE_PCI_BRIDGE_H */
> diff --git a/include/asm-generic/pci-bridge.h b/include/asm-generic/pci-bridge.h
> new file mode 100644
> index 0000000..4a5aca2
> --- /dev/null
> +++ b/include/asm-generic/pci-bridge.h
> @@ -0,0 +1,62 @@
> +/*
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * as published by the Free Software Foundation; either version
> + * 2 of the License, or (at your option) any later version.
> + */
> +#ifndef _ASM_GENERIC_PCI_BRIDGE_H
> +#define _ASM_GENERIC_PCI_BRIDGE_H
> +
> +#ifdef __KERNEL__
> +
> +enum {
> +	/* Force re-assigning all resources (ignore firmware
> +	 * setup completely)
> +	 */
> +	PCI_REASSIGN_ALL_RSRC	= 0x00000001,
> +
> +	/* Re-assign all bus numbers */
> +	PCI_REASSIGN_ALL_BUS	= 0x00000002,
> +
> +	/* Do not try to assign, just use existing setup */
> +	PCI_PROBE_ONLY		= 0x00000004,
> +
> +	/* Don't bother with ISA alignment unless the bridge has
> +	 * ISA forwarding enabled
> +	 */
> +	PCI_CAN_SKIP_ISA_ALIGN	= 0x00000008,
> +
> +	/* Enable domain numbers in /proc */
> +	PCI_ENABLE_PROC_DOMAINS	= 0x00000010,
> +	/* ... except for domain 0 */
> +	PCI_COMPAT_DOMAIN_0	= 0x00000020,
> +};
> +
> +#ifdef CONFIG_PCI
> +extern unsigned int pci_flags;
> +
> +static inline void pci_set_flags(int flags)
> +{
> +	pci_flags = flags;
> +}
> +
> +static inline void pci_add_flags(int flags)
> +{
> +	pci_flags |= flags;
> +}
> +
> +static inline int pci_has_flag(int flag)
> +{
> +	return pci_flags & flag;
> +}
> +#else
> +static inline void pci_set_flags(int flags) { }
> +static inline void pci_add_flags(int flags) { }
> +static inline int pci_has_flag(int flag)
> +{
> +	return 0;
> +}
> +#endif	/* CONFIG_PCI */
> +
> +#endif	/* __KERNEL__ */
> +#endif	/* _ASM_GENERIC_PCI_BRIDGE_H */


Rob has sent some patches about introducing asm-generic/pci-bridge.h.
Interesting is that Microblaze doesn't use that functions (pci_set/add/has_flag).
There are some points where we could use that generic functions.

Almost the same case is for ppc - especially pci_has_flag function should be 
used more.

New pci-bridge could be used just by Microblaze. For PPC you will have to change 
variable name.

Anyway. If you want to add this patch to the mainline you should change ppc code 
  and get ACK from them. I am not pci expert to tell you if is the right thing 
to do it. Ben?

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian

  parent reply	other threads:[~2011-07-05 10:36 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-29 16:46 [PATCH v2 0/6] ARM: make mach/hardware.h optional Rob Herring
2011-06-29 16:46 ` [PATCH 1/6] microblaze: move pci flag functions into asm-generic Rob Herring
2011-06-29 16:54   ` Jesse Barnes
2011-07-25 19:17     ` Ram Pai
2011-07-05 10:36   ` Michal Simek [this message]
2011-06-29 16:46 ` [PATCH 2/6] ARM: move ARCH_HAS_DMA_SET_COHERENT_MASK into memory.h Rob Herring
2011-07-09 14:33   ` Rob Herring
2011-07-09 14:58     ` Russell King - ARM Linux
2011-07-10 14:29       ` Rob Herring
2011-07-10 14:51         ` Russell King - ARM Linux
2011-06-29 16:46 ` [PATCH 3/6] ARM: remove unnecessary mach/hardware.h includes Rob Herring
2011-06-29 16:46 ` [PATCH 4/6] ARM: pci: make pcibios_assign_all_busses use pci_has_flag Rob Herring
2011-06-29 16:46 ` [PATCH 5/6] ARM: convert PCI defines to variables Rob Herring
2011-07-02  9:21   ` Arnd Bergmann
2011-07-02 12:40     ` Rob Herring
2011-07-02 19:41       ` Arnd Bergmann
2011-06-29 16:46 ` [PATCH 6/6] ARM: set vga memory base at run-time Rob Herring
2011-07-02  9:24 ` [PATCH v2 0/6] ARM: make mach/hardware.h optional Arnd Bergmann
2011-07-11 15:31   ` Rob Herring
2011-07-12 13:02     ` Arnd Bergmann
2011-07-12 13:38       ` Michal Simek

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=4E12E940.8040602@monstr.eu \
    --to=monstr@monstr.eu \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).