Messages in this thread | | | Date | Tue, 4 Dec 2007 11:47:56 -0500 | From | "Mike Frysinger" <> | Subject | Re: [rtc-linux] Re: [PATCH 1/7] Blackfin RTC driver: the frequency function is in units of Hz, not units of seconds, so lock our driver down to 1 Hz |
| |
On Dec 4, 2007 11:41 AM, Alessandro Zummo <alessandro.zummo@towertech.it> wrote: > On Tue, 4 Dec 2007 11:29:11 -0500 "Mike Frysinger" <vapier.adi@gmail.com> wrote: > > On Dec 4, 2007 11:26 AM, Alessandro Zummo <alessandro.zummo@towertech.it> wrote: > > > Bryan Wu <bryan.wu@analog.com> wrote: > > > > > > Hi, I fannly got some time to review the patches. Seems ok, the > > > only question is... > > > > > > > static int bfin_irq_set_freq(struct device *dev, int freq) > > > > { > > > > - struct bfin_rtc *rtc = dev_get_drvdata(dev); > > > > stampit(); > > > > - rtc->rtc_dev->irq_freq = freq; > > > > - return 0; > > > > + return -ENOTTY; > > > > } > > > > > > .. why ENOTTY here? > > > > that's what the documentation says to do as does every other rtc driver ? > > it should be EINVAL. at least it is wat rtc-cmos does when the value > is invalid.
the return of ENOTTY is to say "changing of freq isnt supported", not that the value is invalid. but i can get the same behavior by deleting the function as the rtc-dev layer will take care of returning ENOTTY.
so the behavior is for the RTC_IRQP_SET ioctl: - return ENOTTY if you cannot change freq - the rtc-dev layer will do this for you if you do not set irq_set_freq - return EINVAL if the requested freq is not within the capabilities of the hardware
sound about right ? -mike
| |