From ae41f32e16d8e87c84cb910a6a6aefb50318894d Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Fri, 17 Jun 2011 16:20:36 -0400 Subject: [PATCH 01/15] Blackfin: SMP: convert to common asm-generic/atomic.h Now that common code supports SMP systems, switch our SMP atomic logic over to it to avoid code duplication. Signed-off-by: Mike Frysinger --- arch/blackfin/include/asm/atomic.h | 104 +++-------------------------- 1 file changed, 10 insertions(+), 94 deletions(-) diff --git a/arch/blackfin/include/asm/atomic.h b/arch/blackfin/include/asm/atomic.h index 135225696fd2..54c6e2887e9f 100644 --- a/arch/blackfin/include/asm/atomic.h +++ b/arch/blackfin/include/asm/atomic.h @@ -1,5 +1,5 @@ /* - * Copyright 2004-2009 Analog Devices Inc. + * Copyright 2004-2011 Analog Devices Inc. * * Licensed under the GPL-2 or later. */ @@ -7,111 +7,27 @@ #ifndef __ARCH_BLACKFIN_ATOMIC__ #define __ARCH_BLACKFIN_ATOMIC__ -#ifndef CONFIG_SMP -# include -#else +#ifdef CONFIG_SMP -#include -#include /* local_irq_XXX() */ - -/* - * Atomic operations that C can't guarantee us. Useful for - * resource counting etc.. - */ - -#define ATOMIC_INIT(i) { (i) } -#define atomic_set(v, i) (((v)->counter) = i) - -#define atomic_read(v) __raw_uncached_fetch_asm(&(v)->counter) +#include asmlinkage int __raw_uncached_fetch_asm(const volatile int *ptr); - asmlinkage int __raw_atomic_update_asm(volatile int *ptr, int value); - asmlinkage int __raw_atomic_clear_asm(volatile int *ptr, int value); - asmlinkage int __raw_atomic_set_asm(volatile int *ptr, int value); - asmlinkage int __raw_atomic_xor_asm(volatile int *ptr, int value); - asmlinkage int __raw_atomic_test_asm(const volatile int *ptr, int value); -static inline void atomic_add(int i, atomic_t *v) -{ - __raw_atomic_update_asm(&v->counter, i); -} +#define atomic_read(v) __raw_uncached_fetch_asm(&(v)->counter) -static inline void atomic_sub(int i, atomic_t *v) -{ - __raw_atomic_update_asm(&v->counter, -i); -} - -static inline int atomic_add_return(int i, atomic_t *v) -{ - return __raw_atomic_update_asm(&v->counter, i); -} - -static inline int atomic_sub_return(int i, atomic_t *v) -{ - return __raw_atomic_update_asm(&v->counter, -i); -} - -static inline void atomic_inc(volatile atomic_t *v) -{ - __raw_atomic_update_asm(&v->counter, 1); -} - -static inline void atomic_dec(volatile atomic_t *v) -{ - __raw_atomic_update_asm(&v->counter, -1); -} - -static inline void atomic_clear_mask(int mask, atomic_t *v) -{ - __raw_atomic_clear_asm(&v->counter, mask); -} - -static inline void atomic_set_mask(int mask, atomic_t *v) -{ - __raw_atomic_set_asm(&v->counter, mask); -} - -/* 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() - -#define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) -#define atomic_dec_return(v) atomic_sub_return(1,(v)) -#define atomic_inc_return(v) atomic_add_return(1,(v)) - -#define atomic_cmpxchg(v, o, n) ((int)cmpxchg(&((v)->counter), (o), (n))) -#define atomic_xchg(v, new) (xchg(&((v)->counter), new)) - -#define __atomic_add_unless(v, a, u) \ -({ \ - int c, old; \ - c = atomic_read(v); \ - while (c != (u) && (old = atomic_cmpxchg((v), c, c + (a))) != c) \ - c = old; \ - c; \ -}) - -/* - * atomic_inc_and_test - increment and test - * @v: pointer of type atomic_t - * - * Atomically increments @v by 1 - * and returns true if the result is zero, or false for all - * other cases. - */ -#define atomic_inc_and_test(v) (atomic_inc_return(v) == 0) - -#define atomic_sub_and_test(i,v) (atomic_sub_return((i), (v)) == 0) -#define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0) +#define atomic_add_return(i, v) __raw_atomic_update_asm(&(v)->counter, i) +#define atomic_sub_return(i, v) __raw_atomic_update_asm(&(v)->counter, -(i)) +#define atomic_clear_mask(m, v) __raw_atomic_clear_asm(&(v)->counter, m) +#define atomic_set_mask(m, v) __raw_atomic_set_asm(&(v)->counter, m) #endif +#include + #endif From 74b654176aa15e06b81f26416654b9cd91bd9601 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 23 Jul 2011 15:51:38 +0000 Subject: [PATCH 02/15] Blackfin: H8606: fixup bogus ioresource init IRQF_SHARED is not part of the IORESOURCE_IRQ bits. It's expressed by IORESOURCE_IRQ_SHAREABLE. IORESOURCE_IRQ_HIGHEDGE and IRQF_TRIGGER_HIGH are contradicting values, an interrupt can hardly be configured for both level and edge at the same time. This was introduced in commit 45138439(Blackfin arch: flash memory map and dm9000 resources updating) of course without any hint in the changelog what the heck this is supposed to do. Acked-by: Javier Herrero Signed-off-by: Thomas Gleixner Signed-off-by: Mike Frysinger --- arch/blackfin/mach-bf533/boards/H8606.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/blackfin/mach-bf533/boards/H8606.c b/arch/blackfin/mach-bf533/boards/H8606.c index eb325ed6607e..5da5787fc4ef 100644 --- a/arch/blackfin/mach-bf533/boards/H8606.c +++ b/arch/blackfin/mach-bf533/boards/H8606.c @@ -54,7 +54,8 @@ static struct resource dm9000_resources[] = { [2] = { .start = IRQ_PF10, .end = IRQ_PF10, - .flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE | IRQF_SHARED | IRQF_TRIGGER_HIGH), + .flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE | + IORESOURCE_IRQ_SHAREABLE), }, }; From 0b2b06efd81ceb1630babcf2990f9577a17c132f Mon Sep 17 00:00:00 2001 From: Steven Miao Date: Tue, 2 Aug 2011 17:50:41 +0800 Subject: [PATCH 03/15] Blackfin: SMP: fix scheduling deadlock Make sure our smp_send_reschedule() implementation matches the scheduler_ipi() callback so that it can kick the idle cpu. Signed-off-by: Steven Miao Signed-off-by: Mike Frysinger --- arch/blackfin/mach-common/smp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/smp.c index 107622aacf6b..0784a52389c8 100644 --- a/arch/blackfin/mach-common/smp.c +++ b/arch/blackfin/mach-common/smp.c @@ -295,10 +295,15 @@ EXPORT_SYMBOL_GPL(smp_call_function_single); void smp_send_reschedule(int cpu) { + cpumask_t callmap; /* simply trigger an ipi */ if (cpu_is_offline(cpu)) return; - platform_send_ipi_cpu(cpu, IRQ_SUPPLE_0); + + cpumask_clear(&callmap); + cpumask_set_cpu(cpu, &callmap); + + smp_send_message(callmap, BFIN_IPI_RESCHEDULE, NULL, NULL, 0); return; } From f8b4392091e1a699a1402b66d578ab9a05bf7d44 Mon Sep 17 00:00:00 2001 From: Sonic Zhang Date: Fri, 5 Aug 2011 19:45:19 +0800 Subject: [PATCH 04/15] Blackfin: bf548-ezkit: update defconfig Signed-off-by: Sonic Zhang Signed-off-by: Mike Frysinger --- arch/blackfin/configs/BF548-EZKIT_defconfig | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig index 56151b5dbc44..0e6d841b5d01 100644 --- a/arch/blackfin/configs/BF548-EZKIT_defconfig +++ b/arch/blackfin/configs/BF548-EZKIT_defconfig @@ -4,7 +4,6 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_BLK_DEV_INITRD=y -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_EXPERT=y # CONFIG_SYSCTL_SYSCALL is not set # CONFIG_ELF_CORE is not set @@ -40,7 +39,6 @@ CONFIG_EBIU_MODEVAL=0x1 CONFIG_EBIU_FCTLVAL=0x6 CONFIG_BINFMT_FLAT=y CONFIG_BINFMT_ZFLAT=y -CONFIG_PM=y CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y @@ -55,7 +53,6 @@ CONFIG_IP_PNP=y CONFIG_CAN=m CONFIG_CAN_RAW=m CONFIG_CAN_BCM=m -CONFIG_CAN_DEV=m CONFIG_CAN_BFIN=m CONFIG_IRDA=m CONFIG_IRLAN=m @@ -67,7 +64,6 @@ CONFIG_BFIN_SIR3=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_FW_LOADER=m CONFIG_MTD=y -CONFIG_MTD_PARTITIONS=y CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_CHAR=y CONFIG_MTD_BLOCK=y @@ -105,12 +101,12 @@ CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_AD7877=m CONFIG_INPUT_MISC=y # CONFIG_SERIO is not set -# CONFIG_DEVKMEM is not set +# CONFIG_LEGACY_PTYS is not set CONFIG_BFIN_JTAG_COMM=m +# CONFIG_DEVKMEM is not set CONFIG_SERIAL_BFIN=y CONFIG_SERIAL_BFIN_CONSOLE=y CONFIG_SERIAL_BFIN_UART1=y -# CONFIG_LEGACY_PTYS is not set # CONFIG_HW_RANDOM is not set CONFIG_I2C=y CONFIG_I2C_CHARDEV=y @@ -163,6 +159,7 @@ CONFIG_USB_DEVICEFS=y CONFIG_USB_OTG_BLACKLIST_HUB=y CONFIG_USB_MON=y CONFIG_USB_MUSB_HDRC=y +CONFIG_USB_MUSB_BLACKFIN=y CONFIG_USB_STORAGE=y CONFIG_MMC=y CONFIG_MMC_BLOCK=m @@ -185,8 +182,6 @@ CONFIG_NFS_FS=m CONFIG_NFS_V3=y CONFIG_NFSD=m CONFIG_NFSD_V3=y -CONFIG_SMB_FS=m -CONFIG_SMB_NLS_DEFAULT=y CONFIG_CIFS=y CONFIG_NLS_CODEPAGE_437=m CONFIG_NLS_CODEPAGE_936=m @@ -196,7 +191,6 @@ CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_SHIRQ=y CONFIG_DETECT_HUNG_TASK=y CONFIG_DEBUG_INFO=y -# CONFIG_RCU_CPU_STALL_DETECTOR is not set # CONFIG_FTRACE is not set CONFIG_DEBUG_MMRS=y CONFIG_DEBUG_HWERR=y @@ -206,5 +200,4 @@ CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y CONFIG_EARLY_PRINTK=y CONFIG_CPLB_INFO=y CONFIG_BFIN_PSEUDODBG_INSNS=y -CONFIG_CRYPTO=y # CONFIG_CRYPTO_ANSI_CPRNG is not set From c91e09b6838f514a9a162a715a75241214258270 Mon Sep 17 00:00:00 2001 From: Mikhail Gruzdev Date: Sat, 6 Aug 2011 10:44:51 +0400 Subject: [PATCH 05/15] Blackfin: fix sparse warnings in copy_to/from_user Fix argument types for copy_to_user. Fix following sparse warnings: arch/blackfin/include/asm/uaccess.h:198:14: warning: incorrect type in argument 2 (different address spaces) arch/blackfin/include/asm/uaccess.h:198:14: expected void const *s arch/blackfin/include/asm/uaccess.h:198:14: got void const [noderef] *from arch/blackfin/include/asm/uaccess.h:208:14: warning: incorrect type in argument 2 (different address spaces) arch/blackfin/include/asm/uaccess.h:208:14: expected void const *s arch/blackfin/include/asm/uaccess.h:208:14: got void const [noderef] *from Signed-off-by: Mikhail Gruzdev Signed-off-by: Mike Frysinger --- arch/blackfin/include/asm/uaccess.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/blackfin/include/asm/uaccess.h b/arch/blackfin/include/asm/uaccess.h index 1c0d190adaef..5cc111502822 100644 --- a/arch/blackfin/include/asm/uaccess.h +++ b/arch/blackfin/include/asm/uaccess.h @@ -195,17 +195,17 @@ static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n) { if (access_ok(VERIFY_READ, from, n)) - memcpy(to, from, n); + memcpy(to, (const void __force *)from, n); else return n; return 0; } static inline unsigned long __must_check -copy_to_user(void *to, const void __user *from, unsigned long n) +copy_to_user(void __user *to, const void *from, unsigned long n) { if (access_ok(VERIFY_WRITE, to, n)) - memcpy(to, from, n); + memcpy((void __force *)to, from, n); else return n; return 0; From a9930fd234b64ac0fcdb3e6a626d9ba44fc250fb Mon Sep 17 00:00:00 2001 From: Sonic Zhang Date: Fri, 12 Aug 2011 17:57:57 +0800 Subject: [PATCH 06/15] Blackfin: kgdb_test: rework code to avoid -O0 usage __kfree_rcu() in rcupdate.h bugs when parameter offset is not a constant at compile time. Since we build the kgdb_test module with -O0 and it includes this header file, we hit the bug. So drop the -O0 and mark the one func we need for the test as noinline (so we can set a breakpoint on it and have it be hit). Signed-off-by: Sonic Zhang Signed-off-by: Mike Frysinger --- arch/blackfin/kernel/Makefile | 2 +- arch/blackfin/kernel/kgdb_test.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/blackfin/kernel/Makefile b/arch/blackfin/kernel/Makefile index b7bdc42fe1a3..1f88edd4572a 100644 --- a/arch/blackfin/kernel/Makefile +++ b/arch/blackfin/kernel/Makefile @@ -38,6 +38,6 @@ obj-$(CONFIG_PERF_EVENTS) += perf_event.o # the kgdb test puts code into L2 and without linker # relaxation, we need to force long calls to/from it -CFLAGS_kgdb_test.o := -mlong-calls -O0 +CFLAGS_kgdb_test.o := -mlong-calls obj-$(CONFIG_DEBUG_MMRS) += debug-mmrs.o diff --git a/arch/blackfin/kernel/kgdb_test.c b/arch/blackfin/kernel/kgdb_test.c index 2a6e9dbb62a5..4a7dcfea98af 100644 --- a/arch/blackfin/kernel/kgdb_test.c +++ b/arch/blackfin/kernel/kgdb_test.c @@ -50,8 +50,7 @@ void kgdb_l2_test(void) #endif - -int kgdb_test(char *name, int len, int count, int z) +noinline int kgdb_test(char *name, int len, int count, int z) { pr_alert("kgdb name(%d): %s, %d, %d\n", len, name, count, z); count = z; From d0556363064f06eaf1380cd529051ad5add43ba8 Mon Sep 17 00:00:00 2001 From: Scott Jiang Date: Fri, 12 Aug 2011 19:31:30 -0400 Subject: [PATCH 07/15] Blackfin: bf537-stamp: fix ad1836 name The ASoC codec name is "ad1836" and not "ad183x" as the change to rename things ultimately did not get merged. Signed-off-by: Scott Jiang Signed-off-by: Mike Frysinger --- arch/blackfin/mach-bf537/boards/stamp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c index b52e6728f64f..748b0f06cd91 100644 --- a/arch/blackfin/mach-bf537/boards/stamp.c +++ b/arch/blackfin/mach-bf537/boards/stamp.c @@ -962,10 +962,10 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { }, #endif -#if defined(CONFIG_SND_BF5XX_SOC_AD183X) \ - || defined(CONFIG_SND_BF5XX_SOC_AD183X_MODULE) +#if defined(CONFIG_SND_BF5XX_SOC_AD1836) \ + || defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE) { - .modalias = "ad183x", + .modalias = "ad1836", .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ .bus_num = 0, .chip_select = 4, From e0754d83ed5bfd9b1353f293964889252da682f2 Mon Sep 17 00:00:00 2001 From: Scott Jiang Date: Tue, 16 Aug 2011 19:08:42 -0400 Subject: [PATCH 08/15] Blackfin: bf537-stamp: fix ad73311 codec config macro SND_BF5XX_SOC is for machine drivers while SND_SOC is for codec drivers. Signed-off-by: Scott Jiang Signed-off-by: Mike Frysinger --- arch/blackfin/mach-bf537/boards/stamp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c index 748b0f06cd91..090a880927bf 100644 --- a/arch/blackfin/mach-bf537/boards/stamp.c +++ b/arch/blackfin/mach-bf537/boards/stamp.c @@ -2540,7 +2540,7 @@ static struct platform_device bfin_ac97_pcm = { }; #endif -#if defined(CONFIG_SND_BF5XX_SOC_AD73311) || defined(CONFIG_SND_BF5XX_SOC_AD73311_MODULE) +#if defined(CONFIG_SND_SOC_AD73311) || defined(CONFIG_SND_SOC_AD73311_MODULE) static struct platform_device bfin_ad73311_codec_device = { .name = "ad73311", .id = -1, @@ -2782,7 +2782,7 @@ static struct platform_device *stamp_devices[] __initdata = { &bfin_ac97_pcm, #endif -#if defined(CONFIG_SND_BF5XX_SOC_AD73311) || defined(CONFIG_SND_BF5XX_SOC_AD73311_MODULE) +#if defined(CONFIG_SND_SOC_AD73311) || defined(CONFIG_SND_SOC_AD73311_MODULE) &bfin_ad73311_codec_device, #endif From 2db1f97299131ecd121e32b6d2fc88ae4802bf86 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Fri, 19 Aug 2011 23:51:52 -0400 Subject: [PATCH 09/15] Blackfin: merge asm/mutex.h into kbuild too This header was being rewritten while the asm-generic kbuild support was in flight, so it missed out on the update. Punt the stub and use the kbuild now that everything has settled. Signed-off-by: Mike Frysinger --- arch/blackfin/include/asm/Kbuild | 1 + arch/blackfin/include/asm/mutex.h | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 arch/blackfin/include/asm/mutex.h diff --git a/arch/blackfin/include/asm/Kbuild b/arch/blackfin/include/asm/Kbuild index 7a075eaf6041..5a0625aad6a0 100644 --- a/arch/blackfin/include/asm/Kbuild +++ b/arch/blackfin/include/asm/Kbuild @@ -21,6 +21,7 @@ generic-y += local64.h generic-y += local.h generic-y += mman.h generic-y += msgbuf.h +generic-y += mutex.h generic-y += param.h generic-y += percpu.h generic-y += pgalloc.h diff --git a/arch/blackfin/include/asm/mutex.h b/arch/blackfin/include/asm/mutex.h deleted file mode 100644 index ff6101aa2c71..000000000000 --- a/arch/blackfin/include/asm/mutex.h +++ /dev/null @@ -1 +0,0 @@ -#include From 2fba06f2b8a7fe69c0eff94389834821f54ada10 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Tue, 30 Aug 2011 13:12:26 -0400 Subject: [PATCH 10/15] Blackfin: bf537-stamp: register adau1701 codec and asoc machine driver Signed-off-by: Lars-Peter Clausen Signed-off-by: Scott Jiang Signed-off-by: Mike Frysinger --- arch/blackfin/mach-bf537/boards/stamp.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c index 090a880927bf..fcd0a67efada 100644 --- a/arch/blackfin/mach-bf537/boards/stamp.c +++ b/arch/blackfin/mach-bf537/boards/stamp.c @@ -2275,6 +2275,11 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { I2C_BOARD_INFO("adau1361", 0x38), }, #endif +#if defined(CONFIG_SND_SOC_ADAU1701) || defined(CONFIG_SND_SOC_ADAU1701_MODULE) + { + I2C_BOARD_INFO("adau1701", 0x34), + }, +#endif #if defined(CONFIG_AD525X_DPOT) || defined(CONFIG_AD525X_DPOT_MODULE) { I2C_BOARD_INFO("ad5258", 0x18), @@ -2661,6 +2666,13 @@ static struct platform_device iio_gpio_trigger = { }; #endif +#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701) || \ + defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701_MODULE) +static struct platform_device bf5xx_adau1701_device = { + .name = "bfin-eval-adau1701", +}; +#endif + static struct platform_device *stamp_devices[] __initdata = { &bfin_dpmc, @@ -2821,6 +2833,11 @@ static struct platform_device *stamp_devices[] __initdata = { defined(CONFIG_IIO_GPIO_TRIGGER_MODULE) &iio_gpio_trigger, #endif + +#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701) || \ + defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701_MODULE) + &bf5xx_adau1701_device, +#endif }; static int __init net2272_init(void) From 080ae07cb7c74e0a6fd4f69f56433f8456338d20 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Tue, 30 Aug 2011 13:33:06 -0400 Subject: [PATCH 11/15] Blackfin: bf537-stamp: Register adav801 codec and ASoC machine driver There is already an entry in the spi device table for the codec, but the modalias was wrong. Also the config symbol name for the codec is wrong, so this is fixed as well. Signed-off-by: Lars-Peter Clausen Signed-off-by: Scott Jiang Signed-off-by: Mike Frysinger --- arch/blackfin/mach-bf537/boards/stamp.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c index fcd0a67efada..b7a081656a65 100644 --- a/arch/blackfin/mach-bf537/boards/stamp.c +++ b/arch/blackfin/mach-bf537/boards/stamp.c @@ -984,9 +984,9 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { }, #endif -#if defined(CONFIG_SND_BF5XX_SOC_ADAV80X) || defined(CONFIG_SND_BF5XX_SOC_ADAV80X_MODULE) +#if defined(CONFIG_SND_SOC_ADAV80X) || defined(CONFIG_SND_SOC_ADV80X_MODULE) { - .modalias = "adav80x", + .modalias = "adav801", .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ .bus_num = 0, .chip_select = 1, @@ -2101,7 +2101,7 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { }, #endif -#if defined(CONFIG_SND_BF5XX_SOC_ADAV80X) || defined(CONFIG_SND_BF5XX_SOC_ADAV80X_MODULE) +#if defined(CONFIG_SND_SOC_ADAV80X) || defined(CONFIG_SND_SOC_ADAV80X_MODULE) { I2C_BOARD_INFO("adav803", 0x10), }, @@ -2552,6 +2552,14 @@ static struct platform_device bfin_ad73311_codec_device = { }; #endif +#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X) || \ + defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X_MODULE) +static struct platform_device bfin_eval_adav801_device = { + .name = "bfin-eval-adav801", + .id = -1, +}; +#endif + #if defined(CONFIG_SND_BF5XX_SOC_I2S) || defined(CONFIG_SND_BF5XX_SOC_I2S_MODULE) static struct platform_device bfin_i2s = { .name = "bfin-i2s", @@ -2838,6 +2846,11 @@ static struct platform_device *stamp_devices[] __initdata = { defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701_MODULE) &bf5xx_adau1701_device, #endif + +#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X) || \ + defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X_MODULE) + &bfin_eval_adav801_device, +#endif }; static int __init net2272_init(void) From af80d0dec558658818248213ec8b62e4554a444a Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Tue, 30 Aug 2011 14:02:50 -0400 Subject: [PATCH 12/15] Blackfin: bf537-stamp: register ASoC EVAL-ADAU1373 board driver Signed-off-by: Lars-Peter Clausen Signed-off-by: Scott Jiang Signed-off-by: Mike Frysinger --- arch/blackfin/mach-bf537/boards/stamp.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c index b7a081656a65..f74ee6bbb246 100644 --- a/arch/blackfin/mach-bf537/boards/stamp.c +++ b/arch/blackfin/mach-bf537/boards/stamp.c @@ -2674,6 +2674,13 @@ static struct platform_device iio_gpio_trigger = { }; #endif +#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373) || \ + defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373_MODULE) +static struct platform_device bf5xx_adau1373_device = { + .name = "bfin-eval-adau1373", +}; +#endif + #if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701) || \ defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701_MODULE) static struct platform_device bf5xx_adau1701_device = { @@ -2842,6 +2849,11 @@ static struct platform_device *stamp_devices[] __initdata = { &iio_gpio_trigger, #endif +#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373) || \ + defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373_MODULE) + &bf5xx_adau1373_device, +#endif + #if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701) || \ defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701_MODULE) &bf5xx_adau1701_device, From 5101ea91c14978c8e8b74c8e65df43f4da9be6fb Mon Sep 17 00:00:00 2001 From: Paul Bolle Date: Fri, 14 Oct 2011 14:27:27 +0200 Subject: [PATCH 13/15] Blackfin: drop unused Kconfig symbol Signed-off-by: Paul Bolle Signed-off-by: Mike Frysinger --- arch/blackfin/Kconfig | 4 ---- 1 file changed, 4 deletions(-) diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index c7476295de80..abe5a9e85148 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig @@ -248,10 +248,6 @@ config HOTPLUG_CPU depends on SMP && HOTPLUG default y -config HAVE_LEGACY_PER_CPU_AREA - def_bool y - depends on SMP - config BF_REV_MIN int default 0 if (BF51x || BF52x || (BF54x && !BF54xM)) From 23405b024dbf2ffe5f5ef7a3460a7bfad489d5f4 Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Tue, 25 Oct 2011 09:54:59 +0200 Subject: [PATCH 14/15] Blackfin: boards: clean up i2c_board_info Remove i2c_board_info for driver that doesn't exist anymore. Delete irq_flags for drivers that don't use them anymore. Signed-off-by: Michael Hennerich Signed-off-by: Mike Frysinger --- arch/blackfin/mach-bf537/boards/stamp.c | 28 ------------------------- 1 file changed, 28 deletions(-) diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c index f74ee6bbb246..00a51ce0f0c2 100644 --- a/arch/blackfin/mach-bf537/boards/stamp.c +++ b/arch/blackfin/mach-bf537/boards/stamp.c @@ -2134,23 +2134,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { }, #endif -#if defined(CONFIG_AD7414) || defined(CONFIG_AD7414_MODULE) - { - I2C_BOARD_INFO("ad7414", 0x9), - .irq = IRQ_PG5, - .irq_flags = IRQF_TRIGGER_LOW, - }, -#endif - -#if defined(CONFIG_AD7416) || defined(CONFIG_AD7416_MODULE) - { - I2C_BOARD_INFO("ad7417", 0xb), - .irq = IRQ_PG5, - .irq_flags = IRQF_TRIGGER_LOW, - .platform_data = (void *)GPIO_PF4, - }, -#endif - #if defined(CONFIG_ADE7854_I2C) || defined(CONFIG_ADE7854_I2C_MODULE) { I2C_BOARD_INFO("ade7854", 0x38), @@ -2161,15 +2144,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { { I2C_BOARD_INFO("adt75", 0x9), .irq = IRQ_PG5, - .irq_flags = IRQF_TRIGGER_LOW, - }, -#endif - -#if defined(CONFIG_ADT7408) || defined(CONFIG_ADT7408_MODULE) - { - I2C_BOARD_INFO("adt7408", 0x18), - .irq = IRQ_PG5, - .irq_flags = IRQF_TRIGGER_LOW, }, #endif @@ -2178,7 +2152,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { I2C_BOARD_INFO("adt7410", 0x48), /* CT critical temperature event. line 0 */ .irq = IRQ_PG5, - .irq_flags = IRQF_TRIGGER_LOW, .platform_data = (void *)&adt7410_platform_data, }, #endif @@ -2187,7 +2160,6 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { { I2C_BOARD_INFO("ad7291", 0x20), .irq = IRQ_PG5, - .irq_flags = IRQF_TRIGGER_LOW, }, #endif From 7832bb5d450aefa45b6dac3b3140eade66bb12ad Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Wed, 7 Sep 2011 16:10:03 +0800 Subject: [PATCH 15/15] Blackfin: irq: remove IRQF_DISABLED This flag is a NOOP and can be removed now. Signed-off-by: Yong Zhang Acked-by: Bob Liu Signed-off-by: Mike Frysinger --- arch/blackfin/kernel/time-ts.c | 6 ++---- arch/blackfin/kernel/time.c | 1 - arch/blackfin/mach-bf537/boards/cm_bf537e.c | 2 +- arch/blackfin/mach-bf537/boards/cm_bf537u.c | 2 +- arch/blackfin/mach-bf537/boards/stamp.c | 2 +- arch/blackfin/mach-bf537/boards/tcm_bf537.c | 2 +- arch/blackfin/mach-bf561/boards/cm_bf561.c | 2 +- arch/blackfin/mach-bf561/smp.c | 2 +- 8 files changed, 8 insertions(+), 11 deletions(-) diff --git a/arch/blackfin/kernel/time-ts.c b/arch/blackfin/kernel/time-ts.c index 9e9b60d969dc..1bcf3a3c57d8 100644 --- a/arch/blackfin/kernel/time-ts.c +++ b/arch/blackfin/kernel/time-ts.c @@ -188,8 +188,7 @@ irqreturn_t bfin_gptmr0_interrupt(int irq, void *dev_id) static struct irqaction gptmr0_irq = { .name = "Blackfin GPTimer0", - .flags = IRQF_DISABLED | IRQF_TIMER | \ - IRQF_IRQPOLL | IRQF_PERCPU, + .flags = IRQF_TIMER | IRQF_IRQPOLL | IRQF_PERCPU, .handler = bfin_gptmr0_interrupt, }; @@ -297,8 +296,7 @@ irqreturn_t bfin_coretmr_interrupt(int irq, void *dev_id) static struct irqaction coretmr_irq = { .name = "Blackfin CoreTimer", - .flags = IRQF_DISABLED | IRQF_TIMER | \ - IRQF_IRQPOLL | IRQF_PERCPU, + .flags = IRQF_TIMER | IRQF_IRQPOLL | IRQF_PERCPU, .handler = bfin_coretmr_interrupt, }; diff --git a/arch/blackfin/kernel/time.c b/arch/blackfin/kernel/time.c index ceb2bf63dfe2..2310b249675f 100644 --- a/arch/blackfin/kernel/time.c +++ b/arch/blackfin/kernel/time.c @@ -25,7 +25,6 @@ static struct irqaction bfin_timer_irq = { .name = "Blackfin Timer Tick", - .flags = IRQF_DISABLED }; #if defined(CONFIG_IPIPE) diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537e.c b/arch/blackfin/mach-bf537/boards/cm_bf537e.c index 44fd8409db10..9fb20d6d8f91 100644 --- a/arch/blackfin/mach-bf537/boards/cm_bf537e.c +++ b/arch/blackfin/mach-bf537/boards/cm_bf537e.c @@ -605,7 +605,7 @@ static struct platform_device bfin_mac_device = { static struct pata_platform_info bfin_pata_platform_data = { .ioport_shift = 2, - .irq_type = IRQF_TRIGGER_HIGH | IRQF_DISABLED, + .irq_type = IRQF_TRIGGER_HIGH, }; static struct resource bfin_pata_resources[] = { diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537u.c b/arch/blackfin/mach-bf537/boards/cm_bf537u.c index 1b4ac5c64aae..5ba389fc61ae 100644 --- a/arch/blackfin/mach-bf537/boards/cm_bf537u.c +++ b/arch/blackfin/mach-bf537/boards/cm_bf537u.c @@ -570,7 +570,7 @@ static struct platform_device bfin_mac_device = { static struct pata_platform_info bfin_pata_platform_data = { .ioport_shift = 2, - .irq_type = IRQF_TRIGGER_HIGH | IRQF_DISABLED, + .irq_type = IRQF_TRIGGER_HIGH, }; static struct resource bfin_pata_resources[] = { diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c index 00a51ce0f0c2..6c916a67ef68 100644 --- a/arch/blackfin/mach-bf537/boards/stamp.c +++ b/arch/blackfin/mach-bf537/boards/stamp.c @@ -2365,7 +2365,7 @@ static struct platform_device bfin_sport1_uart_device = { #define PATA_INT IRQ_PF5 static struct pata_platform_info bfin_pata_platform_data = { .ioport_shift = 1, - .irq_flags = IRQF_TRIGGER_HIGH | IRQF_DISABLED, + .irq_flags = IRQF_TRIGGER_HIGH, }; static struct resource bfin_pata_resources[] = { diff --git a/arch/blackfin/mach-bf537/boards/tcm_bf537.c b/arch/blackfin/mach-bf537/boards/tcm_bf537.c index 9b7287abdfa1..2da0316d890e 100644 --- a/arch/blackfin/mach-bf537/boards/tcm_bf537.c +++ b/arch/blackfin/mach-bf537/boards/tcm_bf537.c @@ -572,7 +572,7 @@ static struct platform_device bfin_mac_device = { static struct pata_platform_info bfin_pata_platform_data = { .ioport_shift = 2, - .irq_type = IRQF_TRIGGER_HIGH | IRQF_DISABLED, + .irq_type = IRQF_TRIGGER_HIGH, }; static struct resource bfin_pata_resources[] = { diff --git a/arch/blackfin/mach-bf561/boards/cm_bf561.c b/arch/blackfin/mach-bf561/boards/cm_bf561.c index e4f397d1d65b..c1b72f2d6354 100644 --- a/arch/blackfin/mach-bf561/boards/cm_bf561.c +++ b/arch/blackfin/mach-bf561/boards/cm_bf561.c @@ -348,7 +348,7 @@ static struct platform_device bfin_sir0_device = { static struct pata_platform_info bfin_pata_platform_data = { .ioport_shift = 2, - .irq_type = IRQF_TRIGGER_HIGH | IRQF_DISABLED, + .irq_type = IRQF_TRIGGER_HIGH, }; static struct resource bfin_pata_resources[] = { diff --git a/arch/blackfin/mach-bf561/smp.c b/arch/blackfin/mach-bf561/smp.c index 85abd8be1343..db22401e7605 100644 --- a/arch/blackfin/mach-bf561/smp.c +++ b/arch/blackfin/mach-bf561/smp.c @@ -114,7 +114,7 @@ void __init platform_request_ipi(int irq, void *handler) int ret; const char *name = (irq == IRQ_SUPPLE_0) ? supple0 : supple1; - ret = request_irq(irq, handler, IRQF_DISABLED | IRQF_PERCPU, name, handler); + ret = request_irq(irq, handler, IRQF_PERCPU, name, handler); if (ret) panic("Cannot request %s for IPI service", name); }