On 21/11/15 21:32, Guenter Roeck wrote: > On 11/21/2015 11:05 AM, Simon Arlott wrote: >> Convert bcm63xx_wdt to use WATCHDOG_CORE and add a device tree binding. >> >> Adds support for the time left value and provides a more effective >> interrupt handler based on the watchdog warning interrupt behaviour. >> >> This removes the unnecessary software countdown timer and replaces the >> use of bcm63xx_timer with a normal interrupt when not using mach-bcm63xx. >> > > Hi Simon, > > this is really doing a bit too much in a single patch. > Conversion to the watchdog infrastructure should probably be > the first step, followed by further optimizations and improvements. I'll split it into two patches, but that won't remove the need for #ifdefs. > In general, it would be great if we can avoid #ifdef in the code. > Maybe there is some other means to determine if one code path > needs to be taken or another. The driver may be part of a > multi-platform image, and #ifdefs in the code make that all > but impossible. Besides, it makes the code really hard to read > and understand. It's impossible to avoid the #ifdefs because the driver needs to support mach-bmips while still supporting mach-bcm63xx. I don't think they make it too difficult to understand. Until there are device tree supporting drivers for everything mach-bcm63xx needs, it can't be removed. > We have some infrastructure changes in the works which will move > the need for soft-timers from individual drivers into the watchdog core. > Would this possibly be helpful here ? The timer-driven watchdog ping > seems to accomplish pretty much the same. There is no need for a software timer. This is not a timer-driven watchdog ping, there is an unmaskable timer interrupt when the watchdog timer has less than 50% remaining. -- Simon Arlott