Commit 6fb1b304 authored by Linus Torvalds's avatar Linus Torvalds

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:
  Input: wacom - pass touch resolution to clients through input_absinfo
  Input: wacom - add 2 Bamboo Pen and touch models
  Input: sysrq - ensure sysrq_enabled and __sysrq_enabled are consistent
  Input: sparse-keymap - fix KEY_VSW handling in sparse_keymap_setup
  Input: tegra-kbc - add tegra keyboard driver
  Input: gpio_keys - switch to using request_any_context_irq
  Input: serio - allow registered drivers to get status flag
  Input: ct82710c - return proper error code for ct82c710_open
  Input: bu21013_ts - added regulator support
  Input: bu21013_ts - remove duplicate resolution parameters
  Input: tnetv107x-ts - don't treat NULL clk as an error
  Input: tnetv107x-keypad - don't treat NULL clk as an error

Fix up trivial conflicts in drivers/input/keyboard/Makefile due to
additions of tc3589x/Tegra drivers
parents ac751efa 409550f2
/*
* Platform definitions for tegra-kbc keyboard input driver
*
* Copyright (c) 2010-2011, NVIDIA Corporation.
*
* 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.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef ASMARM_ARCH_TEGRA_KBC_H
#define ASMARM_ARCH_TEGRA_KBC_H
#include <linux/types.h>
#include <linux/input/matrix_keypad.h>
#ifdef CONFIG_ARCH_TEGRA_2x_SOC
#define KBC_MAX_GPIO 24
#define KBC_MAX_KPENT 8
#else
#define KBC_MAX_GPIO 20
#define KBC_MAX_KPENT 7
#endif
#define KBC_MAX_ROW 16
#define KBC_MAX_COL 8
#define KBC_MAX_KEY (KBC_MAX_ROW * KBC_MAX_COL)
struct tegra_kbc_pin_cfg {
bool is_row;
unsigned char num;
};
struct tegra_kbc_wake_key {
u8 row:4;
u8 col:4;
};
struct tegra_kbc_platform_data {
unsigned int debounce_cnt;
unsigned int repeat_cnt;
unsigned int wake_cnt; /* 0:wake on any key >1:wake on wake_cfg */
const struct tegra_kbc_wake_key *wake_cfg;
struct tegra_kbc_pin_cfg pin_cfg[KBC_MAX_GPIO];
const struct matrix_keymap_data *keymap_data;
bool wakeup;
};
#endif
...@@ -343,6 +343,16 @@ config KEYBOARD_NOMADIK ...@@ -343,6 +343,16 @@ config KEYBOARD_NOMADIK
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called nmk-ske-keypad. module will be called nmk-ske-keypad.
config KEYBOARD_TEGRA
tristate "NVIDIA Tegra internal matrix keyboard controller support"
depends on ARCH_TEGRA
help
Say Y here if you want to use a matrix keyboard connected directly
to the internal keyboard controller on Tegra SoCs.
To compile this driver as a module, choose M here: the
module will be called tegra-kbc.
config KEYBOARD_OPENCORES config KEYBOARD_OPENCORES
tristate "OpenCores Keyboard Controller" tristate "OpenCores Keyboard Controller"
help help
......
...@@ -42,6 +42,7 @@ obj-$(CONFIG_KEYBOARD_STMPE) += stmpe-keypad.o ...@@ -42,6 +42,7 @@ obj-$(CONFIG_KEYBOARD_STMPE) += stmpe-keypad.o
obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o
obj-$(CONFIG_KEYBOARD_SUNKBD) += sunkbd.o obj-$(CONFIG_KEYBOARD_SUNKBD) += sunkbd.o
obj-$(CONFIG_KEYBOARD_TC3589X) += tc3589x-keypad.o obj-$(CONFIG_KEYBOARD_TC3589X) += tc3589x-keypad.o
obj-$(CONFIG_KEYBOARD_TEGRA) += tegra-kbc.o
obj-$(CONFIG_KEYBOARD_TNETV107X) += tnetv107x-keypad.o obj-$(CONFIG_KEYBOARD_TNETV107X) += tnetv107x-keypad.o
obj-$(CONFIG_KEYBOARD_TWL4030) += twl4030_keypad.o obj-$(CONFIG_KEYBOARD_TWL4030) += twl4030_keypad.o
obj-$(CONFIG_KEYBOARD_XTKBD) += xtkbd.o obj-$(CONFIG_KEYBOARD_XTKBD) += xtkbd.o
......
...@@ -322,7 +322,7 @@ static void gpio_keys_report_event(struct gpio_button_data *bdata) ...@@ -322,7 +322,7 @@ static void gpio_keys_report_event(struct gpio_button_data *bdata)
struct gpio_keys_button *button = bdata->button; struct gpio_keys_button *button = bdata->button;
struct input_dev *input = bdata->input; struct input_dev *input = bdata->input;
unsigned int type = button->type ?: EV_KEY; unsigned int type = button->type ?: EV_KEY;
int state = (gpio_get_value(button->gpio) ? 1 : 0) ^ button->active_low; int state = (gpio_get_value_cansleep(button->gpio) ? 1 : 0) ^ button->active_low;
input_event(input, type, button->code, !!state); input_event(input, type, button->code, !!state);
input_sync(input); input_sync(input);
...@@ -410,8 +410,8 @@ static int __devinit gpio_keys_setup_key(struct platform_device *pdev, ...@@ -410,8 +410,8 @@ static int __devinit gpio_keys_setup_key(struct platform_device *pdev,
if (!button->can_disable) if (!button->can_disable)
irqflags |= IRQF_SHARED; irqflags |= IRQF_SHARED;
error = request_irq(irq, gpio_keys_isr, irqflags, desc, bdata); error = request_any_context_irq(irq, gpio_keys_isr, irqflags, desc, bdata);
if (error) { if (error < 0) {
dev_err(dev, "Unable to claim irq %d; error %d\n", dev_err(dev, "Unable to claim irq %d; error %d\n",
irq, error); irq, error);
goto fail3; goto fail3;
......
This diff is collapsed.
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/err.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
...@@ -219,9 +220,9 @@ static int __devinit keypad_probe(struct platform_device *pdev) ...@@ -219,9 +220,9 @@ static int __devinit keypad_probe(struct platform_device *pdev)
} }
kp->clk = clk_get(dev, NULL); kp->clk = clk_get(dev, NULL);
if (!kp->clk) { if (IS_ERR(kp->clk)) {
dev_err(dev, "cannot claim device clock\n"); dev_err(dev, "cannot claim device clock\n");
error = -EINVAL; error = PTR_ERR(kp->clk);
goto error_clk; goto error_clk;
} }
......
...@@ -111,9 +111,11 @@ static void ct82c710_close(struct serio *serio) ...@@ -111,9 +111,11 @@ static void ct82c710_close(struct serio *serio)
static int ct82c710_open(struct serio *serio) static int ct82c710_open(struct serio *serio)
{ {
unsigned char status; unsigned char status;
int err;
if (request_irq(CT82C710_IRQ, ct82c710_interrupt, 0, "ct82c710", NULL)) err = request_irq(CT82C710_IRQ, ct82c710_interrupt, 0, "ct82c710", NULL);
return -1; if (err)
return err;
status = inb_p(CT82C710_STATUS); status = inb_p(CT82C710_STATUS);
...@@ -131,7 +133,7 @@ static int ct82c710_open(struct serio *serio) ...@@ -131,7 +133,7 @@ static int ct82c710_open(struct serio *serio)
status &= ~(CT82C710_ENABLE | CT82C710_INTS_ON); status &= ~(CT82C710_ENABLE | CT82C710_INTS_ON);
outb_p(status, CT82C710_STATUS); outb_p(status, CT82C710_STATUS);
free_irq(CT82C710_IRQ, NULL); free_irq(CT82C710_IRQ, NULL);
return -1; return -EBUSY;
} }
return 0; return 0;
......
...@@ -116,14 +116,15 @@ static void serport_ldisc_close(struct tty_struct *tty) ...@@ -116,14 +116,15 @@ static void serport_ldisc_close(struct tty_struct *tty)
/* /*
* serport_ldisc_receive() is called by the low level tty driver when characters * serport_ldisc_receive() is called by the low level tty driver when characters
* are ready for us. We forward the characters, one by one to the 'interrupt' * are ready for us. We forward the characters and flags, one by one to the
* routine. * 'interrupt' routine.
*/ */
static void serport_ldisc_receive(struct tty_struct *tty, const unsigned char *cp, char *fp, int count) static void serport_ldisc_receive(struct tty_struct *tty, const unsigned char *cp, char *fp, int count)
{ {
struct serport *serport = (struct serport*) tty->disc_data; struct serport *serport = (struct serport*) tty->disc_data;
unsigned long flags; unsigned long flags;
unsigned int ch_flags;
int i; int i;
spin_lock_irqsave(&serport->lock, flags); spin_lock_irqsave(&serport->lock, flags);
...@@ -131,8 +132,23 @@ static void serport_ldisc_receive(struct tty_struct *tty, const unsigned char *c ...@@ -131,8 +132,23 @@ static void serport_ldisc_receive(struct tty_struct *tty, const unsigned char *c
if (!test_bit(SERPORT_ACTIVE, &serport->flags)) if (!test_bit(SERPORT_ACTIVE, &serport->flags))
goto out; goto out;
for (i = 0; i < count; i++) for (i = 0; i < count; i++) {
serio_interrupt(serport->serio, cp[i], 0); switch (fp[i]) {
case TTY_FRAME:
ch_flags = SERIO_FRAME;
break;
case TTY_PARITY:
ch_flags = SERIO_PARITY;
break;
default:
ch_flags = 0;
break;
}
serio_interrupt(serport->serio, cp[i], ch_flags);
}
out: out:
spin_unlock_irqrestore(&serport->lock, flags); spin_unlock_irqrestore(&serport->lock, flags);
......
...@@ -201,6 +201,7 @@ int sparse_keymap_setup(struct input_dev *dev, ...@@ -201,6 +201,7 @@ int sparse_keymap_setup(struct input_dev *dev,
break; break;
case KE_SW: case KE_SW:
case KE_VSW:
__set_bit(EV_SW, dev->evbit); __set_bit(EV_SW, dev->evbit);
__set_bit(entry->sw.code, dev->swbit); __set_bit(entry->sw.code, dev->swbit);
break; break;
......
...@@ -1101,6 +1101,13 @@ void wacom_setup_device_quirks(struct wacom_features *features) ...@@ -1101,6 +1101,13 @@ void wacom_setup_device_quirks(struct wacom_features *features)
} }
} }
static unsigned int wacom_calculate_touch_res(unsigned int logical_max,
unsigned int physical_max)
{
/* Touch physical dimensions are in 100th of mm */
return (logical_max * 100) / physical_max;
}
void wacom_setup_input_capabilities(struct input_dev *input_dev, void wacom_setup_input_capabilities(struct input_dev *input_dev,
struct wacom_wac *wacom_wac) struct wacom_wac *wacom_wac)
{ {
...@@ -1228,8 +1235,12 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev, ...@@ -1228,8 +1235,12 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
case TABLETPC: case TABLETPC:
if (features->device_type == BTN_TOOL_DOUBLETAP || if (features->device_type == BTN_TOOL_DOUBLETAP ||
features->device_type == BTN_TOOL_TRIPLETAP) { features->device_type == BTN_TOOL_TRIPLETAP) {
input_set_abs_params(input_dev, ABS_RX, 0, features->x_phy, 0, 0); input_abs_set_res(input_dev, ABS_X,
input_set_abs_params(input_dev, ABS_RY, 0, features->y_phy, 0, 0); wacom_calculate_touch_res(features->x_max,
features->x_phy));
input_abs_set_res(input_dev, ABS_Y,
wacom_calculate_touch_res(features->y_max,
features->y_phy));
__set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit); __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
} }
...@@ -1272,6 +1283,12 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev, ...@@ -1272,6 +1283,12 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
input_set_abs_params(input_dev, ABS_MT_PRESSURE, input_set_abs_params(input_dev, ABS_MT_PRESSURE,
0, features->pressure_max, 0, features->pressure_max,
features->pressure_fuzz, 0); features->pressure_fuzz, 0);
input_abs_set_res(input_dev, ABS_X,
wacom_calculate_touch_res(features->x_max,
features->x_phy));
input_abs_set_res(input_dev, ABS_Y,
wacom_calculate_touch_res(features->y_max,
features->y_phy));
} else if (features->device_type == BTN_TOOL_PEN) { } else if (features->device_type == BTN_TOOL_PEN) {
__set_bit(BTN_TOOL_RUBBER, input_dev->keybit); __set_bit(BTN_TOOL_RUBBER, input_dev->keybit);
__set_bit(BTN_TOOL_PEN, input_dev->keybit); __set_bit(BTN_TOOL_PEN, input_dev->keybit);
...@@ -1426,6 +1443,10 @@ static struct wacom_features wacom_features_0xD3 = ...@@ -1426,6 +1443,10 @@ static struct wacom_features wacom_features_0xD3 =
{ "Wacom Bamboo 2FG 6x8", WACOM_PKGLEN_BBFUN, 21648, 13530, 1023, 63, BAMBOO_PT }; { "Wacom Bamboo 2FG 6x8", WACOM_PKGLEN_BBFUN, 21648, 13530, 1023, 63, BAMBOO_PT };
static const struct wacom_features wacom_features_0xD4 = static const struct wacom_features wacom_features_0xD4 =
{ "Wacom Bamboo Pen", WACOM_PKGLEN_BBFUN, 14720, 9200, 255, 63, BAMBOO_PT }; { "Wacom Bamboo Pen", WACOM_PKGLEN_BBFUN, 14720, 9200, 255, 63, BAMBOO_PT };
static struct wacom_features wacom_features_0xD6 =
{ "Wacom BambooPT 2FG 4x5", WACOM_PKGLEN_BBFUN, 14720, 9200, 1023, 63, BAMBOO_PT };
static struct wacom_features wacom_features_0xD7 =
{ "Wacom BambooPT 2FG Small", WACOM_PKGLEN_BBFUN, 14720, 9200, 1023, 63, BAMBOO_PT };
static struct wacom_features wacom_features_0xD8 = static struct wacom_features wacom_features_0xD8 =
{ "Wacom Bamboo Comic 2FG", WACOM_PKGLEN_BBFUN, 21648, 13530, 1023, 63, BAMBOO_PT }; { "Wacom Bamboo Comic 2FG", WACOM_PKGLEN_BBFUN, 21648, 13530, 1023, 63, BAMBOO_PT };
static struct wacom_features wacom_features_0xDA = static struct wacom_features wacom_features_0xDA =
...@@ -1507,6 +1528,8 @@ const struct usb_device_id wacom_ids[] = { ...@@ -1507,6 +1528,8 @@ const struct usb_device_id wacom_ids[] = {
{ USB_DEVICE_WACOM(0xD2) }, { USB_DEVICE_WACOM(0xD2) },
{ USB_DEVICE_WACOM(0xD3) }, { USB_DEVICE_WACOM(0xD3) },
{ USB_DEVICE_WACOM(0xD4) }, { USB_DEVICE_WACOM(0xD4) },
{ USB_DEVICE_WACOM(0xD6) },
{ USB_DEVICE_WACOM(0xD7) },
{ USB_DEVICE_WACOM(0xD8) }, { USB_DEVICE_WACOM(0xD8) },
{ USB_DEVICE_WACOM(0xDA) }, { USB_DEVICE_WACOM(0xDA) },
{ USB_DEVICE_WACOM(0xDB) }, { USB_DEVICE_WACOM(0xDB) },
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/input/bu21013.h> #include <linux/input/bu21013.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/regulator/consumer.h>
#define PEN_DOWN_INTR 0 #define PEN_DOWN_INTR 0
#define MAX_FINGERS 2 #define MAX_FINGERS 2
...@@ -139,6 +140,7 @@ ...@@ -139,6 +140,7 @@
* @chip: pointer to the touch panel controller * @chip: pointer to the touch panel controller
* @in_dev: pointer to the input device structure * @in_dev: pointer to the input device structure
* @intr_pin: interrupt pin value * @intr_pin: interrupt pin value
* @regulator: pointer to the Regulator used for touch screen
* *
* Touch panel device data structure * Touch panel device data structure
*/ */
...@@ -149,6 +151,7 @@ struct bu21013_ts_data { ...@@ -149,6 +151,7 @@ struct bu21013_ts_data {
const struct bu21013_platform_device *chip; const struct bu21013_platform_device *chip;
struct input_dev *in_dev; struct input_dev *in_dev;
unsigned int intr_pin; unsigned int intr_pin;
struct regulator *regulator;
}; };
/** /**
...@@ -456,6 +459,20 @@ static int __devinit bu21013_probe(struct i2c_client *client, ...@@ -456,6 +459,20 @@ static int __devinit bu21013_probe(struct i2c_client *client,
bu21013_data->in_dev = in_dev; bu21013_data->in_dev = in_dev;
bu21013_data->chip = pdata; bu21013_data->chip = pdata;
bu21013_data->client = client; bu21013_data->client = client;
bu21013_data->regulator = regulator_get(&client->dev, "V-TOUCH");
if (IS_ERR(bu21013_data->regulator)) {
dev_err(&client->dev, "regulator_get failed\n");
error = PTR_ERR(bu21013_data->regulator);
goto err_free_mem;
}
error = regulator_enable(bu21013_data->regulator);
if (error < 0) {
dev_err(&client->dev, "regulator enable failed\n");
goto err_put_regulator;
}
bu21013_data->touch_stopped = false; bu21013_data->touch_stopped = false;
init_waitqueue_head(&bu21013_data->wait); init_waitqueue_head(&bu21013_data->wait);
...@@ -464,7 +481,7 @@ static int __devinit bu21013_probe(struct i2c_client *client, ...@@ -464,7 +481,7 @@ static int __devinit bu21013_probe(struct i2c_client *client,
error = pdata->cs_en(pdata->cs_pin); error = pdata->cs_en(pdata->cs_pin);
if (error < 0) { if (error < 0) {
dev_err(&client->dev, "chip init failed\n"); dev_err(&client->dev, "chip init failed\n");
goto err_free_mem; goto err_disable_regulator;
} }
} }
...@@ -485,9 +502,9 @@ static int __devinit bu21013_probe(struct i2c_client *client, ...@@ -485,9 +502,9 @@ static int __devinit bu21013_probe(struct i2c_client *client,
__set_bit(EV_ABS, in_dev->evbit); __set_bit(EV_ABS, in_dev->evbit);
input_set_abs_params(in_dev, ABS_MT_POSITION_X, 0, input_set_abs_params(in_dev, ABS_MT_POSITION_X, 0,
pdata->x_max_res, 0, 0); pdata->touch_x_max, 0, 0);
input_set_abs_params(in_dev, ABS_MT_POSITION_Y, 0, input_set_abs_params(in_dev, ABS_MT_POSITION_Y, 0,
pdata->y_max_res, 0, 0); pdata->touch_y_max, 0, 0);
input_set_drvdata(in_dev, bu21013_data); input_set_drvdata(in_dev, bu21013_data);
error = request_threaded_irq(pdata->irq, NULL, bu21013_gpio_irq, error = request_threaded_irq(pdata->irq, NULL, bu21013_gpio_irq,
...@@ -513,6 +530,10 @@ static int __devinit bu21013_probe(struct i2c_client *client, ...@@ -513,6 +530,10 @@ static int __devinit bu21013_probe(struct i2c_client *client,
bu21013_free_irq(bu21013_data); bu21013_free_irq(bu21013_data);
err_cs_disable: err_cs_disable:
pdata->cs_dis(pdata->cs_pin); pdata->cs_dis(pdata->cs_pin);
err_disable_regulator:
regulator_disable(bu21013_data->regulator);
err_put_regulator:
regulator_put(bu21013_data->regulator);
err_free_mem: err_free_mem:
input_free_device(in_dev); input_free_device(in_dev);
kfree(bu21013_data); kfree(bu21013_data);
...@@ -535,6 +556,10 @@ static int __devexit bu21013_remove(struct i2c_client *client) ...@@ -535,6 +556,10 @@ static int __devexit bu21013_remove(struct i2c_client *client)
bu21013_data->chip->cs_dis(bu21013_data->chip->cs_pin); bu21013_data->chip->cs_dis(bu21013_data->chip->cs_pin);
input_unregister_device(bu21013_data->in_dev); input_unregister_device(bu21013_data->in_dev);
regulator_disable(bu21013_data->regulator);
regulator_put(bu21013_data->regulator);
kfree(bu21013_data); kfree(bu21013_data);
device_init_wakeup(&client->dev, false); device_init_wakeup(&client->dev, false);
...@@ -561,6 +586,8 @@ static int bu21013_suspend(struct device *dev) ...@@ -561,6 +586,8 @@ static int bu21013_suspend(struct device *dev)
else else
disable_irq(bu21013_data->chip->irq); disable_irq(bu21013_data->chip->irq);
regulator_disable(bu21013_data->regulator);
return 0; return 0;
} }
...@@ -577,6 +604,12 @@ static int bu21013_resume(struct device *dev) ...@@ -577,6 +604,12 @@ static int bu21013_resume(struct device *dev)
struct i2c_client *client = bu21013_data->client; struct i2c_client *client = bu21013_data->client;
int retval; int retval;
retval = regulator_enable(bu21013_data->regulator);
if (retval < 0) {
dev_err(&client->dev, "bu21013 regulator enable failed\n");
return retval;
}
retval = bu21013_init_chip(bu21013_data); retval = bu21013_init_chip(bu21013_data);
if (retval < 0) { if (retval < 0) {
dev_err(&client->dev, "bu21013 controller config failed\n"); dev_err(&client->dev, "bu21013 controller config failed\n");
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/err.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
...@@ -289,9 +290,9 @@ static int __devinit tsc_probe(struct platform_device *pdev) ...@@ -289,9 +290,9 @@ static int __devinit tsc_probe(struct platform_device *pdev)
} }
ts->clk = clk_get(dev, NULL); ts->clk = clk_get(dev, NULL);
if (!ts->clk) { if (IS_ERR(ts->clk)) {
dev_err(dev, "cannot claim device clock\n"); dev_err(dev, "cannot claim device clock\n");
error = -EINVAL; error = PTR_ERR(ts->clk);
goto error_clk; goto error_clk;
} }
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
#include <asm/irq_regs.h> #include <asm/irq_regs.h>
/* Whether we react on sysrq keys or just ignore them */ /* Whether we react on sysrq keys or just ignore them */
static int __read_mostly sysrq_enabled = 1; static int __read_mostly sysrq_enabled = SYSRQ_DEFAULT_ENABLE;
static bool __read_mostly sysrq_always_enabled; static bool __read_mostly sysrq_always_enabled;
static bool sysrq_on(void) static bool sysrq_on(void)
......
...@@ -12,8 +12,6 @@ ...@@ -12,8 +12,6 @@
* @cs_en: pointer to the cs enable function * @cs_en: pointer to the cs enable function
* @cs_dis: pointer to the cs disable function * @cs_dis: pointer to the cs disable function
* @irq_read_val: pointer to read the pen irq value function * @irq_read_val: pointer to read the pen irq value function
* @x_max_res: xmax resolution
* @y_max_res: ymax resolution
* @touch_x_max: touch x max * @touch_x_max: touch x max
* @touch_y_max: touch y max * @touch_y_max: touch y max
* @cs_pin: chip select pin * @cs_pin: chip select pin
...@@ -29,8 +27,6 @@ struct bu21013_platform_device { ...@@ -29,8 +27,6 @@ struct bu21013_platform_device {
int (*cs_en)(int reset_pin); int (*cs_en)(int reset_pin);
int (*cs_dis)(int reset_pin); int (*cs_dis)(int reset_pin);
int (*irq_read_val)(void); int (*irq_read_val)(void);
int x_max_res;
int y_max_res;
int touch_x_max; int touch_x_max;
int touch_y_max; int touch_y_max;
unsigned int cs_pin; unsigned int cs_pin;
......
...@@ -17,6 +17,9 @@ ...@@ -17,6 +17,9 @@
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/types.h> #include <linux/types.h>
/* Enable/disable SYSRQ support by default (0==no, 1==yes). */
#define SYSRQ_DEFAULT_ENABLE 1
/* Possible values of bitmask for enabling sysrq functions */ /* Possible values of bitmask for enabling sysrq functions */
/* 0x0001 is reserved for enable everything */ /* 0x0001 is reserved for enable everything */
#define SYSRQ_ENABLE_LOG 0x0002 #define SYSRQ_ENABLE_LOG 0x0002
......
...@@ -170,7 +170,8 @@ static int proc_taint(struct ctl_table *table, int write, ...@@ -170,7 +170,8 @@ static int proc_taint(struct ctl_table *table, int write,
#endif #endif
#ifdef CONFIG_MAGIC_SYSRQ #ifdef CONFIG_MAGIC_SYSRQ
static int __sysrq_enabled; /* Note: sysrq code ises it's own private copy */ /* Note: sysrq code uses it's own private copy */
static int __sysrq_enabled = SYSRQ_DEFAULT_ENABLE;
static int sysrq_sysctl_handler(ctl_table *table, int write, static int sysrq_sysctl_handler(ctl_table *table, int write,
void __user *buffer, size_t *lenp, void __user *buffer, size_t *lenp,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment