On Tue, 22 Jan 2008, Oliver Neukum wrote:
> Am Montag, 21. Januar 2008 22:43:25 schrieb Sarah Sharp:
> > + dev->connect_time = jiffies;
> > + dev->active_duration = -jiffies;
> > #endif
> > if (root_hub) /* Root hub always ok [and always wired] */
> > dev->authorized = 1;
> > diff --git a/include/linux/usb.h b/include/linux/usb.h
> > index 5fc8ff7..b031455 100644
> > --- a/include/linux/usb.h
> > +++ b/include/linux/usb.h
> > @@ -419,12 +419,15 @@ struct usb_device {
> > u32 quirks; /* quirks of the whole device */
> > atomic_t urbnum; /* number of URBs submitted for the
> > whole device */
> >
> > + unsigned long active_duration; /* total time device is not
> > suspended */
> > +
>
> Somehow assigning -jiffies to an unsigned variable doesn't appeal to me.
I agree. In fact, reading through the patch I got the distinct
impression that the value stored in active_duration was the negative of
the value I would have used. Thus, I would have called the field
something like active_start_or_duration. The idea is that while the
device is active it stores an effective start time, and while the
device is suspended it stores a duration.
If the device is active then the total active duration is calculated as
jiffies - udev->active_start_or_duration
If the device is suspended then the total active duration
is simply
udev->active_start_or_duration
When suspending or resuming the device you set
udev->active_start_or_duration = jiffies -
udev->active_start_or_duration;
which converts between an effective start time and a duration.
This may not be quite as clean as your approach, but IMO it is more
easily understandable.
Alan Stern
-
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html