Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 3523
b: refs/heads/master
c: 3108d42
h: refs/heads/master
i:
  3521: 419cf3b
  3519: 2c06ab8
v: v3
  • Loading branch information
Dmitry Torokhov committed May 29, 2005
1 parent 9d900ba commit fe8d00b
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 85 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0fbf87caf70acec0c435233fbc39c7bd0aca3ca6
refs/heads/master: 3108d42de4da0823feb37a55db62acdc01554625
8 changes: 1 addition & 7 deletions trunk/drivers/input/mouse/amimouse.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>");
MODULE_DESCRIPTION("Amiga mouse driver");
MODULE_LICENSE("GPL");

static int amimouse_used = 0;
static int amimouse_lastx, amimouse_lasty;
static struct input_dev amimouse_dev;

Expand Down Expand Up @@ -81,16 +80,12 @@ static int amimouse_open(struct input_dev *dev)
{
unsigned short joy0dat;

if (amimouse_used++)
return 0;

joy0dat = custom.joy0dat;

amimouse_lastx = joy0dat & 0xff;
amimouse_lasty = joy0dat >> 8;

if (request_irq(IRQ_AMIGA_VERTB, amimouse_interrupt, 0, "amimouse", amimouse_interrupt)) {
amimouse_used--;
printk(KERN_ERR "amimouse.c: Can't allocate irq %d\n", IRQ_AMIGA_VERTB);
return -EBUSY;
}
Expand All @@ -100,8 +95,7 @@ static int amimouse_open(struct input_dev *dev)

static void amimouse_close(struct input_dev *dev)
{
if (!--amimouse_used)
free_irq(IRQ_AMIGA_VERTB, amimouse_interrupt);
free_irq(IRQ_AMIGA_VERTB, amimouse_interrupt);
}

static int __init amimouse_init(void)
Expand Down
20 changes: 7 additions & 13 deletions trunk/drivers/input/mouse/inport.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,29 +87,23 @@ MODULE_PARM_DESC(irq, "IRQ number (5=default)");

__obsolete_setup("inport_irq=");

static int inport_used;

static irqreturn_t inport_interrupt(int irq, void *dev_id, struct pt_regs *regs);

static int inport_open(struct input_dev *dev)
{
if (!inport_used++) {
if (request_irq(inport_irq, inport_interrupt, 0, "inport", NULL))
return -EBUSY;
outb(INPORT_REG_MODE, INPORT_CONTROL_PORT);
outb(INPORT_MODE_IRQ | INPORT_MODE_BASE, INPORT_DATA_PORT);
}
if (request_irq(inport_irq, inport_interrupt, 0, "inport", NULL))
return -EBUSY;
outb(INPORT_REG_MODE, INPORT_CONTROL_PORT);
outb(INPORT_MODE_IRQ | INPORT_MODE_BASE, INPORT_DATA_PORT);

return 0;
}

static void inport_close(struct input_dev *dev)
{
if (!--inport_used) {
outb(INPORT_REG_MODE, INPORT_CONTROL_PORT);
outb(INPORT_MODE_BASE, INPORT_DATA_PORT);
free_irq(inport_irq, NULL);
}
outb(INPORT_REG_MODE, INPORT_CONTROL_PORT);
outb(INPORT_MODE_BASE, INPORT_DATA_PORT);
free_irq(inport_irq, NULL);
}

static struct input_dev inport_dev = {
Expand Down
7 changes: 0 additions & 7 deletions trunk/drivers/input/mouse/logibm.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,16 +77,11 @@ MODULE_PARM_DESC(irq, "IRQ number (5=default)");

__obsolete_setup("logibm_irq=");

static int logibm_used = 0;

static irqreturn_t logibm_interrupt(int irq, void *dev_id, struct pt_regs *regs);

static int logibm_open(struct input_dev *dev)
{
if (logibm_used++)
return 0;
if (request_irq(logibm_irq, logibm_interrupt, 0, "logibm", NULL)) {
logibm_used--;
printk(KERN_ERR "logibm.c: Can't allocate irq %d\n", logibm_irq);
return -EBUSY;
}
Expand All @@ -96,8 +91,6 @@ static int logibm_open(struct input_dev *dev)

static void logibm_close(struct input_dev *dev)
{
if (--logibm_used)
return;
outb(LOGIBM_DISABLE_IRQ, LOGIBM_CONTROL_PORT);
free_irq(logibm_irq, NULL);
}
Expand Down
73 changes: 22 additions & 51 deletions trunk/drivers/input/mouse/maplemouse.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,91 +15,62 @@
MODULE_AUTHOR("YAEGASHI Takeshi <t@keshi.org>");
MODULE_DESCRIPTION("SEGA Dreamcast mouse driver");

struct dc_mouse {
struct input_dev dev;
int open;
};


static void dc_mouse_callback(struct mapleq *mq)
{
int buttons, relx, rely, relz;
struct maple_device *mapledev = mq->dev;
struct dc_mouse *mouse = mapledev->private_data;
struct input_dev *dev = &mouse->dev;
struct input_dev *dev = mapledev->private_data;
unsigned char *res = mq->recvbuf;

buttons = ~res[8];
relx=*(unsigned short *)(res+12)-512;
rely=*(unsigned short *)(res+14)-512;
relz=*(unsigned short *)(res+16)-512;
relx = *(unsigned short *)(res + 12) - 512;
rely = *(unsigned short *)(res + 14) - 512;
relz = *(unsigned short *)(res + 16) - 512;

input_report_key(dev, BTN_LEFT, buttons&4);
input_report_key(dev, BTN_MIDDLE, buttons&9);
input_report_key(dev, BTN_RIGHT, buttons&2);
input_report_key(dev, BTN_LEFT, buttons & 4);
input_report_key(dev, BTN_MIDDLE, buttons & 9);
input_report_key(dev, BTN_RIGHT, buttons & 2);
input_report_rel(dev, REL_X, relx);
input_report_rel(dev, REL_Y, rely);
input_report_rel(dev, REL_WHEEL, relz);
input_sync(dev);
}


static int dc_mouse_open(struct input_dev *dev)
{
struct dc_mouse *mouse = dev->private;
mouse->open++;
return 0;
}


static void dc_mouse_close(struct input_dev *dev)
{
struct dc_mouse *mouse = dev->private;
mouse->open--;
}


static int dc_mouse_connect(struct maple_device *dev)
{
unsigned long data = be32_to_cpu(dev->devinfo.function_data[0]);
struct dc_mouse *mouse;
struct input_dev *input_dev;

if (!(mouse = kmalloc(sizeof(struct dc_mouse), GFP_KERNEL)))
if (!(input_dev = kmalloc(sizeof(struct input_dev), GFP_KERNEL)))
return -1;
memset(mouse, 0, sizeof(struct dc_mouse));

dev->private_data = mouse;

mouse->dev.evbit[0] = BIT(EV_KEY) | BIT(EV_REL);
mouse->dev.keybit[LONG(BTN_MOUSE)] = BIT(BTN_LEFT) | BIT(BTN_RIGHT) | BIT(BTN_MIDDLE);
mouse->dev.relbit[0] = BIT(REL_X) | BIT(REL_Y) | BIT(REL_WHEEL);

init_input_dev(&mouse->dev);
dev->private_data = input_dev;

mouse->dev.private = mouse;
mouse->dev.open = dc_mouse_open;
mouse->dev.close = dc_mouse_close;
mouse->dev.event = NULL;
memset(input_dev, 0, sizeof(struct dc_mouse));
init_input_dev(input_dev);
input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REL);
input_dev->keybit[LONG(BTN_MOUSE)] = BIT(BTN_LEFT) | BIT(BTN_RIGHT) | BIT(BTN_MIDDLE);
input_dev->relbit[0] = BIT(REL_X) | BIT(REL_Y) | BIT(REL_WHEEL);

mouse->dev.name = dev->product_name;
mouse->dev.id.bustype = BUS_MAPLE;
input_dev->name = dev->product_name;
input_dev->id.bustype = BUS_MAPLE;

input_register_device(&mouse->dev);
input_register_device(input_dev);

maple_getcond_callback(dev, dc_mouse_callback, 1, MAPLE_FUNC_MOUSE);

printk(KERN_INFO "input: mouse(0x%lx): %s\n", data, mouse->dev.name);
printk(KERN_INFO "input: mouse(0x%lx): %s\n", data, input_dev->name);

return 0;
}


static void dc_mouse_disconnect(struct maple_device *dev)
{
struct dc_mouse *mouse = dev->private_data;
struct input_dev *input_dev = dev->private_data;

input_unregister_device(&mouse->dev);
kfree(mouse);
input_unregister_device(input_dev);
kfree(input_dev);
}


Expand Down
7 changes: 1 addition & 6 deletions trunk/drivers/input/mouse/pc110pad.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ static int pc110pad_io = 0x15e0;
static struct input_dev pc110pad_dev;
static int pc110pad_data[3];
static int pc110pad_count;
static int pc110pad_used;

static char *pc110pad_name = "IBM PC110 TouchPad";
static char *pc110pad_phys = "isa15e0/input0";
Expand Down Expand Up @@ -90,15 +89,11 @@ static irqreturn_t pc110pad_interrupt(int irq, void *ptr, struct pt_regs *regs)

static void pc110pad_close(struct input_dev *dev)
{
if (!--pc110pad_used)
outb(PC110PAD_OFF, pc110pad_io + 2);
outb(PC110PAD_OFF, pc110pad_io + 2);
}

static int pc110pad_open(struct input_dev *dev)
{
if (pc110pad_used++)
return 0;

pc110pad_interrupt(0,NULL,NULL);
pc110pad_interrupt(0,NULL,NULL);
pc110pad_interrupt(0,NULL,NULL);
Expand Down

0 comments on commit fe8d00b

Please sign in to comment.