Merge tag 'for-3.8-at91_header_clean' of git://github.com/at91linux/linux-at91 into next/headers
From Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>: arm: at91: mach header cleanup This first patch serie start the cleanup of the header in mach by moving all the platform data to include/linux/platform_data and move the board header and drivers header next to them * tag 'for-3.8-at91_header_clean' of git://github.com/at91linux/linux-at91: arm: at91: move at91rm9200 rtc header in drivers/rtc arm: at91: move reset controller header to arm/arm/mach-at91 arm: at91: move pit define to the driver arm: at91: move at91_shdwc.h to arch/arm/mach-at91 arm: at91: move board header to arch/arm/mach-at91 arn: at91: move at91_tc.h to arch/arm/mach-at91 arm: at91 move at91_aic.h to arch/arm/mach-at91 arm: at91 move board.h to arch/arm/mach-at91 arm: at91: move platfarm_data to include/linux/platform_data/atmel.h arm: at91: drop machine defconfig Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Cc: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -61,7 +61,7 @@ int __dynamic_netdev_dbg(struct _ddebug *descriptor,
|
||||
const char *fmt, ...);
|
||||
|
||||
#define DEFINE_DYNAMIC_DEBUG_METADATA(name, fmt) \
|
||||
static struct _ddebug __used __aligned(8) \
|
||||
static struct _ddebug __aligned(8) \
|
||||
__attribute__((section("__verbose"))) name = { \
|
||||
.modname = KBUILD_MODNAME, \
|
||||
.function = __func__, \
|
||||
|
@@ -68,7 +68,7 @@ enum extcon_cable_name {
|
||||
EXTCON_VIDEO_OUT,
|
||||
EXTCON_MECHANICAL,
|
||||
};
|
||||
extern const char *extcon_cable_name[];
|
||||
extern const char extcon_cable_name[][CABLE_NAME_MAX + 1];
|
||||
|
||||
struct extcon_cable;
|
||||
|
||||
|
@@ -618,4 +618,20 @@ static inline struct dentry *iio_get_debugfs_dentry(struct iio_dev *indio_dev)
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* IIO_DEGREE_TO_RAD() - Convert degree to rad
|
||||
* @deg: A value in degree
|
||||
*
|
||||
* Returns the given value converted from degree to rad
|
||||
*/
|
||||
#define IIO_DEGREE_TO_RAD(deg) (((deg) * 314159ULL + 9000000ULL) / 18000000ULL)
|
||||
|
||||
/**
|
||||
* IIO_G_TO_M_S_2() - Convert g to meter / second**2
|
||||
* @g: A value in g
|
||||
*
|
||||
* Returns the given value converted from g to meter / second**2
|
||||
*/
|
||||
#define IIO_G_TO_M_S_2(g) ((g) * 980665ULL / 100000ULL)
|
||||
|
||||
#endif /* _INDUSTRIAL_IO_H_ */
|
||||
|
@@ -57,6 +57,7 @@ int memblock_add(phys_addr_t base, phys_addr_t size);
|
||||
int memblock_remove(phys_addr_t base, phys_addr_t size);
|
||||
int memblock_free(phys_addr_t base, phys_addr_t size);
|
||||
int memblock_reserve(phys_addr_t base, phys_addr_t size);
|
||||
void memblock_trim_memory(phys_addr_t align);
|
||||
|
||||
#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
|
||||
void __next_mem_pfn_range(int *idx, int nid, unsigned long *out_start_pfn,
|
||||
|
@@ -30,7 +30,20 @@
|
||||
#ifndef __LINUX_MFD_MAX77693_H
|
||||
#define __LINUX_MFD_MAX77693_H
|
||||
|
||||
struct max77693_reg_data {
|
||||
u8 addr;
|
||||
u8 data;
|
||||
};
|
||||
|
||||
struct max77693_muic_platform_data {
|
||||
struct max77693_reg_data *init_data;
|
||||
int num_init_data;
|
||||
};
|
||||
|
||||
struct max77693_platform_data {
|
||||
int wakeup;
|
||||
|
||||
/* muic data */
|
||||
struct max77693_muic_platform_data *muic_data;
|
||||
};
|
||||
#endif /* __LINUX_MFD_MAX77693_H */
|
||||
|
@@ -12,34 +12,27 @@ struct percpu_rw_semaphore {
|
||||
struct mutex mtx;
|
||||
};
|
||||
|
||||
#define light_mb() barrier()
|
||||
#define heavy_mb() synchronize_sched()
|
||||
|
||||
static inline void percpu_down_read(struct percpu_rw_semaphore *p)
|
||||
{
|
||||
rcu_read_lock();
|
||||
rcu_read_lock_sched();
|
||||
if (unlikely(p->locked)) {
|
||||
rcu_read_unlock();
|
||||
rcu_read_unlock_sched();
|
||||
mutex_lock(&p->mtx);
|
||||
this_cpu_inc(*p->counters);
|
||||
mutex_unlock(&p->mtx);
|
||||
return;
|
||||
}
|
||||
this_cpu_inc(*p->counters);
|
||||
rcu_read_unlock();
|
||||
rcu_read_unlock_sched();
|
||||
light_mb(); /* A, between read of p->locked and read of data, paired with D */
|
||||
}
|
||||
|
||||
static inline void percpu_up_read(struct percpu_rw_semaphore *p)
|
||||
{
|
||||
/*
|
||||
* On X86, write operation in this_cpu_dec serves as a memory unlock
|
||||
* barrier (i.e. memory accesses may be moved before the write, but
|
||||
* no memory accesses are moved past the write).
|
||||
* On other architectures this may not be the case, so we need smp_mb()
|
||||
* there.
|
||||
*/
|
||||
#if defined(CONFIG_X86) && (!defined(CONFIG_X86_PPRO_FENCE) && !defined(CONFIG_X86_OOSTORE))
|
||||
barrier();
|
||||
#else
|
||||
smp_mb();
|
||||
#endif
|
||||
light_mb(); /* B, between read of the data and write to p->counter, paired with C */
|
||||
this_cpu_dec(*p->counters);
|
||||
}
|
||||
|
||||
@@ -58,14 +51,15 @@ static inline void percpu_down_write(struct percpu_rw_semaphore *p)
|
||||
{
|
||||
mutex_lock(&p->mtx);
|
||||
p->locked = true;
|
||||
synchronize_rcu();
|
||||
synchronize_sched(); /* make sure that all readers exit the rcu_read_lock_sched region */
|
||||
while (__percpu_count(p->counters))
|
||||
msleep(1);
|
||||
smp_rmb(); /* paired with smp_mb() in percpu_sem_up_read() */
|
||||
heavy_mb(); /* C, between read of p->counter and write to data, paired with B */
|
||||
}
|
||||
|
||||
static inline void percpu_up_write(struct percpu_rw_semaphore *p)
|
||||
{
|
||||
heavy_mb(); /* D, between write to data and write to p->locked, paired with A */
|
||||
p->locked = false;
|
||||
mutex_unlock(&p->mtx);
|
||||
}
|
||||
|
@@ -803,12 +803,16 @@ static inline void perf_event_task_tick(void) { }
|
||||
do { \
|
||||
static struct notifier_block fn##_nb __cpuinitdata = \
|
||||
{ .notifier_call = fn, .priority = CPU_PRI_PERF }; \
|
||||
unsigned long cpu = smp_processor_id(); \
|
||||
unsigned long flags; \
|
||||
fn(&fn##_nb, (unsigned long)CPU_UP_PREPARE, \
|
||||
(void *)(unsigned long)smp_processor_id()); \
|
||||
(void *)(unsigned long)cpu); \
|
||||
local_irq_save(flags); \
|
||||
fn(&fn##_nb, (unsigned long)CPU_STARTING, \
|
||||
(void *)(unsigned long)smp_processor_id()); \
|
||||
(void *)(unsigned long)cpu); \
|
||||
local_irq_restore(flags); \
|
||||
fn(&fn##_nb, (unsigned long)CPU_ONLINE, \
|
||||
(void *)(unsigned long)smp_processor_id()); \
|
||||
(void *)(unsigned long)cpu); \
|
||||
register_cpu_notifier(&fn##_nb); \
|
||||
} while (0)
|
||||
|
||||
|
@@ -8,6 +8,49 @@
|
||||
#define __ATMEL_H__
|
||||
|
||||
#include <linux/mtd/nand.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/usb/atmel_usba_udc.h>
|
||||
#include <linux/atmel-mci.h>
|
||||
#include <sound/atmel-ac97c.h>
|
||||
#include <linux/serial.h>
|
||||
#include <linux/platform_data/macb.h>
|
||||
|
||||
/* USB Device */
|
||||
struct at91_udc_data {
|
||||
int vbus_pin; /* high == host powering us */
|
||||
u8 vbus_active_low; /* vbus polarity */
|
||||
u8 vbus_polled; /* Use polling, not interrupt */
|
||||
int pullup_pin; /* active == D+ pulled up */
|
||||
u8 pullup_active_low; /* true == pullup_pin is active low */
|
||||
};
|
||||
|
||||
/* Compact Flash */
|
||||
struct at91_cf_data {
|
||||
int irq_pin; /* I/O IRQ */
|
||||
int det_pin; /* Card detect */
|
||||
int vcc_pin; /* power switching */
|
||||
int rst_pin; /* card reset */
|
||||
u8 chipselect; /* EBI Chip Select number */
|
||||
u8 flags;
|
||||
#define AT91_CF_TRUE_IDE 0x01
|
||||
#define AT91_IDE_SWAP_A0_A2 0x02
|
||||
};
|
||||
|
||||
/* USB Host */
|
||||
#define AT91_MAX_USBH_PORTS 3
|
||||
struct at91_usbh_data {
|
||||
int vbus_pin[AT91_MAX_USBH_PORTS]; /* port power-control pin */
|
||||
int overcurrent_pin[AT91_MAX_USBH_PORTS];
|
||||
u8 ports; /* number of ports on root hub */
|
||||
u8 overcurrent_supported;
|
||||
u8 vbus_pin_active_low[AT91_MAX_USBH_PORTS];
|
||||
u8 overcurrent_status[AT91_MAX_USBH_PORTS];
|
||||
u8 overcurrent_changed[AT91_MAX_USBH_PORTS];
|
||||
};
|
||||
|
||||
/* NAND / SmartMedia */
|
||||
struct atmel_nand_data {
|
||||
@@ -24,4 +67,28 @@ struct atmel_nand_data {
|
||||
unsigned int num_parts;
|
||||
};
|
||||
|
||||
/* Serial */
|
||||
struct atmel_uart_data {
|
||||
int num; /* port num */
|
||||
short use_dma_tx; /* use transmit DMA? */
|
||||
short use_dma_rx; /* use receive DMA? */
|
||||
void __iomem *regs; /* virt. base address, if any */
|
||||
struct serial_rs485 rs485; /* rs485 settings */
|
||||
};
|
||||
|
||||
/* Touchscreen Controller */
|
||||
struct at91_tsadcc_data {
|
||||
unsigned int adc_clock;
|
||||
u8 pendet_debounce;
|
||||
u8 ts_sample_hold_time;
|
||||
};
|
||||
|
||||
/* CAN */
|
||||
struct at91_can_data {
|
||||
void (*transceiver_switch)(int on);
|
||||
};
|
||||
|
||||
/* FIXME: this needs a better location, but gets stuff building again */
|
||||
extern int at91_suspend_entering_slow_clock(void);
|
||||
|
||||
#endif /* __ATMEL_H__ */
|
||||
|
@@ -24,6 +24,7 @@
|
||||
#ifndef _LINUX_RBTREE_AUGMENTED_H
|
||||
#define _LINUX_RBTREE_AUGMENTED_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/rbtree.h>
|
||||
|
||||
/*
|
||||
|
@@ -3,8 +3,6 @@
|
||||
*
|
||||
* Copyright (C) 2009-2010 Nokia Corporation
|
||||
*
|
||||
* Contact: Aaro Koskinen <aaro.koskinen@nokia.com>
|
||||
*
|
||||
* 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
|
||||
|
@@ -191,7 +191,8 @@ struct tcp_sock {
|
||||
u8 do_early_retrans:1,/* Enable RFC5827 early-retransmit */
|
||||
early_retrans_delayed:1, /* Delayed ER timer installed */
|
||||
syn_data:1, /* SYN includes data */
|
||||
syn_fastopen:1; /* SYN includes Fast Open option */
|
||||
syn_fastopen:1, /* SYN includes Fast Open option */
|
||||
syn_data_acked:1;/* data in SYN is acked by SYN-ACK */
|
||||
|
||||
/* RTT measurement */
|
||||
u32 srtt; /* smoothed round trip time << 3 */
|
||||
|
@@ -35,16 +35,6 @@ struct inode;
|
||||
# include <asm/uprobes.h>
|
||||
#endif
|
||||
|
||||
/* flags that denote/change uprobes behaviour */
|
||||
|
||||
/* Have a copy of original instruction */
|
||||
#define UPROBE_COPY_INSN 0x1
|
||||
|
||||
/* Dont run handlers when first register/ last unregister in progress*/
|
||||
#define UPROBE_RUN_HANDLER 0x2
|
||||
/* Can skip singlestep */
|
||||
#define UPROBE_SKIP_SSTEP 0x4
|
||||
|
||||
struct uprobe_consumer {
|
||||
int (*handler)(struct uprobe_consumer *self, struct pt_regs *regs);
|
||||
/*
|
||||
@@ -59,7 +49,6 @@ struct uprobe_consumer {
|
||||
#ifdef CONFIG_UPROBES
|
||||
enum uprobe_task_state {
|
||||
UTASK_RUNNING,
|
||||
UTASK_BP_HIT,
|
||||
UTASK_SSTEP,
|
||||
UTASK_SSTEP_ACK,
|
||||
UTASK_SSTEP_TRAPPED,
|
||||
|
Reference in New Issue
Block a user