Re: [rtc-linux] Re: rtc max frequency setting

2007-08-06 Thread Alessandro Zummo
On Sat, 04 Aug 2007 17:06:38 -0700
"H. Peter Anvin" <[EMAIL PROTECTED]> wrote:

> 
> Jan Engelhardt wrote:
> > Hi,
> > 
> > with the old rtc.ko module, there was a /proc/sys/dev/rtc/max-user-freq 
> > that could be set. With rtc_cmos.ko (or the new rtc infrastructure in 
> > general), I am missing this file. Where can I set the max-user-freq now, 
> > or is this obsolete now? (mplayer prefers to have user-freq to be >= 1024.)
> > 

 quick hack to set the maximum freq. I haven't tested t, just compiled.
 I'm not sure about simple_strtoul.

 please provide feedback ;)

---
 drivers/rtc/rtc-sysfs.c |   27 ++-
 1 file changed, 26 insertions(+), 1 deletion(-)

--- linux-2.6.orig/drivers/rtc/rtc-sysfs.c  2007-08-06 20:34:12.0 
+0200
+++ linux-2.6/drivers/rtc/rtc-sysfs.c   2007-08-06 20:50:03.0 +0200
@@ -73,11 +73,37 @@ rtc_sysfs_show_since_epoch(struct device
return retval;
 }
 
+static ssize_t
+rtc_sysfs_show_max_user_freq(struct device *dev, struct device_attribute *attr,
+   char *buf)
+{
+   struct rtc_device *rtc = to_rtc_device(dev);
+   return sprintf(buf, "%d\n", rtc->max_user_freq);
+}
+
+static ssize_t
+rtc_sysfs_set_max_user_freq(struct device *dev, struct device_attribute *attr,
+   const char *buf, size_t n)
+{
+   unsigned long w;
+   struct rtc_device *rtc = to_rtc_device(dev);
+
+   w = simple_strtoul(buf, NULL, 0);
+   if (is_power_of_2(w)) {
+   rtc->max_user_freq = w;
+   return n;
+   }
+
+   return -EINVAL;
+}
+
 static struct device_attribute rtc_attrs[] = {
__ATTR(name, S_IRUGO, rtc_sysfs_show_name, NULL),
__ATTR(date, S_IRUGO, rtc_sysfs_show_date, NULL),
__ATTR(time, S_IRUGO, rtc_sysfs_show_time, NULL),
__ATTR(since_epoch, S_IRUGO, rtc_sysfs_show_since_epoch, NULL),
+   __ATTR(max_user_freq, S_IRUGO | S_IWUSR, rtc_sysfs_show_max_user_freq,
+   rtc_sysfs_set_max_user_freq),
{ },
 };
 


-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [rtc-linux] Re: rtc max frequency setting

2007-08-04 Thread Alessandro Zummo
On Sat, 04 Aug 2007 17:06:38 -0700
"H. Peter Anvin" <[EMAIL PROTECTED]> wrote:

> > with the old rtc.ko module, there was a /proc/sys/dev/rtc/max-user-freq 
> > that could be set. With rtc_cmos.ko (or the new rtc infrastructure in 
> > general), I am missing this file. Where can I set the max-user-freq now, 
> > or is this obsolete now? (mplayer prefers to have user-freq to be >= 1024.)
> > 
> 
> Qemu wants something like this too.  Both of these really want something
> else, which is a high-frequency userspace timer.
> 
> What is the best way to do that on modern kernels?

 The rtc class is missing sysfs interface to the maximum settable
 value. I guess I'll have to add it. I should be able to find the time
 in the next few days.

 However, I agree that they both shold be using an userspace
 high freq timer :)

-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/