diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/blk_types.h | 7 | ||||
| -rw-r--r-- | include/linux/blkdev.h | 5 | ||||
| -rw-r--r-- | include/linux/blktrace_api.h | 5 | ||||
| -rw-r--r-- | include/linux/bsg-lib.h | 73 | ||||
| -rw-r--r-- | include/linux/connector.h | 2 | ||||
| -rw-r--r-- | include/linux/cred.h | 6 | ||||
| -rw-r--r-- | include/linux/fs.h | 5 | ||||
| -rw-r--r-- | include/linux/fuse.h | 9 | ||||
| -rw-r--r-- | include/linux/hash.h | 2 | ||||
| -rw-r--r-- | include/linux/irq.h | 11 | ||||
| -rw-r--r-- | include/linux/irqdesc.h | 1 | ||||
| -rw-r--r-- | include/linux/loop.h | 5 | ||||
| -rw-r--r-- | include/linux/miscdevice.h | 1 | ||||
| -rw-r--r-- | include/linux/mm.h | 18 | ||||
| -rw-r--r-- | include/linux/mmc/host.h | 2 | ||||
| -rw-r--r-- | include/linux/netlink.h | 2 | ||||
| -rw-r--r-- | include/linux/of.h | 7 | ||||
| -rw-r--r-- | include/linux/pci.h | 16 | ||||
| -rw-r--r-- | include/linux/personality.h | 1 | ||||
| -rw-r--r-- | include/linux/pm_domain.h | 10 | ||||
| -rw-r--r-- | include/linux/pwm_backlight.h | 1 | ||||
| -rw-r--r-- | include/linux/rio_regs.h | 18 | ||||
| -rw-r--r-- | include/linux/rtc.h | 3 | ||||
| -rw-r--r-- | include/linux/sched.h | 1 | ||||
| -rw-r--r-- | include/linux/socket.h | 6 | ||||
| -rw-r--r-- | include/linux/ti_wilink_st.h | 27 | ||||
| -rw-r--r-- | include/linux/writeback.h | 11 | 
27 files changed, 207 insertions, 48 deletions
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h index 6395692b2e7..32f0076e844 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h @@ -125,7 +125,11 @@ enum rq_flag_bits {  	__REQ_SYNC,		/* request is sync (sync write or read) */  	__REQ_META,		/* metadata io request */  	__REQ_DISCARD,		/* request to discard sectors */ +	__REQ_SECURE,		/* secure discard (used with __REQ_DISCARD) */ +  	__REQ_NOIDLE,		/* don't anticipate more IO after this one */ +	__REQ_FUA,		/* forced unit access */ +	__REQ_FLUSH,		/* request for cache flush */  	/* bio only flags */  	__REQ_RAHEAD,		/* read ahead, can fail anytime */ @@ -135,7 +139,6 @@ enum rq_flag_bits {  	/* request only flags */  	__REQ_SORTED,		/* elevator knows about this request */  	__REQ_SOFTBARRIER,	/* may not be passed by ioscheduler */ -	__REQ_FUA,		/* forced unit access */  	__REQ_NOMERGE,		/* don't touch this for merging */  	__REQ_STARTED,		/* drive already may have started this one */  	__REQ_DONTPREP,		/* don't call prep for this one */ @@ -146,11 +149,9 @@ enum rq_flag_bits {  	__REQ_PREEMPT,		/* set for "ide_preempt" requests */  	__REQ_ALLOCED,		/* request came from our alloc pool */  	__REQ_COPY_USER,	/* contains copies of user pages */ -	__REQ_FLUSH,		/* request for cache flush */  	__REQ_FLUSH_SEQ,	/* request for flush sequence */  	__REQ_IO_STAT,		/* account I/O stat */  	__REQ_MIXED_MERGE,	/* merge of different types, fail separately */ -	__REQ_SECURE,		/* secure discard (used with __REQ_DISCARD) */  	__REQ_NR_BITS,		/* stops here */  }; diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 0e67c45b3bc..84b15d54f8c 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -30,6 +30,7 @@ struct request_pm_state;  struct blk_trace;  struct request;  struct sg_io_hdr; +struct bsg_job;  #define BLKDEV_MIN_RQ	4  #define BLKDEV_MAX_RQ	128	/* Default maximum */ @@ -117,6 +118,7 @@ struct request {  		struct {  			unsigned int		seq;  			struct list_head	list; +			rq_end_io_fn		*saved_end_io;  		} flush;  	}; @@ -209,6 +211,7 @@ typedef int (merge_bvec_fn) (struct request_queue *, struct bvec_merge_data *,  typedef void (softirq_done_fn)(struct request *);  typedef int (dma_drain_needed_fn)(struct request *);  typedef int (lld_busy_fn) (struct request_queue *q); +typedef int (bsg_job_fn) (struct bsg_job *);  enum blk_eh_timer_return {  	BLK_EH_NOT_HANDLED, @@ -375,6 +378,8 @@ struct request_queue {  	struct mutex		sysfs_lock;  #if defined(CONFIG_BLK_DEV_BSG) +	bsg_job_fn		*bsg_job_fn; +	int			bsg_job_size;  	struct bsg_class_device bsg_dev;  #endif diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h index 8c7c2de7631..8e9e4bc6d73 100644 --- a/include/linux/blktrace_api.h +++ b/include/linux/blktrace_api.h @@ -14,7 +14,7 @@  enum blktrace_cat {  	BLK_TC_READ	= 1 << 0,	/* reads */  	BLK_TC_WRITE	= 1 << 1,	/* writes */ -	BLK_TC_BARRIER	= 1 << 2,	/* barrier */ +	BLK_TC_FLUSH	= 1 << 2,	/* flush */  	BLK_TC_SYNC	= 1 << 3,	/* sync IO */  	BLK_TC_SYNCIO	= BLK_TC_SYNC,  	BLK_TC_QUEUE	= 1 << 4,	/* queueing/merging */ @@ -28,8 +28,9 @@ enum blktrace_cat {  	BLK_TC_META	= 1 << 12,	/* metadata */  	BLK_TC_DISCARD	= 1 << 13,	/* discard requests */  	BLK_TC_DRV_DATA	= 1 << 14,	/* binary per-driver data */ +	BLK_TC_FUA	= 1 << 15,	/* fua requests */ -	BLK_TC_END	= 1 << 15,	/* only 16-bits, reminder */ +	BLK_TC_END	= 1 << 15,	/* we've run out of bits! */  };  #define BLK_TC_SHIFT		(16) diff --git a/include/linux/bsg-lib.h b/include/linux/bsg-lib.h new file mode 100644 index 00000000000..f55ab8cdc10 --- /dev/null +++ b/include/linux/bsg-lib.h @@ -0,0 +1,73 @@ +/* + *  BSG helper library + * + *  Copyright (C) 2008   James Smart, Emulex Corporation + *  Copyright (C) 2011   Red Hat, Inc.  All rights reserved. + *  Copyright (C) 2011   Mike Christie + * + *  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 + *  (at your option) any later version. + * + *  This program is distributed in the hope that it will be useful, + *  but WITHOUT ANY WARRANTY; without even the implied warranty of + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *  GNU General Public License for more details. + * + *  You should have received a copy of the GNU General Public License + *  along with this program; if not, write to the Free Software + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + * + */ +#ifndef _BLK_BSG_ +#define _BLK_BSG_ + +#include <linux/blkdev.h> + +struct request; +struct device; +struct scatterlist; +struct request_queue; + +struct bsg_buffer { +	unsigned int payload_len; +	int sg_cnt; +	struct scatterlist *sg_list; +}; + +struct bsg_job { +	struct device *dev; +	struct request *req; + +	/* Transport/driver specific request/reply structs */ +	void *request; +	void *reply; + +	unsigned int request_len; +	unsigned int reply_len; +	/* +	 * On entry : reply_len indicates the buffer size allocated for +	 * the reply. +	 * +	 * Upon completion : the message handler must set reply_len +	 *  to indicates the size of the reply to be returned to the +	 *  caller. +	 */ + +	/* DMA payloads for the request/response */ +	struct bsg_buffer request_payload; +	struct bsg_buffer reply_payload; + +	void *dd_data;		/* Used for driver-specific storage */ +}; + +void bsg_job_done(struct bsg_job *job, int result, +		  unsigned int reply_payload_rcv_len); +int bsg_setup_queue(struct device *dev, struct request_queue *q, char *name, +		    bsg_job_fn *job_fn, int dd_job_size); +void bsg_request_fn(struct request_queue *q); +void bsg_remove_queue(struct request_queue *q); +void bsg_goose_queue(struct request_queue *q); + +#endif diff --git a/include/linux/connector.h b/include/linux/connector.h index 0c69ad825b3..3c9c54fd569 100644 --- a/include/linux/connector.h +++ b/include/linux/connector.h @@ -1,7 +1,7 @@  /*   * 	connector.h   *  - * 2004-2005 Copyright (c) Evgeniy Polyakov <johnpol@2ka.mipt.ru> + * 2004-2005 Copyright (c) Evgeniy Polyakov <zbr@ioremap.net>   * All rights reserved.   *    * This program is free software; you can redistribute it and/or modify diff --git a/include/linux/cred.h b/include/linux/cred.h index 98f46efbe2d..40308969ed0 100644 --- a/include/linux/cred.h +++ b/include/linux/cred.h @@ -269,7 +269,7 @@ static inline void put_cred(const struct cred *_cred)   * since nobody else can modify it.   */  #define current_cred() \ -	(*(__force struct cred **)¤t->cred) +	rcu_dereference_protected(current->cred, 1)  /**   * __task_cred - Access a task's objective credentials @@ -307,7 +307,7 @@ static inline void put_cred(const struct cred *_cred)  #define get_current_user()				\  ({							\  	struct user_struct *__u;			\ -	struct cred *__cred;				\ +	const struct cred *__cred;			\  	__cred = current_cred();			\  	__u = get_uid(__cred->user);			\  	__u;						\ @@ -322,7 +322,7 @@ static inline void put_cred(const struct cred *_cred)  #define get_current_groups()				\  ({							\  	struct group_info *__groups;			\ -	struct cred *__cred;				\ +	const struct cred *__cred;			\  	__cred = current_cred();			\  	__groups = get_group_info(__cred->group_info);	\  	__groups;					\ diff --git a/include/linux/fs.h b/include/linux/fs.h index 178cdb4f1d4..c2bd68f2277 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2318,6 +2318,11 @@ extern struct inode * iget5_locked(struct super_block *, unsigned long, int (*te  extern struct inode * iget_locked(struct super_block *, unsigned long);  extern int insert_inode_locked4(struct inode *, unsigned long, int (*test)(struct inode *, void *), void *);  extern int insert_inode_locked(struct inode *); +#ifdef CONFIG_DEBUG_LOCK_ALLOC +extern void lockdep_annotate_inode_mutex_key(struct inode *inode); +#else +static inline void lockdep_annotate_inode_mutex_key(struct inode *inode) { }; +#endif  extern void unlock_new_inode(struct inode *);  extern unsigned int get_next_ino(void); diff --git a/include/linux/fuse.h b/include/linux/fuse.h index d464de53db4..464cff52686 100644 --- a/include/linux/fuse.h +++ b/include/linux/fuse.h @@ -47,6 +47,9 @@   *  - FUSE_IOCTL_UNRESTRICTED shall now return with array of 'struct   *    fuse_ioctl_iovec' instead of ambiguous 'struct iovec'   *  - add FUSE_IOCTL_32BIT flag + * + * 7.17 + *  - add FUSE_FLOCK_LOCKS and FUSE_RELEASE_FLOCK_UNLOCK   */  #ifndef _LINUX_FUSE_H @@ -78,7 +81,7 @@  #define FUSE_KERNEL_VERSION 7  /** Minor version number of this interface */ -#define FUSE_KERNEL_MINOR_VERSION 16 +#define FUSE_KERNEL_MINOR_VERSION 17  /** The node ID of the root inode */  #define FUSE_ROOT_ID 1 @@ -153,8 +156,10 @@ struct fuse_file_lock {  /**   * INIT request/reply flags   * + * FUSE_POSIX_LOCKS: remote locking for POSIX file locks   * FUSE_EXPORT_SUPPORT: filesystem handles lookups of "." and ".."   * FUSE_DONT_MASK: don't apply umask to file mode on create operations + * FUSE_FLOCK_LOCKS: remote locking for BSD style file locks   */  #define FUSE_ASYNC_READ		(1 << 0)  #define FUSE_POSIX_LOCKS	(1 << 1) @@ -163,6 +168,7 @@ struct fuse_file_lock {  #define FUSE_EXPORT_SUPPORT	(1 << 4)  #define FUSE_BIG_WRITES		(1 << 5)  #define FUSE_DONT_MASK		(1 << 6) +#define FUSE_FLOCK_LOCKS	(1 << 10)  /**   * CUSE INIT request/reply flags @@ -175,6 +181,7 @@ struct fuse_file_lock {   * Release flags   */  #define FUSE_RELEASE_FLUSH	(1 << 0) +#define FUSE_RELEASE_FLOCK_UNLOCK	(1 << 1)  /**   * Getattr flags diff --git a/include/linux/hash.h b/include/linux/hash.h index 06d25c189cc..b80506bdd73 100644 --- a/include/linux/hash.h +++ b/include/linux/hash.h @@ -63,7 +63,7 @@ static inline u32 hash_32(u32 val, unsigned int bits)  	return hash >> (32 - bits);  } -static inline unsigned long hash_ptr(void *ptr, unsigned int bits) +static inline unsigned long hash_ptr(const void *ptr, unsigned int bits)  {  	return hash_long((unsigned long)ptr, bits);  } diff --git a/include/linux/irq.h b/include/linux/irq.h index 87a06f345bd..59517300a31 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -23,6 +23,7 @@  #include <linux/errno.h>  #include <linux/topology.h>  #include <linux/wait.h> +#include <linux/module.h>  #include <asm/irq.h>  #include <asm/ptrace.h> @@ -547,7 +548,15 @@ static inline struct msi_desc *irq_data_get_msi(struct irq_data *d)  	return d->msi_desc;  } -int irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node); +int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node, +		struct module *owner); + +static inline int irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, +		int node) +{ +	return __irq_alloc_descs(irq, from, cnt, node, THIS_MODULE); +} +  void irq_free_descs(unsigned int irq, unsigned int cnt);  int irq_reserve_irqs(unsigned int from, unsigned int cnt); diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h index 2d921b35212..150134ac709 100644 --- a/include/linux/irqdesc.h +++ b/include/linux/irqdesc.h @@ -66,6 +66,7 @@ struct irq_desc {  #ifdef CONFIG_PROC_FS  	struct proc_dir_entry	*dir;  #endif +	struct module		*owner;  	const char		*name;  } ____cacheline_internodealigned_in_smp; diff --git a/include/linux/loop.h b/include/linux/loop.h index 66c194e2d9b..683d6989011 100644 --- a/include/linux/loop.h +++ b/include/linux/loop.h @@ -64,7 +64,6 @@ struct loop_device {  	struct request_queue	*lo_queue;  	struct gendisk		*lo_disk; -	struct list_head	lo_list;  };  #endif /* __KERNEL__ */ @@ -161,4 +160,8 @@ int loop_unregister_transfer(int number);  #define LOOP_CHANGE_FD		0x4C06  #define LOOP_SET_CAPACITY	0x4C07 +/* /dev/loop-control interface */ +#define LOOP_CTL_ADD		0x4C80 +#define LOOP_CTL_REMOVE		0x4C81 +#define LOOP_CTL_GET_FREE	0x4C82  #endif diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h index 18fd13028ba..c309b1ecdc1 100644 --- a/include/linux/miscdevice.h +++ b/include/linux/miscdevice.h @@ -40,6 +40,7 @@  #define BTRFS_MINOR		234  #define AUTOFS_MINOR		235  #define MAPPER_CTRL_MINOR	236 +#define LOOP_CTRL_MINOR		237  #define MISC_DYNAMIC_MINOR	255  struct device; diff --git a/include/linux/mm.h b/include/linux/mm.h index f2690cf4982..7438071b44a 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -685,7 +685,7 @@ static inline void set_page_section(struct page *page, unsigned long section)  	page->flags |= (section & SECTIONS_MASK) << SECTIONS_PGSHIFT;  } -static inline unsigned long page_to_section(struct page *page) +static inline unsigned long page_to_section(const struct page *page)  {  	return (page->flags >> SECTIONS_PGSHIFT) & SECTIONS_MASK;  } @@ -720,7 +720,7 @@ static inline void set_page_links(struct page *page, enum zone_type zone,  static __always_inline void *lowmem_page_address(const struct page *page)  { -	return __va(PFN_PHYS(page_to_pfn((struct page *)page))); +	return __va(PFN_PHYS(page_to_pfn(page)));  }  #if defined(CONFIG_HIGHMEM) && !defined(WANT_PAGE_VIRTUAL) @@ -737,7 +737,7 @@ static __always_inline void *lowmem_page_address(const struct page *page)  #endif  #if defined(HASHED_PAGE_VIRTUAL) -void *page_address(struct page *page); +void *page_address(const struct page *page);  void set_page_address(struct page *page, void *virtual);  void page_address_init(void);  #endif @@ -962,6 +962,8 @@ int invalidate_inode_page(struct page *page);  #ifdef CONFIG_MMU  extern int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,  			unsigned long address, unsigned int flags); +extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, +			    unsigned long address, unsigned int fault_flags);  #else  static inline int handle_mm_fault(struct mm_struct *mm,  			struct vm_area_struct *vma, unsigned long address, @@ -971,6 +973,14 @@ static inline int handle_mm_fault(struct mm_struct *mm,  	BUG();  	return VM_FAULT_SIGBUS;  } +static inline int fixup_user_fault(struct task_struct *tsk, +		struct mm_struct *mm, unsigned long address, +		unsigned int fault_flags) +{ +	/* should never happen if there's no MMU */ +	BUG(); +	return -EFAULT; +}  #endif  extern int make_pages_present(unsigned long addr, unsigned long end); @@ -988,8 +998,6 @@ int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,  int get_user_pages_fast(unsigned long start, int nr_pages, int write,  			struct page **pages);  struct page *get_dump_page(unsigned long addr); -extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, -			    unsigned long address, unsigned int fault_flags);  extern int try_to_release_page(struct page * page, gfp_t gfp_mask);  extern void do_invalidatepage(struct page *page, unsigned long offset); diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 0f83858147a..1d09562ccf7 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -56,8 +56,6 @@ struct mmc_ios {  #define MMC_TIMING_UHS_SDR104	4  #define MMC_TIMING_UHS_DDR50	5 -	unsigned char	ddr;			/* dual data rate used */ -  #define MMC_SDR_MODE		0  #define MMC_1_2V_DDR_MODE	1  #define MMC_1_8V_DDR_MODE	2 diff --git a/include/linux/netlink.h b/include/linux/netlink.h index 2e17c5dbdcb..180540a84d3 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h @@ -29,7 +29,7 @@  #define MAX_LINKS 32		  struct sockaddr_nl { -	sa_family_t	nl_family;	/* AF_NETLINK	*/ +	__kernel_sa_family_t	nl_family;	/* AF_NETLINK	*/  	unsigned short	nl_pad;		/* zero		*/  	__u32		nl_pid;		/* port ID	*/         	__u32		nl_groups;	/* multicast groups mask */ diff --git a/include/linux/of.h b/include/linux/of.h index 0085bb01c04..9180dc5cb00 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -256,6 +256,13 @@ static inline int of_property_read_string(struct device_node *np,  	return -ENOSYS;  } +static inline const void *of_get_property(const struct device_node *node, +				const char *name, +				int *lenp) +{ +	return NULL; +} +  #endif /* CONFIG_OF */  static inline int of_property_read_u32(const struct device_node *np, diff --git a/include/linux/pci.h b/include/linux/pci.h index f27893b3b72..8c230cbcbb4 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -251,7 +251,8 @@ struct pci_dev {  	u8		revision;	/* PCI revision, low byte of class word */  	u8		hdr_type;	/* PCI header type (`multi' flag masked out) */  	u8		pcie_cap;	/* PCI-E capability offset */ -	u8		pcie_type;	/* PCI-E device/port type */ +	u8		pcie_type:4;	/* PCI-E device/port type */ +	u8		pcie_mpss:3;	/* PCI-E Max Payload Size Supported */  	u8		rom_base_reg;	/* which config register controls the ROM */  	u8		pin;  		/* which interrupt pin this device uses */ @@ -617,6 +618,16 @@ struct pci_driver {  /* these external functions are only available when PCI support is enabled */  #ifdef CONFIG_PCI +extern void pcie_bus_configure_settings(struct pci_bus *bus, u8 smpss); + +enum pcie_bus_config_types { +	PCIE_BUS_PERFORMANCE, +	PCIE_BUS_SAFE, +	PCIE_BUS_PEER2PEER, +}; + +extern enum pcie_bus_config_types pcie_bus_config; +  extern struct bus_type pci_bus_type;  /* Do NOT directly access these two variables, unless you are arch specific pci @@ -796,10 +807,13 @@ int pcix_get_mmrbc(struct pci_dev *dev);  int pcix_set_mmrbc(struct pci_dev *dev, int mmrbc);  int pcie_get_readrq(struct pci_dev *dev);  int pcie_set_readrq(struct pci_dev *dev, int rq); +int pcie_get_mps(struct pci_dev *dev); +int pcie_set_mps(struct pci_dev *dev, int mps);  int __pci_reset_function(struct pci_dev *dev);  int pci_reset_function(struct pci_dev *dev);  void pci_update_resource(struct pci_dev *dev, int resno);  int __must_check pci_assign_resource(struct pci_dev *dev, int i); +int __must_check pci_reassign_resource(struct pci_dev *dev, int i, resource_size_t add_size, resource_size_t align);  int pci_select_bars(struct pci_dev *dev, unsigned long flags);  /* ROM control related routines */ diff --git a/include/linux/personality.h b/include/linux/personality.h index eec3bae164d..8fc7dd1a57f 100644 --- a/include/linux/personality.h +++ b/include/linux/personality.h @@ -22,6 +22,7 @@ extern int		__set_personality(unsigned int);   * These occupy the top three bytes.   */  enum { +	UNAME26	=               0x0020000,  	ADDR_NO_RANDOMIZE = 	0x0040000,	/* disable randomization of VA space */  	FDPIC_FUNCPTRS =	0x0080000,	/* userspace function ptrs point to descriptors  						 * (signal handling) diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index 21097cb086f..f9ec1736a11 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h @@ -72,8 +72,6 @@ extern int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,  extern void pm_genpd_init(struct generic_pm_domain *genpd,  			  struct dev_power_governor *gov, bool is_off);  extern int pm_genpd_poweron(struct generic_pm_domain *genpd); -extern void pm_genpd_poweroff_unused(void); -extern void genpd_queue_power_off_work(struct generic_pm_domain *genpd);  #else  static inline int pm_genpd_add_device(struct generic_pm_domain *genpd,  				      struct device *dev) @@ -101,8 +99,14 @@ static inline int pm_genpd_poweron(struct generic_pm_domain *genpd)  {  	return -ENOSYS;  } -static inline void pm_genpd_poweroff_unused(void) {} +#endif + +#ifdef CONFIG_PM_GENERIC_DOMAINS_RUNTIME +extern void genpd_queue_power_off_work(struct generic_pm_domain *genpd); +extern void pm_genpd_poweroff_unused(void); +#else  static inline void genpd_queue_power_off_work(struct generic_pm_domain *gpd) {} +static inline void pm_genpd_poweroff_unused(void) {}  #endif  #endif /* _LINUX_PM_DOMAIN_H */ diff --git a/include/linux/pwm_backlight.h b/include/linux/pwm_backlight.h index 5e3e25a3c9c..63d2df43e61 100644 --- a/include/linux/pwm_backlight.h +++ b/include/linux/pwm_backlight.h @@ -14,6 +14,7 @@ struct platform_pwm_backlight_data {  	unsigned int pwm_period_ns;  	int (*init)(struct device *dev);  	int (*notify)(struct device *dev, int brightness); +	void (*notify_after)(struct device *dev, int brightness);  	void (*exit)(struct device *dev);  	int (*check_fb)(struct device *dev, struct fb_info *info);  }; diff --git a/include/linux/rio_regs.h b/include/linux/rio_regs.h index 9026b30238f..218168a2b5e 100644 --- a/include/linux/rio_regs.h +++ b/include/linux/rio_regs.h @@ -36,12 +36,12 @@  #define  RIO_PEF_PROCESSOR		0x20000000	/* [I] Processor */  #define  RIO_PEF_SWITCH			0x10000000	/* [I] Switch */  #define  RIO_PEF_MULTIPORT		0x08000000	/* [VI, 2.1] Multiport */ -#define  RIO_PEF_INB_MBOX		0x00f00000	/* [II] Mailboxes */ -#define  RIO_PEF_INB_MBOX0		0x00800000	/* [II] Mailbox 0 */ -#define  RIO_PEF_INB_MBOX1		0x00400000	/* [II] Mailbox 1 */ -#define  RIO_PEF_INB_MBOX2		0x00200000	/* [II] Mailbox 2 */ -#define  RIO_PEF_INB_MBOX3		0x00100000	/* [II] Mailbox 3 */ -#define  RIO_PEF_INB_DOORBELL		0x00080000	/* [II] Doorbells */ +#define  RIO_PEF_INB_MBOX		0x00f00000	/* [II, <= 1.2] Mailboxes */ +#define  RIO_PEF_INB_MBOX0		0x00800000	/* [II, <= 1.2] Mailbox 0 */ +#define  RIO_PEF_INB_MBOX1		0x00400000	/* [II, <= 1.2] Mailbox 1 */ +#define  RIO_PEF_INB_MBOX2		0x00200000	/* [II, <= 1.2] Mailbox 2 */ +#define  RIO_PEF_INB_MBOX3		0x00100000	/* [II, <= 1.2] Mailbox 3 */ +#define  RIO_PEF_INB_DOORBELL		0x00080000	/* [II, <= 1.2] Doorbells */  #define  RIO_PEF_EXT_RT			0x00000200	/* [III, 1.3] Extended route table support */  #define  RIO_PEF_STD_RT			0x00000100	/* [III, 1.3] Standard route table support */  #define  RIO_PEF_CTLS			0x00000010	/* [III] CTLS */ @@ -102,7 +102,7 @@  #define	RIO_SWITCH_RT_LIMIT	0x34	/* [III, 1.3] Switch Route Table Destination ID Limit CAR */  #define	 RIO_RT_MAX_DESTID		0x0000ffff -#define RIO_MBOX_CSR		0x40	/* [II] Mailbox CSR */ +#define RIO_MBOX_CSR		0x40	/* [II, <= 1.2] Mailbox CSR */  #define  RIO_MBOX0_AVAIL		0x80000000	/* [II] Mbox 0 avail */  #define  RIO_MBOX0_FULL			0x40000000	/* [II] Mbox 0 full */  #define  RIO_MBOX0_EMPTY		0x20000000	/* [II] Mbox 0 empty */ @@ -128,8 +128,8 @@  #define  RIO_MBOX3_FAIL			0x00000008	/* [II] Mbox 3 fail */  #define  RIO_MBOX3_ERROR		0x00000004	/* [II] Mbox 3 error */ -#define RIO_WRITE_PORT_CSR	0x44	/* [I] Write Port CSR */ -#define RIO_DOORBELL_CSR	0x44	/* [II] Doorbell CSR */ +#define RIO_WRITE_PORT_CSR	0x44	/* [I, <= 1.2] Write Port CSR */ +#define RIO_DOORBELL_CSR	0x44	/* [II, <= 1.2] Doorbell CSR */  #define  RIO_DOORBELL_AVAIL		0x80000000	/* [II] Doorbell avail */  #define  RIO_DOORBELL_FULL		0x40000000	/* [II] Doorbell full */  #define  RIO_DOORBELL_EMPTY		0x20000000	/* [II] Doorbell empty */ diff --git a/include/linux/rtc.h b/include/linux/rtc.h index b27ebea2566..93f4d035076 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h @@ -97,6 +97,9 @@ struct rtc_pll_info {  #define RTC_AF 0x20	/* Alarm interrupt */  #define RTC_UF 0x10	/* Update interrupt for 1Hz RTC */ + +#define RTC_MAX_FREQ	8192 +  #ifdef __KERNEL__  #include <linux/types.h> diff --git a/include/linux/sched.h b/include/linux/sched.h index 20b03bf9474..4ac2c0578e0 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1767,6 +1767,7 @@ extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t *  #define PF_DUMPCORE	0x00000200	/* dumped core */  #define PF_SIGNALED	0x00000400	/* killed by a signal */  #define PF_MEMALLOC	0x00000800	/* Allocating memory */ +#define PF_NPROC_EXCEEDED 0x00001000	/* set_user noticed that RLIMIT_NPROC was exceeded */  #define PF_USED_MATH	0x00002000	/* if unset the fpu must be initialized before use */  #define PF_FREEZING	0x00004000	/* freeze in progress. do not account to load */  #define PF_NOFREEZE	0x00008000	/* this thread should not be frozen */ diff --git a/include/linux/socket.h b/include/linux/socket.h index e17f8226663..d0e77f607a7 100644 --- a/include/linux/socket.h +++ b/include/linux/socket.h @@ -8,8 +8,10 @@  #define _K_SS_ALIGNSIZE	(__alignof__ (struct sockaddr *))  				/* Implementation specific desired alignment */ +typedef unsigned short __kernel_sa_family_t; +  struct __kernel_sockaddr_storage { -	unsigned short	ss_family;		/* address family */ +	__kernel_sa_family_t	ss_family;		/* address family */  	/* Following field(s) are implementation specific */  	char		__data[_K_SS_MAXSIZE - sizeof(unsigned short)];  				/* space to achieve desired size, */ @@ -35,7 +37,7 @@ struct seq_file;  extern void socket_seq_show(struct seq_file *seq);  #endif -typedef unsigned short	sa_family_t; +typedef __kernel_sa_family_t	sa_family_t;  /*   *	1003.1g requires sa_family_t and that sa_data is char. diff --git a/include/linux/ti_wilink_st.h b/include/linux/ti_wilink_st.h index b004e557caa..2ef4385da6b 100644 --- a/include/linux/ti_wilink_st.h +++ b/include/linux/ti_wilink_st.h @@ -410,7 +410,28 @@ struct gps_event_hdr {  	u16 plen;  } __attribute__ ((packed)); -/* platform data */ +/** + * struct ti_st_plat_data - platform data shared between ST driver and + *	platform specific board file which adds the ST device. + * @nshutdown_gpio: Host's GPIO line to which chip's BT_EN is connected. + * @dev_name: The UART/TTY name to which chip is interfaced. (eg: /dev/ttyS1) + * @flow_cntrl: Should always be 1, since UART's CTS/RTS is used for PM + *	purposes. + * @baud_rate: The baud rate supported by the Host UART controller, this will + *	be shared across with the chip via a HCI VS command from User-Space Init + *	Mgr application. + * @suspend: + * @resume: legacy PM routines hooked to platform specific board file, so as + *	to take chip-host interface specific action. + * @chip_enable: + * @chip_disable: Platform/Interface specific mux mode setting, GPIO + *	configuring, Host side PM disabling etc.. can be done here. + * @chip_asleep: + * @chip_awake: Chip specific deep sleep states is communicated to Host + *	specific board-xx.c to take actions such as cut UART clocks when chip + *	asleep or run host faster when chip awake etc.. + * + */  struct ti_st_plat_data {  	long nshutdown_gpio;  	unsigned char dev_name[UART_DEV_NAME_LEN]; /* uart name */ @@ -418,6 +439,10 @@ struct ti_st_plat_data {  	unsigned long baud_rate;  	int (*suspend)(struct platform_device *, pm_message_t);  	int (*resume)(struct platform_device *); +	int (*chip_enable) (struct kim_data_s *); +	int (*chip_disable) (struct kim_data_s *); +	int (*chip_asleep) (struct kim_data_s *); +	int (*chip_awake) (struct kim_data_s *);  };  #endif /* TI_WILINK_ST_H */ diff --git a/include/linux/writeback.h b/include/linux/writeback.h index f1bfa12ea24..2b8963ff0f3 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -12,15 +12,6 @@   *   *	(thresh - thresh/DIRTY_FULL_SCOPE, thresh)   * - * The 1/16 region above the global dirty limit will be put to maximum pauses: - * - *	(limit, limit + limit/DIRTY_MAXPAUSE_AREA) - * - * The 1/16 region above the max-pause region, dirty exceeded bdi's will be put - * to loops: - * - *	(limit + limit/DIRTY_MAXPAUSE_AREA, limit + limit/DIRTY_PASSGOOD_AREA) - *   * Further beyond, all dirtier tasks will enter a loop waiting (possibly long   * time) for the dirty pages to drop, unless written enough pages.   * @@ -31,8 +22,6 @@   */  #define DIRTY_SCOPE		8  #define DIRTY_FULL_SCOPE	(DIRTY_SCOPE / 2) -#define DIRTY_MAXPAUSE_AREA		16 -#define DIRTY_PASSGOOD_AREA		8  /*   * 4MB minimal write chunk size  |