Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (35 commits) Input: add driver for Synaptics I2C touchpad Input: synaptics - add support for reporting x/y resolution Input: ALPS - handle touchpoints buttons correctly Input: gpio-keys - change timer to workqueue Input: ads7846 - pin change interrupt support Input: add support for touchscreen on W90P910 ARM platform Input: appletouch - improve finger detection Input: wacom - clear Intuos4 wheel data when finger leaves proximity Input: ucb1400 - move static function from header into core Input: add driver for EETI touchpanels Input: ads7846 - more detailed model name in sysfs Input: ads7846 - support swapping x and y axes Input: ati_remote2 - use non-atomic bitops Input: introduce lm8323 keypad driver Input: psmouse - ESD workaround fix for OLPC XO touchpad Input: tsc2007 - make sure platform provides get_pendown_state() Input: uinput - flush all pending ff effects before destroying device Input: simplify name handling for certain input handles Input: serio - do not use deprecated dev.power.power_state Input: wacom - add support for Intuos4 tablets ...
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <asm/io.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/device.h>
|
||||
@@ -62,7 +63,7 @@ struct gameport_driver {
|
||||
|
||||
struct device_driver driver;
|
||||
|
||||
unsigned int ignore;
|
||||
bool ignore;
|
||||
};
|
||||
#define to_gameport_driver(d) container_of(d, struct gameport_driver, driver)
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* lm8323.h - Configuration for LM8323 keypad driver.
|
||||
*
|
||||
* 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 (version 2 of the License only).
|
||||
*
|
||||
* 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 __LINUX_LM8323_H
|
||||
#define __LINUX_LM8323_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* Largest keycode that the chip can send, plus one,
|
||||
* so keys can be mapped directly at the index of the
|
||||
* LM8323 keycode instead of subtracting one.
|
||||
*/
|
||||
#define LM8323_KEYMAP_SIZE (0x7f + 1)
|
||||
|
||||
#define LM8323_NUM_PWMS 3
|
||||
|
||||
struct lm8323_platform_data {
|
||||
int debounce_time; /* Time to watch for key bouncing, in ms. */
|
||||
int active_time; /* Idle time until sleep, in ms. */
|
||||
|
||||
int size_x;
|
||||
int size_y;
|
||||
bool repeat;
|
||||
const unsigned short *keymap;
|
||||
|
||||
const char *pwm_names[LM8323_NUM_PWMS];
|
||||
|
||||
const char *name; /* Device name. */
|
||||
};
|
||||
|
||||
#endif /* __LINUX_LM8323_H */
|
||||
@@ -53,6 +53,7 @@ struct input_absinfo {
|
||||
__s32 maximum;
|
||||
__s32 fuzz;
|
||||
__s32 flat;
|
||||
__s32 resolution;
|
||||
};
|
||||
|
||||
#define EVIOCGVERSION _IOR('E', 0x01, int) /* get driver version */
|
||||
@@ -1109,6 +1110,7 @@ struct input_dev {
|
||||
int absmin[ABS_MAX + 1];
|
||||
int absfuzz[ABS_MAX + 1];
|
||||
int absflat[ABS_MAX + 1];
|
||||
int absres[ABS_MAX + 1];
|
||||
|
||||
int (*open)(struct input_dev *dev);
|
||||
void (*close)(struct input_dev *dev);
|
||||
|
||||
@@ -8,6 +8,8 @@ struct rotary_encoder_platform_data {
|
||||
unsigned int gpio_b;
|
||||
unsigned int inverted_a;
|
||||
unsigned int inverted_b;
|
||||
bool relative_axis;
|
||||
bool rollover;
|
||||
};
|
||||
|
||||
#endif /* __ROTARY_ENCODER_H__ */
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/spinlock.h>
|
||||
@@ -28,7 +29,10 @@ struct serio {
|
||||
char name[32];
|
||||
char phys[32];
|
||||
|
||||
unsigned int manual_bind;
|
||||
bool manual_bind;
|
||||
bool registered; /* port has been fully registered with driver core */
|
||||
bool suspended; /* port is suspended */
|
||||
|
||||
|
||||
struct serio_device_id id;
|
||||
|
||||
@@ -47,7 +51,6 @@ struct serio {
|
||||
struct mutex drv_mutex; /* protects serio->drv so attributes can pin driver */
|
||||
|
||||
struct device dev;
|
||||
unsigned int registered; /* port has been fully registered with driver core */
|
||||
|
||||
struct list_head node;
|
||||
};
|
||||
@@ -58,7 +61,7 @@ struct serio_driver {
|
||||
char *description;
|
||||
|
||||
struct serio_device_id *id_table;
|
||||
unsigned int manual_bind;
|
||||
bool manual_bind;
|
||||
|
||||
void (*write_wakeup)(struct serio *);
|
||||
irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int);
|
||||
|
||||
@@ -17,6 +17,7 @@ struct ads7846_platform_data {
|
||||
u16 vref_mv; /* external vref value, milliVolts */
|
||||
bool keep_vref_on; /* set to keep vref on for differential
|
||||
* measurements as well */
|
||||
bool swap_xy; /* swap x and y axes */
|
||||
|
||||
/* Settling time of the analog signals; a function of Vcc and the
|
||||
* capacitance on the X/Y drivers. If set to non-zero, two samples
|
||||
|
||||
+4
-19
@@ -134,28 +134,13 @@ static inline void ucb1400_adc_enable(struct snd_ac97 *ac97)
|
||||
ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA);
|
||||
}
|
||||
|
||||
static unsigned int ucb1400_adc_read(struct snd_ac97 *ac97, u16 adc_channel,
|
||||
int adcsync)
|
||||
{
|
||||
unsigned int val;
|
||||
|
||||
if (adcsync)
|
||||
adc_channel |= UCB_ADC_SYNC_ENA;
|
||||
|
||||
ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA | adc_channel);
|
||||
ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA | adc_channel |
|
||||
UCB_ADC_START);
|
||||
|
||||
while (!((val = ucb1400_reg_read(ac97, UCB_ADC_DATA))
|
||||
& UCB_ADC_DAT_VALID))
|
||||
schedule_timeout_uninterruptible(1);
|
||||
|
||||
return val & UCB_ADC_DAT_MASK;
|
||||
}
|
||||
|
||||
static inline void ucb1400_adc_disable(struct snd_ac97 *ac97)
|
||||
{
|
||||
ucb1400_reg_write(ac97, UCB_ADC_CR, 0);
|
||||
}
|
||||
|
||||
|
||||
unsigned int ucb1400_adc_read(struct snd_ac97 *ac97, u16 adc_channel,
|
||||
int adcsync);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user