Merge branches 'amba', 'devel-stable', 'fixes', 'mach-types', 'mmci', 'pci' and 'versatile' into for-linus
This commit is contained in:
@@ -554,7 +554,18 @@ extern int __init efi_setup_pcdp_console(char *);
|
||||
#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001
|
||||
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
|
||||
#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004
|
||||
#define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x0000000000000008
|
||||
#define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x0000000000000010
|
||||
#define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x0000000000000020
|
||||
#define EFI_VARIABLE_APPEND_WRITE 0x0000000000000040
|
||||
|
||||
#define EFI_VARIABLE_MASK (EFI_VARIABLE_NON_VOLATILE | \
|
||||
EFI_VARIABLE_BOOTSERVICE_ACCESS | \
|
||||
EFI_VARIABLE_RUNTIME_ACCESS | \
|
||||
EFI_VARIABLE_HARDWARE_ERROR_RECORD | \
|
||||
EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS | \
|
||||
EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS | \
|
||||
EFI_VARIABLE_APPEND_WRITE)
|
||||
/*
|
||||
* The type of search to perform when calling boottime->locate_handle
|
||||
*/
|
||||
|
@@ -593,7 +593,7 @@ struct fuse_dirent {
|
||||
__u64 off;
|
||||
__u32 namelen;
|
||||
__u32 type;
|
||||
char name[0];
|
||||
char name[];
|
||||
};
|
||||
|
||||
#define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
|
||||
|
@@ -13,4 +13,8 @@ extern int pxa_last_gpio;
|
||||
|
||||
extern int pxa_irq_to_gpio(int irq);
|
||||
|
||||
struct pxa_gpio_platform_data {
|
||||
int (*gpio_set_wake)(unsigned int gpio, unsigned int on);
|
||||
};
|
||||
|
||||
#endif /* __GPIO_PXA_H */
|
||||
|
@@ -26,9 +26,9 @@
|
||||
#include <linux/device.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/scatterlist.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/notifier.h>
|
||||
|
||||
/* HSI message ttype */
|
||||
#define HSI_MSG_READ 0
|
||||
@@ -121,18 +121,18 @@ static inline int hsi_register_board_info(struct hsi_board_info const *info,
|
||||
* @device: Driver model representation of the device
|
||||
* @tx_cfg: HSI TX configuration
|
||||
* @rx_cfg: HSI RX configuration
|
||||
* @hsi_start_rx: Called after incoming wake line goes high
|
||||
* @hsi_stop_rx: Called after incoming wake line goes low
|
||||
* @e_handler: Callback for handling port events (RX Wake High/Low)
|
||||
* @pclaimed: Keeps tracks if the clients claimed its associated HSI port
|
||||
* @nb: Notifier block for port events
|
||||
*/
|
||||
struct hsi_client {
|
||||
struct device device;
|
||||
struct hsi_config tx_cfg;
|
||||
struct hsi_config rx_cfg;
|
||||
void (*hsi_start_rx)(struct hsi_client *cl);
|
||||
void (*hsi_stop_rx)(struct hsi_client *cl);
|
||||
/* private: */
|
||||
void (*ehandler)(struct hsi_client *, unsigned long);
|
||||
unsigned int pclaimed:1;
|
||||
struct list_head link;
|
||||
struct notifier_block nb;
|
||||
};
|
||||
|
||||
#define to_hsi_client(dev) container_of(dev, struct hsi_client, device)
|
||||
@@ -147,6 +147,10 @@ static inline void *hsi_client_drvdata(struct hsi_client *cl)
|
||||
return dev_get_drvdata(&cl->device);
|
||||
}
|
||||
|
||||
int hsi_register_port_event(struct hsi_client *cl,
|
||||
void (*handler)(struct hsi_client *, unsigned long));
|
||||
int hsi_unregister_port_event(struct hsi_client *cl);
|
||||
|
||||
/**
|
||||
* struct hsi_client_driver - Driver associated to an HSI client
|
||||
* @driver: Driver model representation of the driver
|
||||
@@ -214,8 +218,7 @@ void hsi_free_msg(struct hsi_msg *msg);
|
||||
* @start_tx: Callback to inform that a client wants to TX data
|
||||
* @stop_tx: Callback to inform that a client no longer wishes to TX data
|
||||
* @release: Callback to inform that a client no longer uses the port
|
||||
* @clients: List of hsi_clients using the port.
|
||||
* @clock: Lock to serialize access to the clients list.
|
||||
* @n_head: Notifier chain for signaling port events to the clients.
|
||||
*/
|
||||
struct hsi_port {
|
||||
struct device device;
|
||||
@@ -231,14 +234,14 @@ struct hsi_port {
|
||||
int (*start_tx)(struct hsi_client *cl);
|
||||
int (*stop_tx)(struct hsi_client *cl);
|
||||
int (*release)(struct hsi_client *cl);
|
||||
struct list_head clients;
|
||||
spinlock_t clock;
|
||||
/* private */
|
||||
struct atomic_notifier_head n_head;
|
||||
};
|
||||
|
||||
#define to_hsi_port(dev) container_of(dev, struct hsi_port, device)
|
||||
#define hsi_get_port(cl) to_hsi_port((cl)->device.parent)
|
||||
|
||||
void hsi_event(struct hsi_port *port, unsigned int event);
|
||||
int hsi_event(struct hsi_port *port, unsigned long event);
|
||||
int hsi_claim_port(struct hsi_client *cl, unsigned int share);
|
||||
void hsi_release_port(struct hsi_client *cl);
|
||||
|
||||
@@ -270,13 +273,13 @@ struct hsi_controller {
|
||||
struct module *owner;
|
||||
unsigned int id;
|
||||
unsigned int num_ports;
|
||||
struct hsi_port *port;
|
||||
struct hsi_port **port;
|
||||
};
|
||||
|
||||
#define to_hsi_controller(dev) container_of(dev, struct hsi_controller, device)
|
||||
|
||||
struct hsi_controller *hsi_alloc_controller(unsigned int n_ports, gfp_t flags);
|
||||
void hsi_free_controller(struct hsi_controller *hsi);
|
||||
void hsi_put_controller(struct hsi_controller *hsi);
|
||||
int hsi_register_controller(struct hsi_controller *hsi);
|
||||
void hsi_unregister_controller(struct hsi_controller *hsi);
|
||||
|
||||
@@ -294,7 +297,7 @@ static inline void *hsi_controller_drvdata(struct hsi_controller *hsi)
|
||||
static inline struct hsi_port *hsi_find_port_num(struct hsi_controller *hsi,
|
||||
unsigned int num)
|
||||
{
|
||||
return (num < hsi->num_ports) ? &hsi->port[num] : NULL;
|
||||
return (num < hsi->num_ports) ? hsi->port[num] : NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -666,23 +666,11 @@ struct twl4030_codec_data {
|
||||
unsigned int check_defaults:1;
|
||||
unsigned int reset_registers:1;
|
||||
unsigned int hs_extmute:1;
|
||||
u16 hs_left_step;
|
||||
u16 hs_right_step;
|
||||
u16 hf_left_step;
|
||||
u16 hf_right_step;
|
||||
void (*set_hs_extmute)(int mute);
|
||||
};
|
||||
|
||||
struct twl4030_vibra_data {
|
||||
unsigned int coexist;
|
||||
|
||||
/* twl6040 */
|
||||
unsigned int vibldrv_res; /* left driver resistance */
|
||||
unsigned int vibrdrv_res; /* right driver resistance */
|
||||
unsigned int viblmotor_res; /* left motor resistance */
|
||||
unsigned int vibrmotor_res; /* right motor resistance */
|
||||
int vddvibl_uV; /* VDDVIBL volt, set 0 for fixed reg */
|
||||
int vddvibr_uV; /* VDDVIBR volt, set 0 for fixed reg */
|
||||
};
|
||||
|
||||
struct twl4030_audio_data {
|
||||
|
@@ -49,6 +49,12 @@ typedef void (*irq_preflow_handler_t)(struct irq_data *data);
|
||||
* IRQ_TYPE_LEVEL_LOW - low level triggered
|
||||
* IRQ_TYPE_LEVEL_MASK - Mask to filter out the level bits
|
||||
* IRQ_TYPE_SENSE_MASK - Mask for all the above bits
|
||||
* IRQ_TYPE_DEFAULT - For use by some PICs to ask irq_set_type
|
||||
* to setup the HW to a sane default (used
|
||||
* by irqdomain map() callbacks to synchronize
|
||||
* the HW state and SW flags for a newly
|
||||
* allocated descriptor).
|
||||
*
|
||||
* IRQ_TYPE_PROBE - Special flag for probing in progress
|
||||
*
|
||||
* Bits which can be modified via irq_set/clear/modify_status_flags()
|
||||
@@ -77,6 +83,7 @@ enum {
|
||||
IRQ_TYPE_LEVEL_LOW = 0x00000008,
|
||||
IRQ_TYPE_LEVEL_MASK = (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH),
|
||||
IRQ_TYPE_SENSE_MASK = 0x0000000f,
|
||||
IRQ_TYPE_DEFAULT = IRQ_TYPE_SENSE_MASK,
|
||||
|
||||
IRQ_TYPE_PROBE = 0x00000010,
|
||||
|
||||
|
@@ -596,6 +596,7 @@ void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id);
|
||||
|
||||
#ifdef CONFIG_IOMMU_API
|
||||
int kvm_iommu_map_pages(struct kvm *kvm, struct kvm_memory_slot *slot);
|
||||
void kvm_iommu_unmap_pages(struct kvm *kvm, struct kvm_memory_slot *slot);
|
||||
int kvm_iommu_map_guest(struct kvm *kvm);
|
||||
int kvm_iommu_unmap_guest(struct kvm *kvm);
|
||||
int kvm_assign_device(struct kvm *kvm,
|
||||
@@ -609,6 +610,11 @@ static inline int kvm_iommu_map_pages(struct kvm *kvm,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void kvm_iommu_unmap_pages(struct kvm *kvm,
|
||||
struct kvm_memory_slot *slot)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int kvm_iommu_map_guest(struct kvm *kvm)
|
||||
{
|
||||
return -ENODEV;
|
||||
|
@@ -996,7 +996,8 @@ extern int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *dev,
|
||||
extern void ata_sas_port_destroy(struct ata_port *);
|
||||
extern struct ata_port *ata_sas_port_alloc(struct ata_host *,
|
||||
struct ata_port_info *, struct Scsi_Host *);
|
||||
extern int ata_sas_async_port_init(struct ata_port *);
|
||||
extern void ata_sas_async_probe(struct ata_port *ap);
|
||||
extern int ata_sas_sync_probe(struct ata_port *ap);
|
||||
extern int ata_sas_port_init(struct ata_port *);
|
||||
extern int ata_sas_port_start(struct ata_port *ap);
|
||||
extern void ata_sas_port_stop(struct ata_port *ap);
|
||||
|
@@ -8,70 +8,6 @@
|
||||
#ifndef __MFD_DB5500_PRCMU_H
|
||||
#define __MFD_DB5500_PRCMU_H
|
||||
|
||||
#ifdef CONFIG_MFD_DB5500_PRCMU
|
||||
|
||||
void db5500_prcmu_early_init(void);
|
||||
int db5500_prcmu_set_epod(u16 epod_id, u8 epod_state);
|
||||
int db5500_prcmu_set_display_clocks(void);
|
||||
int db5500_prcmu_disable_dsipll(void);
|
||||
int db5500_prcmu_enable_dsipll(void);
|
||||
int db5500_prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size);
|
||||
int db5500_prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size);
|
||||
void db5500_prcmu_enable_wakeups(u32 wakeups);
|
||||
int db5500_prcmu_request_clock(u8 clock, bool enable);
|
||||
void db5500_prcmu_config_abb_event_readout(u32 abb_events);
|
||||
void db5500_prcmu_get_abb_event_buffer(void __iomem **buf);
|
||||
int prcmu_resetout(u8 resoutn, u8 state);
|
||||
int db5500_prcmu_set_power_state(u8 state, bool keep_ulp_clk,
|
||||
bool keep_ap_pll);
|
||||
int db5500_prcmu_config_esram0_deep_sleep(u8 state);
|
||||
void db5500_prcmu_system_reset(u16 reset_code);
|
||||
u16 db5500_prcmu_get_reset_code(void);
|
||||
bool db5500_prcmu_is_ac_wake_requested(void);
|
||||
int db5500_prcmu_set_arm_opp(u8 opp);
|
||||
int db5500_prcmu_get_arm_opp(void);
|
||||
|
||||
#else /* !CONFIG_UX500_SOC_DB5500 */
|
||||
|
||||
static inline void db5500_prcmu_early_init(void) {}
|
||||
|
||||
static inline int db5500_prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int db5500_prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int db5500_prcmu_request_clock(u8 clock, bool enable)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int db5500_prcmu_set_display_clocks(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int db5500_prcmu_disable_dsipll(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int db5500_prcmu_enable_dsipll(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int db5500_prcmu_config_esram0_deep_sleep(u8 state)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void db5500_prcmu_enable_wakeups(u32 wakeups) {}
|
||||
|
||||
static inline int prcmu_resetout(u8 resoutn, u8 state)
|
||||
{
|
||||
return 0;
|
||||
@@ -82,8 +18,10 @@ static inline int db5500_prcmu_set_epod(u16 epod_id, u8 epod_state)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void db5500_prcmu_get_abb_event_buffer(void __iomem **buf) {}
|
||||
static inline void db5500_prcmu_config_abb_event_readout(u32 abb_events) {}
|
||||
static inline int db5500_prcmu_request_clock(u8 clock, bool enable)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int db5500_prcmu_set_power_state(u8 state, bool keep_ulp_clk,
|
||||
bool keep_ap_pll)
|
||||
@@ -91,7 +29,10 @@ static inline int db5500_prcmu_set_power_state(u8 state, bool keep_ulp_clk,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void db5500_prcmu_system_reset(u16 reset_code) {}
|
||||
static inline int db5500_prcmu_config_esram0_deep_sleep(u8 state)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline u16 db5500_prcmu_get_reset_code(void)
|
||||
{
|
||||
@@ -113,6 +54,51 @@ static inline int db5500_prcmu_get_arm_opp(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void db5500_prcmu_config_abb_event_readout(u32 abb_events) {}
|
||||
|
||||
static inline void db5500_prcmu_get_abb_event_buffer(void __iomem **buf) {}
|
||||
|
||||
static inline void db5500_prcmu_system_reset(u16 reset_code) {}
|
||||
|
||||
static inline void db5500_prcmu_enable_wakeups(u32 wakeups) {}
|
||||
|
||||
#ifdef CONFIG_MFD_DB5500_PRCMU
|
||||
|
||||
void db5500_prcmu_early_init(void);
|
||||
int db5500_prcmu_set_display_clocks(void);
|
||||
int db5500_prcmu_disable_dsipll(void);
|
||||
int db5500_prcmu_enable_dsipll(void);
|
||||
int db5500_prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size);
|
||||
int db5500_prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size);
|
||||
|
||||
#else /* !CONFIG_UX500_SOC_DB5500 */
|
||||
|
||||
static inline void db5500_prcmu_early_init(void) {}
|
||||
|
||||
static inline int db5500_prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int db5500_prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int db5500_prcmu_set_display_clocks(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int db5500_prcmu_disable_dsipll(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int db5500_prcmu_enable_dsipll(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_MFD_DB5500_PRCMU */
|
||||
|
||||
|
@@ -26,6 +26,7 @@
|
||||
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#define RC5T583_MAX_REGS 0xF8
|
||||
|
||||
@@ -279,14 +280,44 @@ struct rc5t583_platform_data {
|
||||
bool enable_shutdown;
|
||||
};
|
||||
|
||||
int rc5t583_write(struct device *dev, u8 reg, uint8_t val);
|
||||
int rc5t583_read(struct device *dev, uint8_t reg, uint8_t *val);
|
||||
int rc5t583_set_bits(struct device *dev, unsigned int reg,
|
||||
unsigned int bit_mask);
|
||||
int rc5t583_clear_bits(struct device *dev, unsigned int reg,
|
||||
unsigned int bit_mask);
|
||||
int rc5t583_update(struct device *dev, unsigned int reg,
|
||||
unsigned int val, unsigned int mask);
|
||||
static inline int rc5t583_write(struct device *dev, uint8_t reg, uint8_t val)
|
||||
{
|
||||
struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
|
||||
return regmap_write(rc5t583->regmap, reg, val);
|
||||
}
|
||||
|
||||
static inline int rc5t583_read(struct device *dev, uint8_t reg, uint8_t *val)
|
||||
{
|
||||
struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
|
||||
unsigned int ival;
|
||||
int ret;
|
||||
ret = regmap_read(rc5t583->regmap, reg, &ival);
|
||||
if (!ret)
|
||||
*val = (uint8_t)ival;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline int rc5t583_set_bits(struct device *dev, unsigned int reg,
|
||||
unsigned int bit_mask)
|
||||
{
|
||||
struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
|
||||
return regmap_update_bits(rc5t583->regmap, reg, bit_mask, bit_mask);
|
||||
}
|
||||
|
||||
static inline int rc5t583_clear_bits(struct device *dev, unsigned int reg,
|
||||
unsigned int bit_mask)
|
||||
{
|
||||
struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
|
||||
return regmap_update_bits(rc5t583->regmap, reg, bit_mask, 0);
|
||||
}
|
||||
|
||||
static inline int rc5t583_update(struct device *dev, unsigned int reg,
|
||||
unsigned int val, unsigned int mask)
|
||||
{
|
||||
struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
|
||||
return regmap_update_bits(rc5t583->regmap, reg, mask, val);
|
||||
}
|
||||
|
||||
int rc5t583_ext_power_req_config(struct device *dev, int deepsleep_id,
|
||||
int ext_pwr_req, int deepsleep_slot_nr);
|
||||
int rc5t583_irq_init(struct rc5t583 *rc5t583, int irq, int irq_base);
|
||||
|
@@ -174,8 +174,35 @@
|
||||
#define TWL6040_SYSCLK_SEL_LPPLL 0
|
||||
#define TWL6040_SYSCLK_SEL_HPPLL 1
|
||||
|
||||
struct twl6040_codec_data {
|
||||
u16 hs_left_step;
|
||||
u16 hs_right_step;
|
||||
u16 hf_left_step;
|
||||
u16 hf_right_step;
|
||||
};
|
||||
|
||||
struct twl6040_vibra_data {
|
||||
unsigned int vibldrv_res; /* left driver resistance */
|
||||
unsigned int vibrdrv_res; /* right driver resistance */
|
||||
unsigned int viblmotor_res; /* left motor resistance */
|
||||
unsigned int vibrmotor_res; /* right motor resistance */
|
||||
int vddvibl_uV; /* VDDVIBL volt, set 0 for fixed reg */
|
||||
int vddvibr_uV; /* VDDVIBR volt, set 0 for fixed reg */
|
||||
};
|
||||
|
||||
struct twl6040_platform_data {
|
||||
int audpwron_gpio; /* audio power-on gpio */
|
||||
unsigned int irq_base;
|
||||
|
||||
struct twl6040_codec_data *codec;
|
||||
struct twl6040_vibra_data *vibra;
|
||||
};
|
||||
|
||||
struct regmap;
|
||||
|
||||
struct twl6040 {
|
||||
struct device *dev;
|
||||
struct regmap *regmap;
|
||||
struct mutex mutex;
|
||||
struct mutex io_mutex;
|
||||
struct mutex irq_mutex;
|
||||
|
@@ -1393,29 +1393,20 @@ extern int install_special_mapping(struct mm_struct *mm,
|
||||
|
||||
extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
|
||||
|
||||
extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
|
||||
unsigned long len, unsigned long prot,
|
||||
unsigned long flag, unsigned long pgoff);
|
||||
extern unsigned long mmap_region(struct file *file, unsigned long addr,
|
||||
unsigned long len, unsigned long flags,
|
||||
vm_flags_t vm_flags, unsigned long pgoff);
|
||||
|
||||
static inline unsigned long do_mmap(struct file *file, unsigned long addr,
|
||||
unsigned long len, unsigned long prot,
|
||||
unsigned long flag, unsigned long offset)
|
||||
{
|
||||
unsigned long ret = -EINVAL;
|
||||
if ((offset + PAGE_ALIGN(len)) < offset)
|
||||
goto out;
|
||||
if (!(offset & ~PAGE_MASK))
|
||||
ret = do_mmap_pgoff(file, addr, len, prot, flag, offset >> PAGE_SHIFT);
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
extern unsigned long do_mmap(struct file *, unsigned long,
|
||||
unsigned long, unsigned long,
|
||||
unsigned long, unsigned long);
|
||||
extern int do_munmap(struct mm_struct *, unsigned long, size_t);
|
||||
|
||||
extern unsigned long do_brk(unsigned long, unsigned long);
|
||||
/* These take the mm semaphore themselves */
|
||||
extern unsigned long vm_brk(unsigned long, unsigned long);
|
||||
extern int vm_munmap(unsigned long, size_t);
|
||||
extern unsigned long vm_mmap(struct file *, unsigned long,
|
||||
unsigned long, unsigned long,
|
||||
unsigned long, unsigned long);
|
||||
|
||||
/* truncate.c */
|
||||
extern void truncate_inode_pages(struct address_space *, loff_t);
|
||||
|
@@ -481,7 +481,7 @@ struct mmc_driver {
|
||||
struct device_driver drv;
|
||||
int (*probe)(struct mmc_card *);
|
||||
void (*remove)(struct mmc_card *);
|
||||
int (*suspend)(struct mmc_card *, pm_message_t);
|
||||
int (*suspend)(struct mmc_card *);
|
||||
int (*resume)(struct mmc_card *);
|
||||
};
|
||||
|
||||
|
@@ -312,6 +312,11 @@ struct nfs4_layoutreturn {
|
||||
int rpc_status;
|
||||
};
|
||||
|
||||
struct stateowner_id {
|
||||
__u64 create_time;
|
||||
__u32 uniquifier;
|
||||
};
|
||||
|
||||
/*
|
||||
* Arguments to the open call.
|
||||
*/
|
||||
@@ -321,7 +326,7 @@ struct nfs_openargs {
|
||||
int open_flags;
|
||||
fmode_t fmode;
|
||||
__u64 clientid;
|
||||
__u64 id;
|
||||
struct stateowner_id id;
|
||||
union {
|
||||
struct {
|
||||
struct iattr * attrs; /* UNCHECKED, GUARDED */
|
||||
|
@@ -1,3 +1,4 @@
|
||||
header-y += cld.h
|
||||
header-y += debug.h
|
||||
header-y += export.h
|
||||
header-y += nfsfh.h
|
||||
|
@@ -12,6 +12,8 @@
|
||||
#ifndef __LINUX_PINCTRL_MACHINE_H
|
||||
#define __LINUX_PINCTRL_MACHINE_H
|
||||
|
||||
#include <linux/bug.h>
|
||||
|
||||
#include "pinctrl-state.h"
|
||||
|
||||
enum pinctrl_map_type {
|
||||
@@ -148,7 +150,7 @@ struct pinctrl_map {
|
||||
#define PIN_MAP_CONFIGS_GROUP_HOG_DEFAULT(dev, grp, cfgs) \
|
||||
PIN_MAP_CONFIGS_GROUP(dev, PINCTRL_STATE_DEFAULT, dev, grp, cfgs)
|
||||
|
||||
#ifdef CONFIG_PINMUX
|
||||
#ifdef CONFIG_PINCTRL
|
||||
|
||||
extern int pinctrl_register_mappings(struct pinctrl_map const *map,
|
||||
unsigned num_maps);
|
||||
|
@@ -6,6 +6,7 @@
|
||||
#define PIPE_BUF_FLAG_LRU 0x01 /* page is on the LRU */
|
||||
#define PIPE_BUF_FLAG_ATOMIC 0x02 /* was atomically mapped */
|
||||
#define PIPE_BUF_FLAG_GIFT 0x04 /* page is a gift */
|
||||
#define PIPE_BUF_FLAG_PACKET 0x08 /* read() as a packet */
|
||||
|
||||
/**
|
||||
* struct pipe_buffer - a linux kernel pipe buffer
|
||||
|
@@ -238,11 +238,12 @@ enum {
|
||||
/*
|
||||
* The callback notifies userspace to release buffers when skb DMA is done in
|
||||
* lower device, the skb last reference should be 0 when calling this.
|
||||
* The desc is used to track userspace buffer index.
|
||||
* The ctx field is used to track device context.
|
||||
* The desc field is used to track userspace buffer index.
|
||||
*/
|
||||
struct ubuf_info {
|
||||
void (*callback)(void *);
|
||||
void *arg;
|
||||
void (*callback)(struct ubuf_info *);
|
||||
void *ctx;
|
||||
unsigned long desc;
|
||||
};
|
||||
|
||||
|
@@ -254,7 +254,7 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv)
|
||||
* driver is finished with this message, it must call
|
||||
* spi_finalize_current_message() so the subsystem can issue the next
|
||||
* transfer
|
||||
* @prepare_transfer_hardware: there are currently no more messages on the
|
||||
* @unprepare_transfer_hardware: there are currently no more messages on the
|
||||
* queue so the subsystem notifies the driver that it may relax the
|
||||
* hardware by issuing this call
|
||||
*
|
||||
|
@@ -126,6 +126,8 @@ struct usb_hcd {
|
||||
unsigned wireless:1; /* Wireless USB HCD */
|
||||
unsigned authorized_default:1;
|
||||
unsigned has_tt:1; /* Integrated TT in root hub */
|
||||
unsigned broken_pci_sleep:1; /* Don't put the
|
||||
controller in PCI-D3 for system sleep */
|
||||
|
||||
unsigned int irq; /* irq allocated */
|
||||
void __iomem *regs; /* device memory/io */
|
||||
|
@@ -94,6 +94,7 @@ struct usb_phy {
|
||||
|
||||
struct usb_otg *otg;
|
||||
|
||||
struct device *io_dev;
|
||||
struct usb_phy_io_ops *io_ops;
|
||||
void __iomem *io_priv;
|
||||
|
||||
|
@@ -26,13 +26,14 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
|
||||
PGFREE, PGACTIVATE, PGDEACTIVATE,
|
||||
PGFAULT, PGMAJFAULT,
|
||||
FOR_ALL_ZONES(PGREFILL),
|
||||
FOR_ALL_ZONES(PGSTEAL),
|
||||
FOR_ALL_ZONES(PGSTEAL_KSWAPD),
|
||||
FOR_ALL_ZONES(PGSTEAL_DIRECT),
|
||||
FOR_ALL_ZONES(PGSCAN_KSWAPD),
|
||||
FOR_ALL_ZONES(PGSCAN_DIRECT),
|
||||
#ifdef CONFIG_NUMA
|
||||
PGSCAN_ZONE_RECLAIM_FAILED,
|
||||
#endif
|
||||
PGINODESTEAL, SLABS_SCANNED, KSWAPD_STEAL, KSWAPD_INODESTEAL,
|
||||
PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL,
|
||||
KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY,
|
||||
KSWAPD_SKIP_CONGESTION_WAIT,
|
||||
PAGEOUTRUN, ALLOCSTALL, PGROTATED,
|
||||
|
Reference in New Issue
Block a user