On Fri, Aug 23, 2019 at 11:37:38AM +0800, Tanwar, Rahul wrote: > On 22/8/2019 9:04 PM, Andy Shevchenko wrote: > > On Thu, Aug 22, 2019 at 05:26:33PM +0800, Tanwar, Rahul wrote: > > > On 22/8/2019 5:02 PM, Andy Shevchenko wrote: > > > > On Thu, Aug 22, 2019 at 03:44:03PM +0800, Rahul Tanwar wrote: > > > > > Use a newly introduced optional "status" property of "motorola,mc146818" > > > > > compatible DT node to determine if RTC is supported. Skip read/write from > > > > > RTC device only when this node is present and status is "disabled". In all > > > > > other cases, proceed as before. > > > > Can't we rather update ->get_wallclock() and ->set_wallclock() based on this? > > > > > > get_wallclock() and set_wallclock() are function pointers of platform_ops > > > > > > which are initialized to mach_get_cmos_time() and mach_set_rtc_mmss() > > > > > > at init time. Since adding a new platform to override these functions is > > > > > > discouraged, so the only way is to modify RTC get/set functions. > > Shouldn't it be platform agnostic code? > > So, my point is, instead of hacking two functions, perhaps better to avoid them > > at all. > > Sorry, i could not understand your point. The changes are platform > > agnostic i.e. it doesn't break existing use cases. Are you recommending > > to add a new platform and make changes there ? Nope, I propose to do something like void __init foo() { if (platform has RTC) return; set_wallclock = noop; get_wallclock = noop; } -- With Best Regards, Andy Shevchenko