* [lm-sensors] [PATCH] hdaps - switch to using input-polldev
@ 2007-05-25 4:38 Dmitry Torokhov
2007-05-25 11:54 ` Jean Delvare
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Dmitry Torokhov @ 2007-05-25 4:38 UTC (permalink / raw)
To: lm-sensors
Not tested - no hardware...
--
Dmitry
HWMON: hdaps - convert to use input-polldev.
Switch to using input-polldev skeleton instead of implementing
polling loop by itself. This also fixes problem with trylock
on a mutex in atomic context.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---
drivers/hwmon/Kconfig | 1
drivers/hwmon/hdaps.c | 55 +++++++++++++++++++++-----------------------------
2 files changed, 25 insertions(+), 31 deletions(-)
Index: work/drivers/hwmon/Kconfig
=================================--- work.orig/drivers/hwmon/Kconfig
+++ work/drivers/hwmon/Kconfig
@@ -602,6 +602,7 @@ config SENSORS_W83627EHF
config SENSORS_HDAPS
tristate "IBM Hard Drive Active Protection System (hdaps)"
depends on INPUT && X86
+ select INPUT_POLLDEV
default n
help
This driver provides support for the IBM Hard Drive Active Protection
Index: work/drivers/hwmon/hdaps.c
=================================--- work.orig/drivers/hwmon/hdaps.c
+++ work/drivers/hwmon/hdaps.c
@@ -28,7 +28,7 @@
#include <linux/delay.h>
#include <linux/platform_device.h>
-#include <linux/input.h>
+#include <linux/input-polldev.h>
#include <linux/kernel.h>
#include <linux/mutex.h>
#include <linux/module.h>
@@ -61,13 +61,12 @@
#define INIT_TIMEOUT_MSECS 4000 /* wait up to 4s for device init ... */
#define INIT_WAIT_MSECS 200 /* ... in 200ms increments */
-#define HDAPS_POLL_PERIOD (HZ/20) /* poll for input every 1/20s */
+#define HDAPS_POLL_INTERVAL 50 /* poll for input every 1/20s (50 ms)*/
#define HDAPS_INPUT_FUZZ 4 /* input event threshold */
#define HDAPS_INPUT_FLAT 4
-static struct timer_list hdaps_timer;
static struct platform_device *pdev;
-static struct input_dev *hdaps_idev;
+static struct input_polled_dev *hdaps_idev;
static unsigned int hdaps_invert;
static u8 km_activity;
static int rest_x;
@@ -323,24 +322,19 @@ static void hdaps_calibrate(void)
__hdaps_read_pair(HDAPS_PORT_XPOS, HDAPS_PORT_YPOS, &rest_x, &rest_y);
}
-static void hdaps_mousedev_poll(unsigned long unused)
+static void hdaps_mousedev_poll(struct input_polled_dev *dev)
{
+ struct input_dev *input_dev = dev->input;
int x, y;
- /* Cannot sleep. Try nonblockingly. If we fail, try again later. */
- if (mutex_trylock(&hdaps_mtx)) {
- mod_timer(&hdaps_timer,jiffies + HDAPS_POLL_PERIOD);
- return;
- }
+ mutex_lock(&hdaps_mtx);
if (__hdaps_read_pair(HDAPS_PORT_XPOS, HDAPS_PORT_YPOS, &x, &y))
goto out;
- input_report_abs(hdaps_idev, ABS_X, x - rest_x);
- input_report_abs(hdaps_idev, ABS_Y, y - rest_y);
- input_sync(hdaps_idev);
-
- mod_timer(&hdaps_timer, jiffies + HDAPS_POLL_PERIOD);
+ input_report_abs(input_dev, ABS_X, x - rest_x);
+ input_report_abs(input_dev, ABS_Y, y - rest_y);
+ input_sync(input_dev);
out:
mutex_unlock(&hdaps_mtx);
@@ -536,6 +530,7 @@ static struct dmi_system_id __initdata h
static int __init hdaps_init(void)
{
+ struct input_dev *idev;
int ret;
if (!dmi_check_system(hdaps_whitelist)) {
@@ -563,39 +558,37 @@ static int __init hdaps_init(void)
if (ret)
goto out_device;
- hdaps_idev = input_allocate_device();
+ hdaps_idev = input_allocate_polled_device();
if (!hdaps_idev) {
ret = -ENOMEM;
goto out_group;
}
+ hdaps_idev->poll = hdaps_mousedev_poll;
+ hdaps_idev->poll_interval = HDAPS_POLL_INTERVAL;
+
/* initial calibrate for the input device */
hdaps_calibrate();
/* initialize the input class */
- hdaps_idev->name = "hdaps";
- hdaps_idev->dev.parent = &pdev->dev;
- hdaps_idev->evbit[0] = BIT(EV_ABS);
- input_set_abs_params(hdaps_idev, ABS_X,
+ idev = hdaps_idev->input;
+ idev->name = "hdaps";
+ idev->dev.parent = &pdev->dev;
+ idev->evbit[0] = BIT(EV_ABS);
+ input_set_abs_params(idev, ABS_X,
-256, 256, HDAPS_INPUT_FUZZ, HDAPS_INPUT_FLAT);
- input_set_abs_params(hdaps_idev, ABS_Y,
+ input_set_abs_params(idev, ABS_Y,
-256, 256, HDAPS_INPUT_FUZZ, HDAPS_INPUT_FLAT);
- ret = input_register_device(hdaps_idev);
+ ret = input_register_polled_device(hdaps_idev);
if (ret)
goto out_idev;
- /* start up our timer for the input device */
- init_timer(&hdaps_timer);
- hdaps_timer.function = hdaps_mousedev_poll;
- hdaps_timer.expires = jiffies + HDAPS_POLL_PERIOD;
- add_timer(&hdaps_timer);
-
printk(KERN_INFO "hdaps: driver successfully loaded.\n");
return 0;
out_idev:
- input_free_device(hdaps_idev);
+ input_free_polled_device(hdaps_idev);
out_group:
sysfs_remove_group(&pdev->dev.kobj, &hdaps_attribute_group);
out_device:
@@ -611,8 +604,8 @@ out:
static void __exit hdaps_exit(void)
{
- del_timer_sync(&hdaps_timer);
- input_unregister_device(hdaps_idev);
+ input_unregister_polled_device(hdaps_idev);
+ input_free_polled_device(hdaps_idev);
sysfs_remove_group(&pdev->dev.kobj, &hdaps_attribute_group);
platform_device_unregister(pdev);
platform_driver_unregister(&hdaps_driver);
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [lm-sensors] [PATCH] hdaps - switch to using input-polldev
2007-05-25 4:38 [lm-sensors] [PATCH] hdaps - switch to using input-polldev Dmitry Torokhov
@ 2007-05-25 11:54 ` Jean Delvare
2007-05-25 12:33 ` Dmitry Torokhov
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Jean Delvare @ 2007-05-25 11:54 UTC (permalink / raw)
To: lm-sensors
Hi Dmitry,
On Fri, 25 May 2007 00:38:34 -0400, Dmitry Torokhov wrote:
> Not tested - no hardware...
Neither do I. Please send these patches to the maintainers of the
affected drivers, I don't think they are reading the lm-sensors list
(which wasn't the best list for these patches anyway, as they affect
the input functions, not the hardware monitoring functions):
hdaps -> Robert Love
ams -> Stelian Pop
applesmc -> Nicolas Boichat
--
Jean Delvare
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [lm-sensors] [PATCH] hdaps - switch to using input-polldev
2007-05-25 4:38 [lm-sensors] [PATCH] hdaps - switch to using input-polldev Dmitry Torokhov
2007-05-25 11:54 ` Jean Delvare
@ 2007-05-25 12:33 ` Dmitry Torokhov
2007-05-25 21:09 ` Jean Delvare
2007-05-26 0:02 ` Henrique de Moraes Holschuh
3 siblings, 0 replies; 5+ messages in thread
From: Dmitry Torokhov @ 2007-05-25 12:33 UTC (permalink / raw)
To: lm-sensors
Hi Jean,
On 5/25/07, Jean Delvare <khali@linux-fr.org> wrote:
> Hi Dmitry,
>
> On Fri, 25 May 2007 00:38:34 -0400, Dmitry Torokhov wrote:
> > Not tested - no hardware...
>
> Neither do I. Please send these patches to the maintainers of the
> affected drivers, I don't think they are reading the lm-sensors list
> (which wasn't the best list for these patches anyway, as they affect
> the input functions, not the hardware monitoring functions):
What list do you think would suit better? LKML? I doubt they read
linux-input either...
> hdaps -> Robert Love
Will do.
> ams -> Stelian Pop
Check.
> applesmc -> Nicolas Boichat
Check. But for some reason Nicolas always bounces by email. ;(
--
Dmitry
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [lm-sensors] [PATCH] hdaps - switch to using input-polldev
2007-05-25 4:38 [lm-sensors] [PATCH] hdaps - switch to using input-polldev Dmitry Torokhov
2007-05-25 11:54 ` Jean Delvare
2007-05-25 12:33 ` Dmitry Torokhov
@ 2007-05-25 21:09 ` Jean Delvare
2007-05-26 0:02 ` Henrique de Moraes Holschuh
3 siblings, 0 replies; 5+ messages in thread
From: Jean Delvare @ 2007-05-25 21:09 UTC (permalink / raw)
To: lm-sensors
On Fri, 25 May 2007 08:33:07 -0400, Dmitry Torokhov wrote:
> Hi Jean,
>
> On 5/25/07, Jean Delvare <khali@linux-fr.org> wrote:
> > Hi Dmitry,
> >
> > On Fri, 25 May 2007 00:38:34 -0400, Dmitry Torokhov wrote:
> > > Not tested - no hardware...
> >
> > Neither do I. Please send these patches to the maintainers of the
> > affected drivers, I don't think they are reading the lm-sensors list
> > (which wasn't the best list for these patches anyway, as they affect
> > the input functions, not the hardware monitoring functions):
>
> What list do you think would suit better? LKML? I doubt they read
> linux-input either...
I'd say linux-input + Cc to the driver maintainer.
> > hdaps -> Robert Love
>
> Will do.
>
> > ams -> Stelian Pop
>
> Check.
Sorry, I missed that. I stupidly assumed that the other patches were
looking the same as the first one.
> > applesmc -> Nicolas Boichat
>
> Check. But for some reason Nicolas always bounces by email. ;(
Strange, it works for me. I'll forward your post to him to make sure.
--
Jean Delvare
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [lm-sensors] [PATCH] hdaps - switch to using input-polldev
2007-05-25 4:38 [lm-sensors] [PATCH] hdaps - switch to using input-polldev Dmitry Torokhov
` (2 preceding siblings ...)
2007-05-25 21:09 ` Jean Delvare
@ 2007-05-26 0:02 ` Henrique de Moraes Holschuh
3 siblings, 0 replies; 5+ messages in thread
From: Henrique de Moraes Holschuh @ 2007-05-26 0:02 UTC (permalink / raw)
To: lm-sensors
On Fri, 25 May 2007, Dmitry Torokhov wrote:
> What list do you think would suit better? LKML? I doubt they read
> linux-input either...
>
> > hdaps -> Robert Love
>
> Will do.
Also, please send it to hdaps-devel@lists.sourceforge.net.
--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-05-26 0:02 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-25 4:38 [lm-sensors] [PATCH] hdaps - switch to using input-polldev Dmitry Torokhov
2007-05-25 11:54 ` Jean Delvare
2007-05-25 12:33 ` Dmitry Torokhov
2007-05-25 21:09 ` Jean Delvare
2007-05-26 0:02 ` Henrique de Moraes Holschuh
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.