All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Hansen <dave@sr71.net>
To: Jesper Juhl <jesper.juhl@gmail.com>
Cc: Alejandro Bonilla <abonilla@linuxwireless.org>,
	Vojtech Pavlik <vojtech@suse.cz>, Pavel Machek <pavel@suse.cz>,
	Paul Sladen <thinkpad@paul.sladen.org>,
	linux-thinkpad@linux-thinkpad.org,
	Eric Piel <Eric.Piel@tremplin-utc.net>,
	borislav@users.sourceforge.net,
	Yani Ioannou <yani.ioannou@gmail.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	hdaps-devel@lists.sourceforge.net
Subject: Re: [Hdaps-devel] Re: [ltp] IBM HDAPS Someone interested? (Accelerometer)
Date: Sun, 03 Jul 2005 12:41:02 -0700	[thread overview]
Message-ID: <1120419662.4351.20.camel@localhost> (raw)
In-Reply-To: <42C82BBB.9090008@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 564 bytes --]

On Sun, 2005-07-03 at 20:17 +0200, Jesper Juhl wrote:
>         while (1) {
....
>                 } else if (time_before(jiffies, wait_until)) {
>                         set_current_state(TASK_INTERRUPTIBLE);
>                         schedule_timeout(HZ);
>                 } else {

Please don't do the manual task state setting.  It's preferable to just
use msleep_interruptable().  jiffies and HZ can change with each kernel
configuration, and are not dependable.  

I've attached an untested patch that cleans up the init function a bit
(I think).

-- Dave

[-- Attachment #2: init-function-cleanup.patch --]
[-- Type: text/x-patch, Size: 2042 bytes --]

--- accelerometer.c-0.1.orig	2005-07-03 12:28:28.000000000 -0700
+++ accelerometer.c	2005-07-03 12:33:39.000000000 -0700
@@ -158,45 +158,49 @@
 }
 
 /* initialize the accelerometer, wait up to `timeout' seconds for success */
-int accelerometer_init(unsigned int timeout)
+int accelerometer_init(unsigned int timeout_secs)
 {
-	unsigned long wait_until = jiffies + timeout * HZ;
+	unsigned long total_wait_msecs = timeout_secs * 1000;
+	unsinged msec_per_wait = 10;
+	unsigned long msecs_waited = 0;
+	int ret = -EIO;
 	
 	outb(0x13, 0x1610);
 	outb(0x01, 0x161f);
  	if (!wait_latch(0x00, 0x161f))
-		return -EIO;
+		return ret;
 	if (!wait_latch(0x03, 0x1611))
-		return -EIO;
+		return ret;
 	outb(0x17, 0x1610);
 	outb(0x81, 0x1611);
 	outb(0x01, 0x161f);
 	if (!wait_latch(0x00, 0x161f))
-		return -EIO;
+		return ret;
 	if (!wait_latch(0x00, 0x1611))
-		return -EIO;
+		return ret;
 	if (!wait_latch(0x60, 0x1612))
-		return -EIO;
+		return ret;
 	if (!wait_latch(0x00, 0x1613))
-		return -EIO;
+		return ret;
 	outb(0x14, 0x1610);
 	outb(0x01, 0x1611);
 	outb(0x01, 0x161f);
 	if (!wait_latch(0x00, 0x161f))
-		return -EIO;
+		return ret;
 	outb(0x10, 0x1610);
 	outb(0xc8, 0x1611);
 	outb(0x00, 0x1612);
 	outb(0x02, 0x1613);
 	outb(0x01, 0x161f);
 	if (!wait_latch(0x00, 0x161f))
-		return -EIO;
+		return ret;
 	if (!request_refresh(REFRESH_SYNC))
-		return -EIO;
+		return ret;
 	if (!wait_latch(0x00, 0x1611))
-		return -EIO;
+		return ret;
 
-	while (1) {
+	ret = -ENXIO;
+	while (msecs_waited <= total_wait_msecs) {
 		if (wait_latch(0x02, 0x1611)) {
 			struct hdaps_accel_data data;
 			/* 
@@ -204,15 +208,13 @@
 			 * return success.
 			 */
 			 accelerometer_read(&data);
-			return 0;
-		} else if (time_before(jiffies, wait_until)) {
-			set_current_state(TASK_INTERRUPTIBLE);
-			schedule_timeout(HZ);
-		} else {
-			/* we timed out, return failure */
-			return -ENXIO;
+			ret = 0;
+			break;
 		}
+		msleep(msecs_per_wait);
+		msecs_waited += msecs_per_wait;
 	}
+	return ret;
 }
 
 static int ibm_hdaps_init(void)

  parent reply	other threads:[~2005-07-03 19:42 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <42B6F6F6.2040704@zipman.it>
2005-06-20 17:28 ` [ltp] Re: IBM HDAPS Someone interested? Alejandro Bonilla
2005-06-20 19:51   ` Yani Ioannou
2005-06-20 20:11     ` Yani Ioannou
2005-06-20 20:25       ` Alejandro Bonilla
2005-06-20 20:34         ` Yani Ioannou
2005-06-20 20:48           ` Alejandro Bonilla
2005-06-20 21:35             ` Lee Revell
2005-06-20 21:57               ` Alejandro Bonilla
2005-06-20 23:35                 ` Lee Revell
2005-06-22 10:49                   ` Pavel Machek
2005-06-22 12:50                     ` Alejandro Bonilla
2005-06-23  7:13                       ` Vojtech Pavlik
2005-06-23 10:06                         ` Eric Piel
2005-06-23 12:53                           ` Alejandro Bonilla
2005-06-23 13:18                             ` Vojtech Pavlik
2005-06-23 20:22                             ` Eric Piel
2005-06-23 20:42                               ` Lee Revell
2005-06-25  6:17                                 ` [ltp] IBM HDAPS Someone interested? (Accelerometer) Paul Sladen
2005-06-25 11:31                                   ` Vojtech Pavlik
2005-06-25 14:47                                   ` Pavel Machek
2005-06-25 15:00                                     ` Vojtech Pavlik
2005-06-25 18:14                                       ` Alejandro Bonilla
2005-06-25 20:14                                         ` Vojtech Pavlik
2005-06-27 12:33                                           ` Lenz Grimmer
2005-06-27 13:10                                             ` Alejandro Bonilla
2005-06-27 21:02                                               ` Lee Revell
2005-06-28  3:22                                                 ` Alejandro Bonilla
2005-06-28  5:40                                                   ` Lee Revell
2005-06-28 15:40                                             ` Vojtech Pavlik
2005-06-25 18:13                                     ` Alejandro Bonilla
2005-06-25 20:09                                       ` Vojtech Pavlik
2005-06-25 22:41                                         ` Alejandro Bonilla
2005-06-27  3:35                                         ` [Hdaps-devel] " Shawn Starr
2005-07-03  8:37                                         ` Alejandro Bonilla
2005-07-03 10:16                                           ` Vojtech Pavlik
2005-07-03 11:07                                             ` Jesper Juhl
2005-07-03 18:17                                               ` Jesper Juhl
2005-07-03 19:21                                                 ` [Hdaps-devel] " Dave Hansen
2005-07-03 18:29                                                   ` Alejandro Bonilla
2005-07-03 19:37                                                     ` Dave Hansen
2005-07-03 19:42                                                   ` Jesper Juhl
2005-07-03 18:52                                                     ` Alejandro Bonilla
2005-07-03 19:42                                                     ` Henrik Brix Andersen
2005-07-03 20:03                                                       ` Jesper Juhl
2005-07-03 20:53                                                   ` Tomasz Torcz
2005-07-03 19:41                                                 ` Dave Hansen [this message]
2005-07-11  9:42                                           ` [ltp] IBM HDAPS Someone interested? (Userspace accelerometer viewer) Paul Sladen
2005-07-11 14:26                                             ` Alan Cox
2005-07-11 16:53                                               ` [Hdaps-devel] " Dave Hansen
2005-07-11 17:31                                               ` Paul RIVIER
2005-07-11 20:09                                               ` [Hdaps-devel] " Daniel Willmann
2005-07-12 15:55                                                 ` Dave Hansen
2005-07-11 15:13                                             ` Pavel Machek
2005-07-12  9:41                                               ` Matthew Garrett
2005-07-11 16:21                                             ` [Hdaps-devel] " Dave Hansen
2005-07-13 16:27                                             ` Alejandro Bonilla
2005-06-25 17:42                                   ` [ltp] IBM HDAPS Someone interested? (Accelerometer) Alejandro Bonilla
2005-06-27 10:36                                     ` P
2005-06-23 15:33                   ` [ltp] Re: IBM HDAPS Someone interested? Jan Knutar
2005-06-23 17:08                     ` Lee Revell
2005-06-23 20:47                       ` Andrew Haninger
2005-06-24  9:16                       ` P
2005-06-24 12:56                       ` Alejandro Bonilla
2005-06-24 17:20                       ` Alejandro Bonilla
2005-06-20 20:53         ` Vojtech Pavlik
     [not found] ` <005b01c575bd_724fac60_600cc60a@amer.sykes.com>
2005-06-20 20:25   ` Pavel Machek

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=1120419662.4351.20.camel@localhost \
    --to=dave@sr71.net \
    --cc=Eric.Piel@tremplin-utc.net \
    --cc=abonilla@linuxwireless.org \
    --cc=borislav@users.sourceforge.net \
    --cc=hdaps-devel@lists.sourceforge.net \
    --cc=jesper.juhl@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-thinkpad@linux-thinkpad.org \
    --cc=pavel@suse.cz \
    --cc=thinkpad@paul.sladen.org \
    --cc=vojtech@suse.cz \
    --cc=yani.ioannou@gmail.com \
    /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 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.