Hi Guenter,
On 21 May 2015 at 23:28, Guenter Roeck linux@roeck-us.net wrote:
On Thu, May 21, 2015 at 08:09:02AM -0500, Timur Tabi wrote:
Guenter Roeck wrote:
+static unsigned int sbsa_gwdt_get_timeleft(struct watchdog_device *wdd) +{
- struct sbsa_gwdt *gwdt = to_sbsa_gwdt(wdd);
- u64 timeleft = sbsa_gwdt_get_wcv(wdd) - arch_counter_get_cntvct();
Still not happy about the use of arch_counter_get_cntvct instead of using the clock subsystem. I am quite sure this could be done, possibly through arch_sys_counter, though at this point I am getting wary of bringing it up, so I guess I'll just let it go.
You made the same comment with my driver, and I keep asking for clarification. The clk_get_sys() API does not work on my system, because there are not clocks defined. That must be an ACPI limitation that I can't fix.
Would it be possible to define such clocks ?
The alternative to arch_counter_get_cntvct() is arch_timer_read_counter(), which is not exported. So we have two choices,
- Continue to use arch_counter_get_cntvct(), which works on all ARM64
platforms that this driver supports anyway
- Export arch_timer_read_counter()
I prefer option #1.
Do we have any feedback from the arm maintainers ?
My problem is that I don't want to be the first one to permit using those functions outside architecture and clock code. If we do this, we should get an Ack from an arm maintainer specifically for the use of arch_counter_get_cntvct() and arch_timer_get_rate().
IMO, we may need to use arch_timer_read_counter. Reason: Once the Linux kernel has KVM support and is in hyp mode. we may need to use arch_counter_get_cntpct. So arch_timer driver have helped us to make arch_timer_read_counter point to the right function. and arch_timer_read_counter is in the include/clocksource/arm_arch_timer.h, just like arch_timer_get_rate as a interface
Thanks, Guenter -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html