rtc: use set_mmss when set_time is not available
Drivers should only need to implement either set_mmss (counter based RTCs) or set_time (most RTCs). The RTC subsystem will handle them appropriately. Signed-off-by: Alessandro Zummo <a.zummo@towertech.it> Cc: Kumar Gala <galak@kernel.crashing.org> Cc: David Brownell <david-b@pacbell.net> Cc: Lennert Buytenhek <buytenh@wantstofly.org> 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
f60091575d
commit
bbccf83f6c
@@ -83,32 +83,11 @@ static int ds1672_set_mmss(struct i2c_client *client, unsigned long secs)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ds1672_set_datetime(struct i2c_client *client, struct rtc_time *tm)
|
||||
{
|
||||
unsigned long secs;
|
||||
|
||||
dev_dbg(&client->dev,
|
||||
"%s: secs=%d, mins=%d, hours=%d, "
|
||||
"mday=%d, mon=%d, year=%d, wday=%d\n",
|
||||
__func__,
|
||||
tm->tm_sec, tm->tm_min, tm->tm_hour,
|
||||
tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
|
||||
|
||||
rtc_tm_to_time(tm, &secs);
|
||||
|
||||
return ds1672_set_mmss(client, secs);
|
||||
}
|
||||
|
||||
static int ds1672_rtc_read_time(struct device *dev, struct rtc_time *tm)
|
||||
{
|
||||
return ds1672_get_datetime(to_i2c_client(dev), tm);
|
||||
}
|
||||
|
||||
static int ds1672_rtc_set_time(struct device *dev, struct rtc_time *tm)
|
||||
{
|
||||
return ds1672_set_datetime(to_i2c_client(dev), tm);
|
||||
}
|
||||
|
||||
static int ds1672_rtc_set_mmss(struct device *dev, unsigned long secs)
|
||||
{
|
||||
return ds1672_set_mmss(to_i2c_client(dev), secs);
|
||||
@@ -152,7 +131,6 @@ static DEVICE_ATTR(control, S_IRUGO, show_control, NULL);
|
||||
|
||||
static const struct rtc_class_ops ds1672_rtc_ops = {
|
||||
.read_time = ds1672_rtc_read_time,
|
||||
.set_time = ds1672_rtc_set_time,
|
||||
.set_mmss = ds1672_rtc_set_mmss,
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user