summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/input/keyboard/maple_keyb.c15
-rw-r--r--drivers/sh/maple/maple.c1
-rw-r--r--include/linux/maple.h4
3 files changed, 12 insertions, 8 deletions
diff --git a/drivers/input/keyboard/maple_keyb.c b/drivers/input/keyboard/maple_keyb.c
index 3f5151a0fd15..22f17a593be7 100644
--- a/drivers/input/keyboard/maple_keyb.c
+++ b/drivers/input/keyboard/maple_keyb.c
@@ -139,7 +139,7 @@ static void dc_scan_kbd(struct dc_kbd *kbd)
static void dc_kbd_callback(struct mapleq *mq)
{
struct maple_device *mapledev = mq->dev;
- struct dc_kbd *kbd = mapledev->private_data;
+ struct dc_kbd *kbd = maple_get_drvdata(mapledev);
unsigned long *buf = mq->recvbuf;
/*
@@ -175,8 +175,6 @@ static int probe_maple_kbd(struct device *dev)
goto fail;
}
- mdev->private_data = kbd;
-
kbd->dev = idev;
memcpy(kbd->keycode, dc_kbd_keycode, sizeof(kbd->keycode));
@@ -204,27 +202,30 @@ static int probe_maple_kbd(struct device *dev)
MAPLE_FUNC_KEYBOARD);
mdev->driver = mdrv;
+
+ maple_set_drvdata(mdev, kbd);
+
return error;
fail:
input_free_device(idev);
kfree(kbd);
- mdev->private_data = NULL;
+ maple_set_drvdata(mdev, NULL);
return error;
}
static int remove_maple_kbd(struct device *dev)
{
struct maple_device *mdev = to_maple_dev(dev);
- struct dc_kbd *kbd;
+ struct dc_kbd *kbd = maple_get_drvdata(mdev);
mutex_lock(&maple_keyb_mutex);
- kbd = mdev->private_data;
- mdev->private_data = NULL;
input_unregister_device(kbd->dev);
kfree(kbd);
+ maple_set_drvdata(mdev, NULL);
+
mutex_unlock(&maple_keyb_mutex);
return 0;
}
diff --git a/drivers/sh/maple/maple.c b/drivers/sh/maple/maple.c
index a6b4dc3cfcba..be77a39f224c 100644
--- a/drivers/sh/maple/maple.c
+++ b/drivers/sh/maple/maple.c
@@ -94,6 +94,7 @@ void maple_driver_unregister(struct maple_driver *drv)
{
driver_unregister(&drv->drv);
}
+EXPORT_SYMBOL_GPL(maple_driver_unregister);
/* set hardware registers to enable next round of dma */
static void maplebus_dma_reset(void)
diff --git a/include/linux/maple.h b/include/linux/maple.h
index b2b7ce0fb1f7..c23d3f51ba40 100644
--- a/include/linux/maple.h
+++ b/include/linux/maple.h
@@ -51,7 +51,6 @@ struct maple_devinfo {
struct maple_device {
struct maple_driver *driver;
struct mapleq *mq;
- void *private_data;
void (*callback) (struct mapleq * mq);
unsigned long when, interval, function;
struct maple_devinfo devinfo;
@@ -80,4 +79,7 @@ void maple_clear_dev(struct maple_device *mdev);
#define to_maple_dev(n) container_of(n, struct maple_device, dev)
#define to_maple_driver(n) container_of(n, struct maple_driver, drv)
+#define maple_get_drvdata(d) dev_get_drvdata(&(d)->dev)
+#define maple_set_drvdata(d,p) dev_set_drvdata(&(d)->dev, (p))
+
#endif /* __LINUX_MAPLE_H */