diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/acpi/processor.h | 3 | ||||
| -rw-r--r-- | include/asm-generic/atomic.h | 6 | ||||
| -rw-r--r-- | include/asm-generic/cmpxchg.h | 10 | ||||
| -rw-r--r-- | include/linux/clk-private.h | 2 | ||||
| -rw-r--r-- | include/linux/clk-provider.h | 61 | ||||
| -rw-r--r-- | include/linux/clk/sunxi.h | 22 | ||||
| -rw-r--r-- | include/linux/idr.h | 68 | ||||
| -rw-r--r-- | include/linux/iio/common/st_sensors.h | 9 | ||||
| -rw-r--r-- | include/linux/list.h | 4 | ||||
| -rw-r--r-- | include/linux/mfd/palmas.h | 1 | ||||
| -rw-r--r-- | include/linux/mfd/tps65912.h | 1 | ||||
| -rw-r--r-- | include/linux/mfd/wm831x/auxadc.h | 2 | ||||
| -rw-r--r-- | include/linux/mfd/wm831x/core.h | 2 | ||||
| -rw-r--r-- | include/linux/perf_event.h | 6 | ||||
| -rw-r--r-- | include/linux/res_counter.h | 1 | ||||
| -rw-r--r-- | include/linux/usb/composite.h | 3 | ||||
| -rw-r--r-- | include/uapi/linux/acct.h | 6 | ||||
| -rw-r--r-- | include/uapi/linux/aio_abi.h | 4 | ||||
| -rw-r--r-- | include/uapi/linux/raid/md_p.h | 6 | ||||
| -rw-r--r-- | include/uapi/linux/serial_core.h | 5 | 
20 files changed, 182 insertions, 40 deletions
diff --git a/include/acpi/processor.h b/include/acpi/processor.h index 555d0337ad9..b327b5a9296 100644 --- a/include/acpi/processor.h +++ b/include/acpi/processor.h @@ -235,6 +235,9 @@ extern void acpi_processor_unregister_performance(struct           if a _PPC object exists, rmmod is disallowed then */  int acpi_processor_notify_smm(struct module *calling_module); +/* parsing the _P* objects. */ +extern int acpi_processor_get_performance_info(struct acpi_processor *pr); +  /* for communication between multiple parts of the processor kernel module */  DECLARE_PER_CPU(struct acpi_processor *, processors);  extern struct acpi_processor_errata errata; diff --git a/include/asm-generic/atomic.h b/include/asm-generic/atomic.h index 1ced6413ea0..33bd2de3bc1 100644 --- a/include/asm-generic/atomic.h +++ b/include/asm-generic/atomic.h @@ -136,12 +136,6 @@ static inline void atomic_dec(atomic_t *v)  #define atomic_xchg(ptr, v)		(xchg(&(ptr)->counter, (v)))  #define atomic_cmpxchg(v, old, new)	(cmpxchg(&((v)->counter), (old), (new))) -#define cmpxchg_local(ptr, o, n)				  	       \ -	((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\ -			(unsigned long)(n), sizeof(*(ptr)))) - -#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) -  static inline int __atomic_add_unless(atomic_t *v, int a, int u)  {    int c, old; diff --git a/include/asm-generic/cmpxchg.h b/include/asm-generic/cmpxchg.h index 14883026015..811fb1e9b06 100644 --- a/include/asm-generic/cmpxchg.h +++ b/include/asm-generic/cmpxchg.h @@ -92,6 +92,16 @@ unsigned long __xchg(unsigned long x, volatile void *ptr, int size)   */  #include <asm-generic/cmpxchg-local.h> +#ifndef cmpxchg_local +#define cmpxchg_local(ptr, o, n)				  	       \ +	((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\ +			(unsigned long)(n), sizeof(*(ptr)))) +#endif + +#ifndef cmpxchg64_local +#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) +#endif +  #define cmpxchg(ptr, o, n)	cmpxchg_local((ptr), (o), (n))  #define cmpxchg64(ptr, o, n)	cmpxchg64_local((ptr), (o), (n)) diff --git a/include/linux/clk-private.h b/include/linux/clk-private.h index 9c7f5807824..dd7adff76e8 100644 --- a/include/linux/clk-private.h +++ b/include/linux/clk-private.h @@ -152,7 +152,7 @@ struct clk {  		},						\  		.reg = _reg,					\  		.shift = _shift,				\ -		.width = _width,				\ +		.mask = BIT(_width) - 1,			\  		.flags = _mux_flags,				\  		.lock = _lock,					\  	};							\ diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index 7f197d7addb..9fdfae74d66 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h @@ -45,6 +45,14 @@ struct clk_hw;   * 		undo any work done in the @prepare callback. Called with   * 		prepare_lock held.   * + * @is_prepared: Queries the hardware to determine if the clock is prepared. + *		This function is allowed to sleep. Optional, if this op is not + *		set then the prepare count will be used. + * + * @unprepare_unused: Unprepare the clock atomically.  Only called from + *		clk_disable_unused for prepare clocks with special needs. + *		Called with prepare mutex held. This function may sleep. + *   * @enable:	Enable the clock atomically. This must not return until the   * 		clock is generating a valid clock signal, usable by consumer   * 		devices. Called with enable_lock held. This function must not @@ -108,6 +116,8 @@ struct clk_hw;  struct clk_ops {  	int		(*prepare)(struct clk_hw *hw);  	void		(*unprepare)(struct clk_hw *hw); +	int		(*is_prepared)(struct clk_hw *hw); +	void		(*unprepare_unused)(struct clk_hw *hw);  	int		(*enable)(struct clk_hw *hw);  	void		(*disable)(struct clk_hw *hw);  	int		(*is_enabled)(struct clk_hw *hw); @@ -239,9 +249,14 @@ struct clk_div_table {   * CLK_DIVIDER_ONE_BASED - by default the divisor is the value read from the   * 	register plus one.  If CLK_DIVIDER_ONE_BASED is set then the divider is   * 	the raw value read from the register, with the value of zero considered - * 	invalid + *	invalid, unless CLK_DIVIDER_ALLOW_ZERO is set.   * CLK_DIVIDER_POWER_OF_TWO - clock divisor is 2 raised to the value read from   * 	the hardware register + * CLK_DIVIDER_ALLOW_ZERO - Allow zero divisors.  For dividers which have + *	CLK_DIVIDER_ONE_BASED set, it is possible to end up with a zero divisor. + *	Some hardware implementations gracefully handle this case and allow a + *	zero divisor by not modifying their input clock + *	(divide by one / bypass).   */  struct clk_divider {  	struct clk_hw	hw; @@ -255,6 +270,7 @@ struct clk_divider {  #define CLK_DIVIDER_ONE_BASED		BIT(0)  #define CLK_DIVIDER_POWER_OF_TWO	BIT(1) +#define CLK_DIVIDER_ALLOW_ZERO		BIT(2)  extern const struct clk_ops clk_divider_ops;  struct clk *clk_register_divider(struct device *dev, const char *name, @@ -274,7 +290,7 @@ struct clk *clk_register_divider_table(struct device *dev, const char *name,   * @reg:	register controlling multiplexer   * @shift:	shift to multiplexer bit field   * @width:	width of mutliplexer bit field - * @num_clks:	number of parent clocks + * @flags:	hardware-specific flags   * @lock:	register lock   *   * Clock with multiple selectable parents.  Implements .get_parent, .set_parent @@ -287,8 +303,9 @@ struct clk *clk_register_divider_table(struct device *dev, const char *name,  struct clk_mux {  	struct clk_hw	hw;  	void __iomem	*reg; +	u32		*table; +	u32		mask;  	u8		shift; -	u8		width;  	u8		flags;  	spinlock_t	*lock;  }; @@ -297,11 +314,17 @@ struct clk_mux {  #define CLK_MUX_INDEX_BIT		BIT(1)  extern const struct clk_ops clk_mux_ops; +  struct clk *clk_register_mux(struct device *dev, const char *name,  		const char **parent_names, u8 num_parents, unsigned long flags,  		void __iomem *reg, u8 shift, u8 width,  		u8 clk_mux_flags, spinlock_t *lock); +struct clk *clk_register_mux_table(struct device *dev, const char *name, +		const char **parent_names, u8 num_parents, unsigned long flags, +		void __iomem *reg, u8 shift, u32 mask, +		u8 clk_mux_flags, u32 *table, spinlock_t *lock); +  /**   * struct clk_fixed_factor - fixed multiplier and divider clock   * @@ -325,6 +348,37 @@ struct clk *clk_register_fixed_factor(struct device *dev, const char *name,  		const char *parent_name, unsigned long flags,  		unsigned int mult, unsigned int div); +/*** + * struct clk_composite - aggregate clock of mux, divider and gate clocks + * + * @hw:		handle between common and hardware-specific interfaces + * @mux_hw:	handle between composite and hardware-specifix mux clock + * @div_hw:	handle between composite and hardware-specifix divider clock + * @gate_hw:	handle between composite and hardware-specifix gate clock + * @mux_ops:	clock ops for mux + * @div_ops:	clock ops for divider + * @gate_ops:	clock ops for gate + */ +struct clk_composite { +	struct clk_hw	hw; +	struct clk_ops	ops; + +	struct clk_hw	*mux_hw; +	struct clk_hw	*div_hw; +	struct clk_hw	*gate_hw; + +	const struct clk_ops	*mux_ops; +	const struct clk_ops	*div_ops; +	const struct clk_ops	*gate_ops; +}; + +struct clk *clk_register_composite(struct device *dev, const char *name, +		const char **parent_names, int num_parents, +		struct clk_hw *mux_hw, const struct clk_ops *mux_ops, +		struct clk_hw *div_hw, const struct clk_ops *div_ops, +		struct clk_hw *gate_hw, const struct clk_ops *gate_ops, +		unsigned long flags); +  /**   * clk_register - allocate a new clock, register it and return an opaque cookie   * @dev: device that is registering this clock @@ -351,6 +405,7 @@ unsigned int __clk_get_enable_count(struct clk *clk);  unsigned int __clk_get_prepare_count(struct clk *clk);  unsigned long __clk_get_rate(struct clk *clk);  unsigned long __clk_get_flags(struct clk *clk); +bool __clk_is_prepared(struct clk *clk);  bool __clk_is_enabled(struct clk *clk);  struct clk *__clk_lookup(const char *name); diff --git a/include/linux/clk/sunxi.h b/include/linux/clk/sunxi.h new file mode 100644 index 00000000000..e074fdd5a23 --- /dev/null +++ b/include/linux/clk/sunxi.h @@ -0,0 +1,22 @@ +/* + * Copyright 2012 Maxime Ripard + * + * Maxime Ripard <maxime.ripard@free-electrons.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 + * (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. + */ + +#ifndef __LINUX_CLK_SUNXI_H_ +#define __LINUX_CLK_SUNXI_H_ + +void __init sunxi_init_clocks(void); + +#endif diff --git a/include/linux/idr.h b/include/linux/idr.h index a6f38b5c34e..2640c7e99e5 100644 --- a/include/linux/idr.h +++ b/include/linux/idr.h @@ -73,8 +73,6 @@ struct idr {   */  void *idr_find_slowpath(struct idr *idp, int id); -int idr_pre_get(struct idr *idp, gfp_t gfp_mask); -int idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id);  void idr_preload(gfp_t gfp_mask);  int idr_alloc(struct idr *idp, void *ptr, int start, int end, gfp_t gfp_mask);  int idr_for_each(struct idr *idp, @@ -99,7 +97,7 @@ static inline void idr_preload_end(void)  /**   * idr_find - return pointer for given id - * @idp: idr handle + * @idr: idr handle   * @id: lookup key   *   * Return the pointer given the id it has been registered with.  A %NULL @@ -120,19 +118,6 @@ static inline void *idr_find(struct idr *idr, int id)  }  /** - * idr_get_new - allocate new idr entry - * @idp: idr handle - * @ptr: pointer you want associated with the id - * @id: pointer to the allocated handle - * - * Simple wrapper around idr_get_new_above() w/ @starting_id of zero. - */ -static inline int idr_get_new(struct idr *idp, void *ptr, int *id) -{ -	return idr_get_new_above(idp, ptr, 0, id); -} - -/**   * idr_for_each_entry - iterate over an idr's elements of a given type   * @idp:     idr handle   * @entry:   the type * to use as cursor @@ -143,7 +128,56 @@ static inline int idr_get_new(struct idr *idp, void *ptr, int *id)  	     entry != NULL;                                             \  	     ++id, entry = (typeof(entry))idr_get_next((idp), &(id))) -void __idr_remove_all(struct idr *idp);	/* don't use */ +/* + * Don't use the following functions.  These exist only to suppress + * deprecated warnings on EXPORT_SYMBOL()s. + */ +int __idr_pre_get(struct idr *idp, gfp_t gfp_mask); +int __idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id); +void __idr_remove_all(struct idr *idp); + +/** + * idr_pre_get - reserve resources for idr allocation + * @idp:	idr handle + * @gfp_mask:	memory allocation flags + * + * Part of old alloc interface.  This is going away.  Use + * idr_preload[_end]() and idr_alloc() instead. + */ +static inline int __deprecated idr_pre_get(struct idr *idp, gfp_t gfp_mask) +{ +	return __idr_pre_get(idp, gfp_mask); +} + +/** + * idr_get_new_above - allocate new idr entry above or equal to a start id + * @idp: idr handle + * @ptr: pointer you want associated with the id + * @starting_id: id to start search at + * @id: pointer to the allocated handle + * + * Part of old alloc interface.  This is going away.  Use + * idr_preload[_end]() and idr_alloc() instead. + */ +static inline int __deprecated idr_get_new_above(struct idr *idp, void *ptr, +						 int starting_id, int *id) +{ +	return __idr_get_new_above(idp, ptr, starting_id, id); +} + +/** + * idr_get_new - allocate new idr entry + * @idp: idr handle + * @ptr: pointer you want associated with the id + * @id: pointer to the allocated handle + * + * Part of old alloc interface.  This is going away.  Use + * idr_preload[_end]() and idr_alloc() instead. + */ +static inline int __deprecated idr_get_new(struct idr *idp, void *ptr, int *id) +{ +	return __idr_get_new_above(idp, ptr, 0, id); +}  /**   * idr_remove_all - remove all ids from the given idr tree diff --git a/include/linux/iio/common/st_sensors.h b/include/linux/iio/common/st_sensors.h index 1f86a97ab2e..8bd12be0b02 100644 --- a/include/linux/iio/common/st_sensors.h +++ b/include/linux/iio/common/st_sensors.h @@ -227,14 +227,17 @@ struct st_sensor_data {  };  #ifdef CONFIG_IIO_BUFFER +irqreturn_t st_sensors_trigger_handler(int irq, void *p); + +int st_sensors_get_buffer_element(struct iio_dev *indio_dev, u8 *buf); +#endif + +#ifdef CONFIG_IIO_TRIGGER  int st_sensors_allocate_trigger(struct iio_dev *indio_dev,  				const struct iio_trigger_ops *trigger_ops);  void st_sensors_deallocate_trigger(struct iio_dev *indio_dev); -irqreturn_t st_sensors_trigger_handler(int irq, void *p); - -int st_sensors_get_buffer_element(struct iio_dev *indio_dev, u8 *buf);  #else  static inline int st_sensors_allocate_trigger(struct iio_dev *indio_dev,  				const struct iio_trigger_ops *trigger_ops) diff --git a/include/linux/list.h b/include/linux/list.h index d991cc147c9..6a1f8df9144 100644 --- a/include/linux/list.h +++ b/include/linux/list.h @@ -667,7 +667,9 @@ static inline void hlist_move_list(struct hlist_head *old,  	     pos = n)  #define hlist_entry_safe(ptr, type, member) \ -	(ptr) ? hlist_entry(ptr, type, member) : NULL +	({ typeof(ptr) ____ptr = (ptr); \ +	   ____ptr ? hlist_entry(____ptr, type, member) : NULL; \ +	})  /**   * hlist_for_each_entry	- iterate over list of given type diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h index a4d13d7cd00..3bbda22721e 100644 --- a/include/linux/mfd/palmas.h +++ b/include/linux/mfd/palmas.h @@ -221,6 +221,7 @@ struct palmas_clk_platform_data {  };  struct palmas_platform_data { +	int irq_flags;  	int gpio_base;  	/* bit value to be loaded to the POWER_CTRL register */ diff --git a/include/linux/mfd/tps65912.h b/include/linux/mfd/tps65912.h index aaceab402ec..6d309032dc0 100644 --- a/include/linux/mfd/tps65912.h +++ b/include/linux/mfd/tps65912.h @@ -323,5 +323,6 @@ int tps65912_device_init(struct tps65912 *tps65912);  void tps65912_device_exit(struct tps65912 *tps65912);  int tps65912_irq_init(struct tps65912 *tps65912, int irq,  			struct tps65912_platform_data *pdata); +int tps65912_irq_exit(struct tps65912 *tps65912);  #endif /*  __LINUX_MFD_TPS65912_H */ diff --git a/include/linux/mfd/wm831x/auxadc.h b/include/linux/mfd/wm831x/auxadc.h index b132067e9e9..867aa23f937 100644 --- a/include/linux/mfd/wm831x/auxadc.h +++ b/include/linux/mfd/wm831x/auxadc.h @@ -15,6 +15,8 @@  #ifndef __MFD_WM831X_AUXADC_H__  #define __MFD_WM831X_AUXADC_H__ +struct wm831x; +  /*   * R16429 (0x402D) - AuxADC Data   */ diff --git a/include/linux/mfd/wm831x/core.h b/include/linux/mfd/wm831x/core.h index 4a3b83a7761..76c22648436 100644 --- a/include/linux/mfd/wm831x/core.h +++ b/include/linux/mfd/wm831x/core.h @@ -20,6 +20,7 @@  #include <linux/irqdomain.h>  #include <linux/list.h>  #include <linux/regmap.h> +#include <linux/mfd/wm831x/auxadc.h>  /*   * Register values. @@ -355,7 +356,6 @@ enum wm831x_parent {  };  struct wm831x; -enum wm831x_auxadc;  typedef int (*wm831x_auxadc_read_fn)(struct wm831x *wm831x,  				     enum wm831x_auxadc input); diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index e47ee462c2f..1d795df6f4c 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -799,6 +799,12 @@ static inline int __perf_event_disable(void *info)			{ return -1; }  static inline void perf_event_task_tick(void)				{ }  #endif +#if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_CPU_SUP_INTEL) +extern void perf_restore_debug_store(void); +#else +static inline void perf_restore_debug_store(void)			{ } +#endif +  #define perf_output_put(handle, x) perf_output_copy((handle), &(x), sizeof(x))  /* diff --git a/include/linux/res_counter.h b/include/linux/res_counter.h index 5ae8456d967..c23099413ad 100644 --- a/include/linux/res_counter.h +++ b/include/linux/res_counter.h @@ -14,6 +14,7 @@   */  #include <linux/cgroup.h> +#include <linux/errno.h>  /*   * The core object. the cgroup that wishes to account for some diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h index 3c671c1b37f..8860594d636 100644 --- a/include/linux/usb/composite.h +++ b/include/linux/usb/composite.h @@ -60,7 +60,7 @@ struct usb_configuration;   * @name: For diagnostics, identifies the function.   * @strings: tables of strings, keyed by identifiers assigned during bind()   *	and by language IDs provided in control requests - * @descriptors: Table of full (or low) speed descriptors, using interface and + * @fs_descriptors: Table of full (or low) speed descriptors, using interface and   *	string identifiers assigned during @bind().  If this pointer is null,   *	the function will not be available at full speed (or at low speed).   * @hs_descriptors: Table of high speed descriptors, using interface and @@ -290,6 +290,7 @@ enum {   *	after function notifications   * @resume: Notifies configuration when the host restarts USB traffic,   *	before function notifications + * @gadget_driver: Gadget driver controlling this driver   *   * Devices default to reporting self powered operation.  Devices which rely   * on bus powered operation should report this in their @bind method. diff --git a/include/uapi/linux/acct.h b/include/uapi/linux/acct.h index 11b6ca3e087..df2f9a0bba6 100644 --- a/include/uapi/linux/acct.h +++ b/include/uapi/linux/acct.h @@ -107,10 +107,12 @@ struct acct_v3  #define ACORE		0x08	/* ... dumped core */  #define AXSIG		0x10	/* ... was killed by a signal */ -#ifdef __BIG_ENDIAN +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)  #define ACCT_BYTEORDER	0x80	/* accounting file is big endian */ -#else +#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)  #define ACCT_BYTEORDER	0x00	/* accounting file is little endian */ +#else +#error unspecified endianness  #endif  #ifndef __KERNEL__ diff --git a/include/uapi/linux/aio_abi.h b/include/uapi/linux/aio_abi.h index 86fa7a71336..bb2554f7fbd 100644 --- a/include/uapi/linux/aio_abi.h +++ b/include/uapi/linux/aio_abi.h @@ -62,9 +62,9 @@ struct io_event {  	__s64		res2;		/* secondary result */  }; -#if defined(__LITTLE_ENDIAN) +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)  #define PADDED(x,y)	x, y -#elif defined(__BIG_ENDIAN) +#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)  #define PADDED(x,y)	y, x  #else  #error edit for your odd byteorder. diff --git a/include/uapi/linux/raid/md_p.h b/include/uapi/linux/raid/md_p.h index ee753536ab7..fe1a5406d4d 100644 --- a/include/uapi/linux/raid/md_p.h +++ b/include/uapi/linux/raid/md_p.h @@ -145,16 +145,18 @@ typedef struct mdp_superblock_s {  	__u32 failed_disks;	/*  4 Number of failed disks		      */  	__u32 spare_disks;	/*  5 Number of spare disks		      */  	__u32 sb_csum;		/*  6 checksum of the whole superblock        */ -#ifdef __BIG_ENDIAN +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)  	__u32 events_hi;	/*  7 high-order of superblock update count   */  	__u32 events_lo;	/*  8 low-order of superblock update count    */  	__u32 cp_events_hi;	/*  9 high-order of checkpoint update count   */  	__u32 cp_events_lo;	/* 10 low-order of checkpoint update count    */ -#else +#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)  	__u32 events_lo;	/*  7 low-order of superblock update count    */  	__u32 events_hi;	/*  8 high-order of superblock update count   */  	__u32 cp_events_lo;	/*  9 low-order of checkpoint update count    */  	__u32 cp_events_hi;	/* 10 high-order of checkpoint update count   */ +#else +#error unspecified endianness  #endif  	__u32 recovery_cp;	/* 11 recovery checkpoint sector count	      */  	/* There are only valid for minor_version > 90 */ diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h index b6a23a483d7..74c2bf7211f 100644 --- a/include/uapi/linux/serial_core.h +++ b/include/uapi/linux/serial_core.h @@ -51,7 +51,10 @@  #define PORT_8250_CIR	23	/* CIR infrared port, has its own driver */  #define PORT_XR17V35X	24	/* Exar XR17V35x UARTs */  #define PORT_BRCM_TRUMANAGE	25 -#define PORT_MAX_8250	25	/* max port ID */ +#define PORT_ALTR_16550_F32 26	/* Altera 16550 UART with 32 FIFOs */ +#define PORT_ALTR_16550_F64 27	/* Altera 16550 UART with 64 FIFOs */ +#define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */ +#define PORT_MAX_8250	28	/* max port ID */  /*   * ARM specific type numbers.  These are not currently guaranteed  |