Merge branch 'master' into for-linus
This commit is contained in:
@@ -31,6 +31,7 @@ static inline int gpio_is_valid(int number)
|
||||
struct device;
|
||||
struct seq_file;
|
||||
struct module;
|
||||
struct device_node;
|
||||
|
||||
/**
|
||||
* struct gpio_chip - abstract a GPIO controller
|
||||
@@ -106,6 +107,17 @@ struct gpio_chip {
|
||||
const char *const *names;
|
||||
unsigned can_sleep:1;
|
||||
unsigned exported:1;
|
||||
|
||||
#if defined(CONFIG_OF_GPIO)
|
||||
/*
|
||||
* If CONFIG_OF is enabled, then all GPIO controllers described in the
|
||||
* device tree automatically may have an OF translation
|
||||
*/
|
||||
struct device_node *of_node;
|
||||
int of_gpio_n_cells;
|
||||
int (*of_xlate)(struct gpio_chip *gc, struct device_node *np,
|
||||
const void *gpio_spec, u32 *flags);
|
||||
#endif
|
||||
};
|
||||
|
||||
extern const char *gpiochip_is_requested(struct gpio_chip *chip,
|
||||
@@ -115,6 +127,9 @@ extern int __must_check gpiochip_reserve(int start, int ngpio);
|
||||
/* add/remove chips */
|
||||
extern int gpiochip_add(struct gpio_chip *chip);
|
||||
extern int __must_check gpiochip_remove(struct gpio_chip *chip);
|
||||
extern struct gpio_chip *gpiochip_find(void *data,
|
||||
int (*match)(struct gpio_chip *chip,
|
||||
void *data));
|
||||
|
||||
|
||||
/* Always use the library code for GPIO management calls,
|
||||
|
||||
@@ -63,6 +63,12 @@
|
||||
/* Align . to a 8 byte boundary equals to maximum function alignment. */
|
||||
#define ALIGN_FUNCTION() . = ALIGN(8)
|
||||
|
||||
/*
|
||||
* Align to a 32 byte boundary equal to the
|
||||
* alignment gcc 4.5 uses for a struct
|
||||
*/
|
||||
#define STRUCT_ALIGN() . = ALIGN(32)
|
||||
|
||||
/* The actual configuration determine if the init/exit sections
|
||||
* are handled as text/data or they can be discarded (which
|
||||
* often happens at runtime)
|
||||
@@ -166,7 +172,11 @@
|
||||
LIKELY_PROFILE() \
|
||||
BRANCH_PROFILE() \
|
||||
TRACE_PRINTKS() \
|
||||
\
|
||||
STRUCT_ALIGN(); \
|
||||
FTRACE_EVENTS() \
|
||||
\
|
||||
STRUCT_ALIGN(); \
|
||||
TRACE_SYSCALLS()
|
||||
|
||||
/*
|
||||
@@ -435,7 +445,7 @@
|
||||
*/
|
||||
#define INIT_TASK_DATA_SECTION(align) \
|
||||
. = ALIGN(align); \
|
||||
.data..init_task : { \
|
||||
.data..init_task : AT(ADDR(.data..init_task) - LOAD_OFFSET) { \
|
||||
INIT_TASK_DATA(align) \
|
||||
}
|
||||
|
||||
@@ -643,6 +653,7 @@
|
||||
EXIT_DATA \
|
||||
EXIT_CALL \
|
||||
*(.discard) \
|
||||
*(.discard.*) \
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user