rtc_irq_set_freq() requires power-of-two and associated kerneldoc
RTC periodic IRQs are only defined to work for 2^N Hz values. This patch moves that validity check into the infrastructure, so drivers don't need to check it; and adds kerneldoc for the two interface functions related to periodic IRQs. (One of which was quite mysterious until its first use was recently checked in!) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Cc: Alessandro Zummo <a.zummo@towertech.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
d691eb901e
commit
97144c6756
@@ -246,11 +246,9 @@ static int cmos_irq_set_freq(struct device *dev, int freq)
|
||||
|
||||
/* 0 = no irqs; 1 = 2^15 Hz ... 15 = 2^0 Hz */
|
||||
f = ffs(freq);
|
||||
if (f != 0) {
|
||||
if (f-- > 16 || freq != (1 << f))
|
||||
return -EINVAL;
|
||||
f = 16 - f;
|
||||
}
|
||||
if (f-- > 16)
|
||||
return -EINVAL;
|
||||
f = 16 - f;
|
||||
|
||||
spin_lock_irqsave(&rtc_lock, flags);
|
||||
CMOS_WRITE(RTC_REF_CLCK_32KHZ | f, RTC_FREQ_SELECT);
|
||||
|
Reference in New Issue
Block a user