Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin: Blackfin: irq: remove IRQF_DISABLED Blackfin: boards: clean up i2c_board_info Blackfin: drop unused Kconfig symbol Blackfin: bf537-stamp: register ASoC EVAL-ADAU1373 board driver Blackfin: bf537-stamp: Register adav801 codec and ASoC machine driver Blackfin: bf537-stamp: register adau1701 codec and asoc machine driver Blackfin: merge asm/mutex.h into kbuild too Blackfin: bf537-stamp: fix ad73311 codec config macro Blackfin: bf537-stamp: fix ad1836 name Blackfin: kgdb_test: rework code to avoid -O0 usage Blackfin: fix sparse warnings in copy_to/from_user Blackfin: bf548-ezkit: update defconfig Blackfin: SMP: fix scheduling deadlock Blackfin: H8606: fixup bogus ioresource init Blackfin: SMP: convert to common asm-generic/atomic.h
This commit is contained in:
commit
3b3dd79d6a
18 changed files with 85 additions and 164 deletions
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 <asm-generic/atomic.h>
|
||||
#else
|
||||
#ifdef CONFIG_SMP
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm/system.h> /* 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 <linux/linkage.h>
|
||||
|
||||
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 <asm-generic/atomic.h>
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
#include <asm-generic/mutex-dec.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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
|
||||
static struct irqaction bfin_timer_irq = {
|
||||
.name = "Blackfin Timer Tick",
|
||||
.flags = IRQF_DISABLED
|
||||
};
|
||||
|
||||
#if defined(CONFIG_IPIPE)
|
||||
|
|
|
@ -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),
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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,
|
||||
|
@ -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),
|
||||
},
|
||||
|
@ -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
|
||||
|
||||
|
@ -2275,6 +2247,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),
|
||||
|
@ -2388,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[] = {
|
||||
|
@ -2540,13 +2517,21 @@ 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,
|
||||
};
|
||||
#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",
|
||||
|
@ -2661,6 +2646,20 @@ 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 = {
|
||||
.name = "bfin-eval-adau1701",
|
||||
};
|
||||
#endif
|
||||
|
||||
static struct platform_device *stamp_devices[] __initdata = {
|
||||
|
||||
&bfin_dpmc,
|
||||
|
@ -2782,7 +2781,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
|
||||
|
||||
|
@ -2821,6 +2820,21 @@ static struct platform_device *stamp_devices[] __initdata = {
|
|||
defined(CONFIG_IIO_GPIO_TRIGGER_MODULE)
|
||||
&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,
|
||||
#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)
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue