Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 144196
b: refs/heads/master
c: 6b34808
h: refs/heads/master
v: v3
  • Loading branch information
Adrian McMenamin authored and Paul Mundt committed Apr 27, 2009
1 parent 4db0749 commit 6bbdfc7
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 21 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: 40f4a6d522e68a0203ebefb57f3cbdac4a622169
refs/heads/master: 6b3480855aad6e22ca90981a4c7893a7f41ffb47
43 changes: 23 additions & 20 deletions trunk/drivers/input/mouse/maplemouse.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* SEGA Dreamcast mouse driver
* Based on drivers/usb/usbmouse.c
*
* Copyright Yaegashi Takeshi, 2001
* Adrian McMenamin, 2008
* Copyright (c) Yaegashi Takeshi, 2001
* Copyright (c) Adrian McMenamin, 2008 - 2009
*/

#include <linux/kernel.h>
Expand All @@ -29,7 +29,7 @@ static void dc_mouse_callback(struct mapleq *mq)
struct maple_device *mapledev = mq->dev;
struct dc_mouse *mse = maple_get_drvdata(mapledev);
struct input_dev *dev = mse->dev;
unsigned char *res = mq->recvbuf;
unsigned char *res = mq->recvbuf->buf;

buttons = ~res[8];
relx = *(unsigned short *)(res + 12) - 512;
Expand All @@ -47,7 +47,7 @@ static void dc_mouse_callback(struct mapleq *mq)

static int dc_mouse_open(struct input_dev *dev)
{
struct dc_mouse *mse = dev->dev.platform_data;
struct dc_mouse *mse = maple_get_drvdata(to_maple_dev(&dev->dev));

maple_getcond_callback(mse->mdev, dc_mouse_callback, HZ/50,
MAPLE_FUNC_MOUSE);
Expand All @@ -57,29 +57,33 @@ static int dc_mouse_open(struct input_dev *dev)

static void dc_mouse_close(struct input_dev *dev)
{
struct dc_mouse *mse = dev->dev.platform_data;
struct dc_mouse *mse = maple_get_drvdata(to_maple_dev(&dev->dev));

maple_getcond_callback(mse->mdev, dc_mouse_callback, 0,
MAPLE_FUNC_MOUSE);
}


/* allow the mouse to be used */
static int __devinit probe_maple_mouse(struct device *dev)
{
struct maple_device *mdev = to_maple_dev(dev);
struct maple_driver *mdrv = to_maple_driver(dev->driver);
int error;
struct input_dev *input_dev;
struct dc_mouse *mse;
int error;

mse = kzalloc(sizeof(struct dc_mouse), GFP_KERNEL);
input_dev = input_allocate_device();

if (!mse || !input_dev) {
if (!mse) {
error = -ENOMEM;
goto fail;
}

input_dev = input_allocate_device();
if (!input_dev) {
error = -ENOMEM;
goto fail_nomem;
}

mse->dev = input_dev;
mse->mdev = mdev;

Expand All @@ -89,25 +93,24 @@ static int __devinit probe_maple_mouse(struct device *dev)
BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE);
input_dev->relbit[0] = BIT_MASK(REL_X) | BIT_MASK(REL_Y) |
BIT_MASK(REL_WHEEL);
input_dev->name = mdev->product_name;
input_dev->id.bustype = BUS_HOST;
input_dev->open = dc_mouse_open;
input_dev->close = dc_mouse_close;
input_dev->name = mdev->product_name;
input_dev->id.bustype = BUS_HOST;
error = input_register_device(input_dev);
if (error)
goto fail_register;

mdev->driver = mdrv;
maple_set_drvdata(mdev, mse);

error = input_register_device(input_dev);
if (error)
goto fail;

return 0;
return error;

fail:
fail_register:
input_free_device(input_dev);
maple_set_drvdata(mdev, NULL);
fail_nomem:
kfree(mse);
mdev->driver = NULL;
fail:
return error;
}

Expand Down

0 comments on commit 6bbdfc7

Please sign in to comment.