mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-22 11:29:58 +07:00
rtc: class: avoid unnecessary lookup in hctosys
rtc_hctosys is only called when the relevant RTC is found, avoid looking it up while we already have a pinter to the proper struct rtc_device. Link: https://lore.kernel.org/r/20200323213039.297458-1-alexandre.belloni@bootlin.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
This commit is contained in:
parent
f1cd223389
commit
5614a4a3ca
@ -46,20 +46,13 @@ int rtc_hctosys_ret = -ENODEV;
|
|||||||
* the best guess is to add 0.5s.
|
* the best guess is to add 0.5s.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int rtc_hctosys(void)
|
static void rtc_hctosys(struct rtc_device *rtc)
|
||||||
{
|
{
|
||||||
int err = -ENODEV;
|
int err = -ENODEV;
|
||||||
struct rtc_time tm;
|
struct rtc_time tm;
|
||||||
struct timespec64 tv64 = {
|
struct timespec64 tv64 = {
|
||||||
.tv_nsec = NSEC_PER_SEC >> 1,
|
.tv_nsec = NSEC_PER_SEC >> 1,
|
||||||
};
|
};
|
||||||
struct rtc_device *rtc = rtc_class_open(CONFIG_RTC_HCTOSYS_DEVICE);
|
|
||||||
|
|
||||||
if (!rtc) {
|
|
||||||
pr_info("unable to open rtc device (%s)\n",
|
|
||||||
CONFIG_RTC_HCTOSYS_DEVICE);
|
|
||||||
goto err_open;
|
|
||||||
}
|
|
||||||
|
|
||||||
err = rtc_read_time(rtc, &tm);
|
err = rtc_read_time(rtc, &tm);
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -83,12 +76,7 @@ static int rtc_hctosys(void)
|
|||||||
&tm, (long long)tv64.tv_sec);
|
&tm, (long long)tv64.tv_sec);
|
||||||
|
|
||||||
err_read:
|
err_read:
|
||||||
rtc_class_close(rtc);
|
|
||||||
|
|
||||||
err_open:
|
|
||||||
rtc_hctosys_ret = err;
|
rtc_hctosys_ret = err;
|
||||||
|
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -433,7 +421,7 @@ int __rtc_register_device(struct module *owner, struct rtc_device *rtc)
|
|||||||
|
|
||||||
#ifdef CONFIG_RTC_HCTOSYS_DEVICE
|
#ifdef CONFIG_RTC_HCTOSYS_DEVICE
|
||||||
if (!strcmp(dev_name(&rtc->dev), CONFIG_RTC_HCTOSYS_DEVICE))
|
if (!strcmp(dev_name(&rtc->dev), CONFIG_RTC_HCTOSYS_DEVICE))
|
||||||
rtc_hctosys();
|
rtc_hctosys(rtc);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user