From: Shem Multinymous <multinymous@gmail.com>
To: Robert Love <rlove@rlove.org>
Cc: Jean Delvare <khali@linux-fr.org>,
Greg Kroah-Hartman <gregkh@suse.de>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
linux-kernel@vger.kernel.org, hdaps-devel@lists.sourceforge.net
Subject: [PATCH 07/12] hdaps: delay calibration to first hardware query
Date: Sun, 06 Aug 2006 10:26:52 +0300 [thread overview]
Message-ID: <11548492753662-git-send-email-multinymous@gmail.com> (raw)
In-Reply-To: <11548492171301-git-send-email-multinymous@gmail.com>
The hdaps driver currently calibrates its rest position upon
initialization, which can take several seconds on first module load
(and delays the boot process accordingly). This patch delays
calibration to the first successful hardware query, when the
information is available anyway. Writes to the "calibrate" sysfs
attribute are handled likewise.
Signed-off-by: Shem Multinymous <multinymous@gmail.com>
---
hdaps.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff -up a/drivers/hwmon/hdaps.c a/drivers/hwmon/hdaps.c
--- a/drivers/hwmon/hdaps.c
+++ a/drivers/hwmon/hdaps.c
@@ -66,6 +66,7 @@ static struct timer_list hdaps_timer;
static struct platform_device *pdev;
static struct input_dev *hdaps_idev;
static unsigned int hdaps_invert;
+static int needs_calibration = 0;
/* Latest state readout: */
static int pos_x, pos_y; /* position */
@@ -125,6 +126,11 @@ static int __hdaps_update(int fast)
temperature = data.val[EC_ACCEL_IDX_TEMP1];
stale_readout = 0;
+ if (needs_calibration) {
+ rest_x = pos_x;
+ rest_y = pos_y;
+ needs_calibration = 0;
+ }
return 0;
}
@@ -270,9 +276,9 @@ static struct platform_driver hdaps_driv
*/
static void hdaps_calibrate(void)
{
+ needs_calibration = 1;
hdaps_update();
- rest_x = pos_x;
- rest_y = pos_y;
+ /* If that fails, the mousedev poll will take care of things later. */
}
/* Timer handler for updating the input device. Runs in softirq context,
@@ -502,8 +508,8 @@ static int __init hdaps_init(void)
goto out_group;
}
- /* initial calibrate for the input device */
- hdaps_calibrate();
+ /* calibration for the input device (deferred to avoid delay) */
+ needs_calibration = 1;
/* initialize the input class */
hdaps_idev->name = "hdaps";
next prev parent reply other threads:[~2006-08-06 7:33 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-06 7:26 [PATCH 00/12] ThinkPad embedded controller and hdaps drivers Shem Multinymous
2006-08-06 7:26 ` [PATCH 01/12] thinkpad_ec: New driver for ThinkPad embedded controller access Shem Multinymous
2006-08-06 7:56 ` Andrew Morton
2006-08-06 9:56 ` Shem Multinymous
2006-08-06 10:07 ` Andrew Morton
2006-08-06 10:44 ` Shem Multinymous
2006-08-06 14:55 ` Theodore Tso
2006-08-06 16:40 ` Olaf Hering
2006-08-06 16:55 ` Willy Tarreau
2006-08-06 18:40 ` Andrew Morton
2006-08-06 22:31 ` Shem Multinymous
2006-08-06 22:08 ` Shem Multinymous
2006-08-07 0:56 ` [Hdaps-devel] " Shawn Starr
2006-08-07 3:40 ` Theodore Tso
2006-08-06 18:53 ` Arjan van de Ven
2006-08-06 22:41 ` Shem Multinymous
2006-08-06 22:56 ` Greg KH
2006-08-06 23:13 ` Arjan van de Ven
2006-08-07 13:26 ` Pavel Machek
2006-08-07 19:23 ` Andrew Morton
2006-08-07 23:20 ` Pavel Machek
2006-08-07 13:47 ` Pavel Machek
2006-08-07 13:44 ` Pavel Machek
2006-08-07 15:13 ` Shem Multinymous
2006-08-07 16:27 ` Björn Steinbrink
2006-08-07 16:41 ` Shem Multinymous
2006-08-07 16:54 ` Björn Steinbrink
2006-08-07 23:17 ` Pavel Machek
2006-08-07 23:15 ` Pavel Machek
2006-08-07 23:23 ` Greg KH
2006-08-07 23:25 ` Pavel Machek
2006-08-07 23:29 ` Greg KH
2006-08-07 23:37 ` [PATCH] pr_debug() should not be used in drivers Pavel Machek
2006-08-08 9:44 ` [PATCH 01/12] thinkpad_ec: New driver for ThinkPad embedded controller access Shem Multinymous
2006-08-08 9:23 ` Shem Multinymous
2006-08-08 9:39 ` Pavel Machek
2006-08-07 23:39 ` Randy.Dunlap
2006-08-06 7:26 ` [PATCH 02/12] hdaps: Use thinkpad_ec instead of direct port access Shem Multinymous
2006-08-07 13:55 ` Pavel Machek
2006-08-07 15:40 ` Shem Multinymous
2006-08-07 23:22 ` Pavel Machek
2006-08-06 7:26 ` [PATCH 03/12] hdaps: Unify and cache hdaps readouts Shem Multinymous
2006-08-07 14:02 ` Pavel Machek
2006-08-07 16:14 ` Shem Multinymous
2006-08-07 23:24 ` Pavel Machek
2006-08-08 9:16 ` Shem Multinymous
2006-08-08 9:21 ` Pavel Machek
2006-08-08 10:06 ` Shem Multinymous
2006-08-08 10:09 ` Pavel Machek
2006-08-06 7:26 ` [PATCH 04/12] hdaps: Correct readout and remove nonsensical attributes Shem Multinymous
2006-08-07 14:07 ` Pavel Machek
2006-08-07 16:30 ` Shem Multinymous
2006-08-07 18:20 ` Björn Steinbrink
2006-08-07 23:30 ` timeout nonsense [was Re: [PATCH 04/12] hdaps: Correct readout and remove nonsensical attributes] Pavel Machek
2006-08-08 12:22 ` [PATCH 04/12] hdaps: Correct readout and remove nonsensical attributes Muli Ben-Yehuda
2006-08-08 12:56 ` Pavel Machek
2006-08-08 13:17 ` Muli Ben-Yehuda
2006-08-08 13:35 ` Shem Multinymous
2006-08-08 13:43 ` Muli Ben-Yehuda
2006-08-08 14:53 ` Shem Multinymous
2006-08-08 15:19 ` Alan Cox
2006-08-08 15:33 ` Shem Multinymous
2006-08-09 3:44 ` Muli Ben-Yehuda
2006-08-09 9:02 ` Shem Multinymous
2006-08-09 9:56 ` Muli Ben-Yehuda
2006-08-07 23:26 ` Pavel Machek
2006-08-06 7:26 ` [PATCH 05/12] hdaps: Remember keyboard and mouse activity Shem Multinymous
2006-08-07 14:11 ` Pavel Machek
2006-08-07 16:19 ` Shem Multinymous
2006-08-06 7:26 ` [PATCH 06/12] hdaps: Limit hardware query rate Shem Multinymous
2006-08-08 12:08 ` Pavel Machek
2006-08-06 7:26 ` Shem Multinymous [this message]
2006-08-08 12:10 ` [PATCH 07/12] hdaps: delay calibration to first hardware query Pavel Machek
2006-08-06 7:26 ` [PATCH 08/12] hdaps: Add explicit hardware configuration functions Shem Multinymous
2006-08-08 12:16 ` Pavel Machek
2006-08-08 13:17 ` Shem Multinymous
2006-08-06 7:26 ` [PATCH 09/12] hdaps: Add new sysfs attributes Shem Multinymous
2006-08-08 12:19 ` Pavel Machek
2006-08-06 7:26 ` [PATCH 10/12] hdaps: Power off accelerometer on suspend and unload Shem Multinymous
2006-08-08 12:45 ` Pavel Machek
2006-08-08 13:28 ` Shem Multinymous
2006-08-06 7:26 ` [PATCH 11/12] hdaps: Stop polling timer when suspended Shem Multinymous
2006-08-08 12:46 ` Pavel Machek
2006-08-06 7:26 ` [PATCH 12/12] hdaps: Simplify whitelist Shem Multinymous
2006-08-08 12:47 ` Pavel Machek
-- strict thread matches above, loose matches on Subject: below --
2006-08-10 9:48 [PATCH 00/12] ThinkPad embedded controller and hdaps drivers (version 2) Shem Multinymous
2006-08-10 9:48 ` [PATCH 07/12] hdaps: delay calibration to first hardware query Shem Multinymous
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11548492753662-git-send-email-multinymous@gmail.com \
--to=multinymous@gmail.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=gregkh@suse.de \
--cc=hdaps-devel@lists.sourceforge.net \
--cc=khali@linux-fr.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rlove@rlove.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox