diff options
author | Javier Martinez Canillas <javier.martinez@collabora.co.uk> | 2014-10-13 18:53:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-10-13 20:18:19 -0400 |
commit | a20cd88e20e59ce11ebca84fac769654193c51e0 (patch) | |
tree | 608d6eece0c3e67550438a7b8a57b74ee41c519e /drivers/rtc | |
parent | ea33c31b621e296356ab74ea0237ba7761f2287e (diff) |
rtc: max77686: Use ffs() to calculate tm_wday
max77686_rtc_calculate_wday() is used to calculate the day of the week
to be filled in struct rtc_time but that function only calculates the
number of bits shifted. So the ffs() function can be used to find the
first bit set instead of a special function.
[akpm@linux-foundation.org: add comment clarifying ffs() use]
Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Cc: Joe Perches <joe@perches.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/rtc')
-rw-r--r-- | drivers/rtc/rtc-max77686.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/drivers/rtc/rtc-max77686.c b/drivers/rtc/rtc-max77686.c index b177ba199a3d..cf73e969c8cc 100644 --- a/drivers/rtc/rtc-max77686.c +++ b/drivers/rtc/rtc-max77686.c | |||
@@ -70,16 +70,6 @@ enum MAX77686_RTC_OP { | |||
70 | MAX77686_RTC_READ, | 70 | MAX77686_RTC_READ, |
71 | }; | 71 | }; |
72 | 72 | ||
73 | static inline int max77686_rtc_calculate_wday(u8 shifted) | ||
74 | { | ||
75 | int counter = -1; | ||
76 | while (shifted) { | ||
77 | shifted >>= 1; | ||
78 | counter++; | ||
79 | } | ||
80 | return counter; | ||
81 | } | ||
82 | |||
83 | static void max77686_rtc_data_to_tm(u8 *data, struct rtc_time *tm, | 73 | static void max77686_rtc_data_to_tm(u8 *data, struct rtc_time *tm, |
84 | int rtc_24hr_mode) | 74 | int rtc_24hr_mode) |
85 | { | 75 | { |
@@ -93,7 +83,8 @@ static void max77686_rtc_data_to_tm(u8 *data, struct rtc_time *tm, | |||
93 | tm->tm_hour += 12; | 83 | tm->tm_hour += 12; |
94 | } | 84 | } |
95 | 85 | ||
96 | tm->tm_wday = max77686_rtc_calculate_wday(data[RTC_WEEKDAY] & 0x7f); | 86 | /* Only a single bit is set in data[], so fls() would be equivalent */ |
87 | tm->tm_wday = ffs(data[RTC_WEEKDAY] & 0x7f) - 1; | ||
97 | tm->tm_mday = data[RTC_DATE] & 0x1f; | 88 | tm->tm_mday = data[RTC_DATE] & 0x1f; |
98 | tm->tm_mon = (data[RTC_MONTH] & 0x0f) - 1; | 89 | tm->tm_mon = (data[RTC_MONTH] & 0x0f) - 1; |
99 | tm->tm_year = (data[RTC_YEAR] & 0x7f) + 100; | 90 | tm->tm_year = (data[RTC_YEAR] & 0x7f) + 100; |