Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753667AbZGALf6 (ORCPT ); Wed, 1 Jul 2009 07:35:58 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751852AbZGALfv (ORCPT ); Wed, 1 Jul 2009 07:35:51 -0400 Received: from fg-out-1718.google.com ([72.14.220.153]:20869 "EHLO fg-out-1718.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751584AbZGALfu (ORCPT ); Wed, 1 Jul 2009 07:35:50 -0400 Message-ID: <4A4B4A16.8030606@monstr.eu> Date: Wed, 01 Jul 2009 13:35:50 +0200 From: Michal Simek Reply-To: monstr@monstr.eu User-Agent: Thunderbird 2.0.0.18 (X11/20081120) MIME-Version: 1.0 To: microblaze-uclinux@itee.uq.edu.au CC: LKML , Remis Lima Baima , Arnd Bergmann Subject: Re: [microblaze-uclinux] [PATCH 09/11] microblaze: convert all simple headers to use asm-generic References: <7a3b8affe04e005ba148507ed6408203b4014a34.1245347640.git.arnd@arndb.de> In-Reply-To: <7a3b8affe04e005ba148507ed6408203b4014a34.1245347640.git.arnd@arndb.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 17530 Lines: 549 Added to next branch for testing. Thanks, Michal Arnd Bergmann wrote: > From: Remis Lima Baima > > All the simple microblaze header files were adapted to use their > asm-generic implementations. These files are more simple and were quite > straightforward to change. > > fb.h, vga.h and parport.h previously did not exist, using > the generic version makes it possible to build more drivers > successfully in allyesonfig. > > Signed-off-by: Remis Lima Baima > Signed-off-by: Arnd Bergmann > --- > arch/microblaze/include/asm/atomic.h | 147 ++++--------------------- > arch/microblaze/include/asm/bitops.h | 28 +----- > arch/microblaze/include/asm/bug.h | 14 --- > arch/microblaze/include/asm/bugs.h | 18 +--- > arch/microblaze/include/asm/fb.h | 1 + > arch/microblaze/include/asm/hardirq.h | 14 +-- > arch/microblaze/include/asm/irq.h | 6 +- > arch/microblaze/include/asm/mmu.h | 7 +- > arch/microblaze/include/asm/mmu_context.h | 2 +- > arch/microblaze/include/asm/mmu_context_no.h | 23 ---- > arch/microblaze/include/asm/module.h | 10 +-- > arch/microblaze/include/asm/parport.h | 1 + > arch/microblaze/include/asm/pci.h | 2 +- > arch/microblaze/include/asm/scatterlist.h | 29 +----- > arch/microblaze/include/asm/serial.h | 15 +--- > arch/microblaze/include/asm/shmparam.h | 7 +- > arch/microblaze/include/asm/system.h | 3 + > arch/microblaze/include/asm/timex.h | 6 +- > arch/microblaze/include/asm/vga.h | 2 +- > 19 files changed, 45 insertions(+), 290 deletions(-) > rewrite arch/microblaze/include/asm/atomic.h (84%) > rewrite arch/microblaze/include/asm/bitops.h (95%) > create mode 100644 arch/microblaze/include/asm/fb.h > delete mode 100644 arch/microblaze/include/asm/mmu_context_no.h > create mode 100644 arch/microblaze/include/asm/parport.h > rewrite arch/microblaze/include/asm/scatterlist.h (100%) > > diff --git a/arch/microblaze/include/asm/atomic.h b/arch/microblaze/include/asm/atomic.h > dissimilarity index 84% > index 0de612a..6d2e1d4 100644 > --- a/arch/microblaze/include/asm/atomic.h > +++ b/arch/microblaze/include/asm/atomic.h > @@ -1,123 +1,24 @@ > -/* > - * Copyright (C) 2006 Atmark Techno, Inc. > - * > - * This file is subject to the terms and conditions of the GNU General Public > - * License. See the file "COPYING" in the main directory of this archive > - * for more details. > - */ > - > -#ifndef _ASM_MICROBLAZE_ATOMIC_H > -#define _ASM_MICROBLAZE_ATOMIC_H > - > -#include > -#include /* likely */ > -#include /* local_irq_XXX and friends */ > - > -#define ATOMIC_INIT(i) { (i) } > -#define atomic_read(v) ((v)->counter) > -#define atomic_set(v, i) (((v)->counter) = (i)) > - > -#define atomic_inc(v) (atomic_add_return(1, (v))) > -#define atomic_dec(v) (atomic_sub_return(1, (v))) > - > -#define atomic_add(i, v) (atomic_add_return(i, (v))) > -#define atomic_sub(i, v) (atomic_sub_return(i, (v))) > - > -#define atomic_inc_return(v) (atomic_add_return(1, (v))) > -#define atomic_dec_return(v) (atomic_sub_return(1, (v))) > - > -#define atomic_inc_and_test(v) (atomic_add_return(1, (v)) == 0) > -#define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0) > - > -#define atomic_inc_not_zero(v) (atomic_add_unless((v), 1, 0)) > - > -#define atomic_sub_and_test(i, v) (atomic_sub_return((i), (v)) == 0) > - > -static inline int atomic_cmpxchg(atomic_t *v, int old, int new) > -{ > - int ret; > - unsigned long flags; > - > - local_irq_save(flags); > - ret = v->counter; > - if (likely(ret == old)) > - v->counter = new; > - local_irq_restore(flags); > - > - return ret; > -} > - > -static inline int atomic_add_unless(atomic_t *v, int a, int u) > -{ > - int c, old; > - > - c = atomic_read(v); > - while (c != u && (old = atomic_cmpxchg((v), c, c + a)) != c) > - c = old; > - return c != u; > -} > - > -static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr) > -{ > - unsigned long flags; > - > - local_irq_save(flags); > - *addr &= ~mask; > - local_irq_restore(flags); > -} > - > -/** > - * atomic_add_return - add and return > - * @i: integer value to add > - * @v: pointer of type atomic_t > - * > - * Atomically adds @i to @v and returns @i + @v > - */ > -static inline int atomic_add_return(int i, atomic_t *v) > -{ > - unsigned long flags; > - int val; > - > - local_irq_save(flags); > - val = v->counter; > - v->counter = val += i; > - local_irq_restore(flags); > - > - return val; > -} > - > -static inline int atomic_sub_return(int i, atomic_t *v) > -{ > - return atomic_add_return(-i, v); > -} > - > -/* > - * Atomically test *v and decrement if it is greater than 0. > - * The function returns the old value of *v minus 1. > - */ > -static inline int atomic_dec_if_positive(atomic_t *v) > -{ > - unsigned long flags; > - int res; > - > - local_irq_save(flags); > - res = v->counter - 1; > - if (res >= 0) > - v->counter = res; > - local_irq_restore(flags); > - > - return res; > -} > - > -#define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) > -#define atomic_xchg(v, new) (xchg(&((v)->counter), new)) > - > -/* Atomic operations are already serializing */ > -#define smp_mb__before_atomic_dec() barrier() > -#define smp_mb__after_atomic_dec() barrier() > -#define smp_mb__before_atomic_inc() barrier() > -#define smp_mb__after_atomic_inc() barrier() > - > -#include > - > -#endif /* _ASM_MICROBLAZE_ATOMIC_H */ > +#ifndef _ASM_MICROBLAZE_ATOMIC_H > +#define _ASM_MICROBLAZE_ATOMIC_H > + > +#include > + > +/* > + * Atomically test *v and decrement if it is greater than 0. > + * The function returns the old value of *v minus 1. > + */ > +static inline int atomic_dec_if_positive(atomic_t *v) > +{ > + unsigned long flags; > + int res; > + > + local_irq_save(flags); > + res = v->counter - 1; > + if (res >= 0) > + v->counter = res; > + local_irq_restore(flags); > + > + return res; > +} > + > +#endif /* _ASM_MICROBLAZE_ATOMIC_H */ > diff --git a/arch/microblaze/include/asm/bitops.h b/arch/microblaze/include/asm/bitops.h > dissimilarity index 95% > index d6df1fd..a72468f 100644 > --- a/arch/microblaze/include/asm/bitops.h > +++ b/arch/microblaze/include/asm/bitops.h > @@ -1,27 +1 @@ > -/* > - * Copyright (C) 2006 Atmark Techno, Inc. > - * > - * This file is subject to the terms and conditions of the GNU General Public > - * License. See the file "COPYING" in the main directory of this archive > - * for more details. > - */ > - > -#ifndef _ASM_MICROBLAZE_BITOPS_H > -#define _ASM_MICROBLAZE_BITOPS_H > - > -/* > - * Copyright 1992, Linus Torvalds. > - */ > - > -#include /* swab32 */ > -#include /* save_flags */ > - > -/* > - * clear_bit() doesn't provide any barrier for the compiler. > - */ > -#define smp_mb__before_clear_bit() barrier() > -#define smp_mb__after_clear_bit() barrier() > -#include > -#include > - > -#endif /* _ASM_MICROBLAZE_BITOPS_H */ > +#include > diff --git a/arch/microblaze/include/asm/bug.h b/arch/microblaze/include/asm/bug.h > index 8eb2cdd..b12fd89 100644 > --- a/arch/microblaze/include/asm/bug.h > +++ b/arch/microblaze/include/asm/bug.h > @@ -1,15 +1 @@ > -/* > - * Copyright (C) 2006 Atmark Techno, Inc. > - * > - * This file is subject to the terms and conditions of the GNU General Public > - * License. See the file "COPYING" in the main directory of this archive > - * for more details. > - */ > - > -#ifndef _ASM_MICROBLAZE_BUG_H > -#define _ASM_MICROBLAZE_BUG_H > - > -#include > #include > - > -#endif /* _ASM_MICROBLAZE_BUG_H */ > diff --git a/arch/microblaze/include/asm/bugs.h b/arch/microblaze/include/asm/bugs.h > index f2c6593..61791e1 100644 > --- a/arch/microblaze/include/asm/bugs.h > +++ b/arch/microblaze/include/asm/bugs.h > @@ -1,17 +1 @@ > -/* > - * Copyright (C) 2006 Atmark Techno, Inc. > - * > - * This file is subject to the terms and conditions of the GNU General Public > - * License. See the file "COPYING" in the main directory of this archive > - * for more details. > - */ > - > -#ifndef _ASM_MICROBLAZE_BUGS_H > -#define _ASM_MICROBLAZE_BUGS_H > - > -static inline void check_bugs(void) > -{ > - /* nothing to do */ > -} > - > -#endif /* _ASM_MICROBLAZE_BUGS_H */ > +#include > diff --git a/arch/microblaze/include/asm/fb.h b/arch/microblaze/include/asm/fb.h > new file mode 100644 > index 0000000..3a4988e > --- /dev/null > +++ b/arch/microblaze/include/asm/fb.h > @@ -0,0 +1 @@ > +#include > diff --git a/arch/microblaze/include/asm/hardirq.h b/arch/microblaze/include/asm/hardirq.h > index 0f2d6b0..41e1e1a 100644 > --- a/arch/microblaze/include/asm/hardirq.h > +++ b/arch/microblaze/include/asm/hardirq.h > @@ -9,21 +9,11 @@ > #ifndef _ASM_MICROBLAZE_HARDIRQ_H > #define _ASM_MICROBLAZE_HARDIRQ_H > > -#include > -#include > -#include > -#include > -#include > - > /* should be defined in each interrupt controller driver */ > extern unsigned int get_irq(struct pt_regs *regs); > > -typedef struct { > - unsigned int __softirq_pending; > -} ____cacheline_aligned irq_cpustat_t; > - > +#define ack_bad_irq ack_bad_irq > void ack_bad_irq(unsigned int irq); > - > -#include /* Standard mappings for irq_cpustat_t above */ > +#include > > #endif /* _ASM_MICROBLAZE_HARDIRQ_H */ > diff --git a/arch/microblaze/include/asm/irq.h b/arch/microblaze/include/asm/irq.h > index db515de..90f0505 100644 > --- a/arch/microblaze/include/asm/irq.h > +++ b/arch/microblaze/include/asm/irq.h > @@ -10,6 +10,7 @@ > #define _ASM_MICROBLAZE_IRQ_H > > #define NR_IRQS 32 > +#include > > #include > > @@ -17,11 +18,6 @@ extern unsigned int nr_irq; > > #define NO_IRQ (-1) > > -static inline int irq_canonicalize(int irq) > -{ > - return irq; > -} > - > struct pt_regs; > extern void do_IRQ(struct pt_regs *regs); > > diff --git a/arch/microblaze/include/asm/mmu.h b/arch/microblaze/include/asm/mmu.h > index 66cad6a..8d6a654 100644 > --- a/arch/microblaze/include/asm/mmu.h > +++ b/arch/microblaze/include/asm/mmu.h > @@ -12,12 +12,7 @@ > #define _ASM_MICROBLAZE_MMU_H > > # ifndef CONFIG_MMU > -# ifndef __ASSEMBLY__ > -typedef struct { > - struct vm_list_struct *vmlist; > - unsigned long end_brk; > -} mm_context_t; > -# endif /* __ASSEMBLY__ */ > +# include > # else /* CONFIG_MMU */ > # ifdef __KERNEL__ > # ifndef __ASSEMBLY__ > diff --git a/arch/microblaze/include/asm/mmu_context.h b/arch/microblaze/include/asm/mmu_context.h > index 385fed1..24eab16 100644 > --- a/arch/microblaze/include/asm/mmu_context.h > +++ b/arch/microblaze/include/asm/mmu_context.h > @@ -1,5 +1,5 @@ > #ifdef CONFIG_MMU > # include "mmu_context_mm.h" > #else > -# include "mmu_context_no.h" > +# include > #endif > diff --git a/arch/microblaze/include/asm/mmu_context_no.h b/arch/microblaze/include/asm/mmu_context_no.h > deleted file mode 100644 > index ba55671..0000000 > --- a/arch/microblaze/include/asm/mmu_context_no.h > +++ /dev/null > @@ -1,23 +0,0 @@ > -/* > - * Copyright (C) 2008-2009 Michal Simek > - * Copyright (C) 2008-2009 PetaLogix > - * Copyright (C) 2006 Atmark Techno, Inc. > - * > - * This file is subject to the terms and conditions of the GNU General Public > - * License. See the file "COPYING" in the main directory of this archive > - * for more details. > - */ > - > -#ifndef _ASM_MICROBLAZE_MMU_CONTEXT_H > -#define _ASM_MICROBLAZE_MMU_CONTEXT_H > - > -# define init_new_context(tsk, mm) ({ 0; }) > - > -# define enter_lazy_tlb(mm, tsk) do {} while (0) > -# define change_mm_context(old, ctx, _pml4) do {} while (0) > -# define destroy_context(mm) do {} while (0) > -# define deactivate_mm(tsk, mm) do {} while (0) > -# define switch_mm(prev, next, tsk) do {} while (0) > -# define activate_mm(prev, next) do {} while (0) > - > -#endif /* _ASM_MICROBLAZE_MMU_CONTEXT_H */ > diff --git a/arch/microblaze/include/asm/module.h b/arch/microblaze/include/asm/module.h > index 914565a..7be1347 100644 > --- a/arch/microblaze/include/asm/module.h > +++ b/arch/microblaze/include/asm/module.h > @@ -9,6 +9,8 @@ > #ifndef _ASM_MICROBLAZE_MODULE_H > #define _ASM_MICROBLAZE_MODULE_H > > +#include > + > /* Microblaze Relocations */ > #define R_MICROBLAZE_NONE 0 > #define R_MICROBLAZE_32 1 > @@ -24,14 +26,6 @@ > /* Keep this the last entry. */ > #define R_MICROBLAZE_NUM 11 > > -struct mod_arch_specific { > - int foo; > -}; > - > -#define Elf_Shdr Elf32_Shdr > -#define Elf_Sym Elf32_Sym > -#define Elf_Ehdr Elf32_Ehdr > - > typedef struct { volatile int counter; } module_t; > > #endif /* _ASM_MICROBLAZE_MODULE_H */ > diff --git a/arch/microblaze/include/asm/parport.h b/arch/microblaze/include/asm/parport.h > new file mode 100644 > index 0000000..cf252af > --- /dev/null > +++ b/arch/microblaze/include/asm/parport.h > @@ -0,0 +1 @@ > +#include > diff --git a/arch/microblaze/include/asm/pci.h b/arch/microblaze/include/asm/pci.h > index ca03794..9f0df5f 100644 > --- a/arch/microblaze/include/asm/pci.h > +++ b/arch/microblaze/include/asm/pci.h > @@ -1 +1 @@ > -#include > +#include > diff --git a/arch/microblaze/include/asm/scatterlist.h b/arch/microblaze/include/asm/scatterlist.h > dissimilarity index 100% > index 08ff1d0..35d786f 100644 > --- a/arch/microblaze/include/asm/scatterlist.h > +++ b/arch/microblaze/include/asm/scatterlist.h > @@ -1,28 +1 @@ > -/* > - * Copyright (C) 2008 Michal Simek > - * Copyright (C) 2006 Atmark Techno, Inc. > - * > - * This file is subject to the terms and conditions of the GNU General Public > - * License. See the file "COPYING" in the main directory of this archive > - * for more details. > - */ > - > -#ifndef _ASM_MICROBLAZE_SCATTERLIST_H > -#define _ASM_MICROBLAZE_SCATTERLIST_H > - > -struct scatterlist { > -#ifdef CONFIG_DEBUG_SG > - unsigned long sg_magic; > -#endif > - unsigned long page_link; > - dma_addr_t dma_address; > - unsigned int offset; > - unsigned int length; > -}; > - > -#define sg_dma_address(sg) ((sg)->dma_address) > -#define sg_dma_len(sg) ((sg)->length) > - > -#define ISA_DMA_THRESHOLD (~0UL) > - > -#endif /* _ASM_MICROBLAZE_SCATTERLIST_H */ > +#include > diff --git a/arch/microblaze/include/asm/serial.h b/arch/microblaze/include/asm/serial.h > index 39bfc8c..a0cb0ca 100644 > --- a/arch/microblaze/include/asm/serial.h > +++ b/arch/microblaze/include/asm/serial.h > @@ -1,14 +1 @@ > -/* > - * Copyright (C) 2009 Michal Simek > - * > - * This file is subject to the terms and conditions of the GNU General Public > - * License. See the file "COPYING" in the main directory of this archive > - * for more details. > - */ > - > -#ifndef _ASM_MICROBLAZE_SERIAL_H > -#define _ASM_MICROBLAZE_SERIAL_H > - > -# define BASE_BAUD (1843200 / 16) > - > -#endif /* _ASM_MICROBLAZE_SERIAL_H */ > +#include > diff --git a/arch/microblaze/include/asm/shmparam.h b/arch/microblaze/include/asm/shmparam.h > index 9f5fc2b..93f30de 100644 > --- a/arch/microblaze/include/asm/shmparam.h > +++ b/arch/microblaze/include/asm/shmparam.h > @@ -1,6 +1 @@ > -#ifndef _ASM_MICROBLAZE_SHMPARAM_H > -#define _ASM_MICROBLAZE_SHMPARAM_H > - > -#define SHMLBA PAGE_SIZE /* attach addr a multiple of this */ > - > -#endif /* _ASM_MICROBLAZE_SHMPARAM_H */ > +#include > diff --git a/arch/microblaze/include/asm/system.h b/arch/microblaze/include/asm/system.h > index c4e3088..b1ed615 100644 > --- a/arch/microblaze/include/asm/system.h > +++ b/arch/microblaze/include/asm/system.h > @@ -13,6 +13,9 @@ > #include > #include > > +#include > +#include > + > struct task_struct; > struct thread_info; > > diff --git a/arch/microblaze/include/asm/timex.h b/arch/microblaze/include/asm/timex.h > index 678525d..befcf3d 100644 > --- a/arch/microblaze/include/asm/timex.h > +++ b/arch/microblaze/include/asm/timex.h > @@ -9,10 +9,8 @@ > #ifndef _ASM_MICROBLAZE_TIMEX_H > #define _ASM_MICROBLAZE_TIMEX_H > > -#define CLOCK_TICK_RATE 1000 /* Timer input freq. */ > - > -typedef unsigned long cycles_t; > +#include > > -#define get_cycles() (0) > +#define CLOCK_TICK_RATE 1000 /* Timer input freq. */ > > #endif /* _ASM_TIMEX_H */ > diff --git a/arch/microblaze/include/asm/vga.h b/arch/microblaze/include/asm/vga.h > index 8b13789..89d82fd 100644 > --- a/arch/microblaze/include/asm/vga.h > +++ b/arch/microblaze/include/asm/vga.h > @@ -1 +1 @@ > - > +#include -- Michal Simek, Ing. (M.Eng) w: www.monstr.eu p: +42-0-721842854 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/