#qi-hardware IRC log for Sunday, 2015-01-04

larscpcercuei: yes, happy new year.12:31
larscI'm having trouble with your watchdog driver12:31
larscthe system reboots after a while even though the watchdog is not enabled12:31
pcercueithe upstream version?12:33
larscyes12:33
pcercueiand it doesn't happen when the watchdog module is not loaded?12:34
larscyes12:34
pcercueiwe have a couple of changes here: https://github.com/gcwnow/linux/commits/jz-3.18/drivers/watchdog/jz4740_wdt.c12:35
pcercueibut that means you need a "wdt" clock12:36
larschm, looks as if something actually does enable the wdt12:46
larscand once it is enabled the gpios keyboard doesn't work anymore, strange12:47
pcercueihuh12:47
larscdoes gmenu2x has any watchdog code?12:53
mthno, we have a watchdog daemon12:56
larscI really wonder why enabling the watchdog kills the gpios13:02
mththe watchdog doesn't use any pins, so that's probably not where the interference is13:03
mthmaybe it messes with the wrong clock?13:03
mthor an interrupt?13:03
larscit looks like gpio_get_value() is still correct, but it doesn't generate any interrupts anymore13:04
larscactually it seems to kill the timer interrupt13:05
larscif I remove the 'writeb(0x1, drvdata->base + JZ_REG_WDT_COUNTER_ENABLE);' I still get the timer interrupts13:26
larscotherwise they stop13:26
larscstrangely enough writing 0 to it again doesnt fix the issue13:27
pcercueiif you write 0x1, you write 0 to the upper 30 bits13:28
pcercueiis there anything in there?13:28
larscnot according to the datasheet13:29
larsceven if I replace the writeb(0x1, with writeb(0x0 it continuous to work13:33
larschm, switched things around to first setup the watchdog and then enable the watchdog clock in the tcu and things seem to work13:39
larsconly looked like it13:46
larscreally strange13:46
pcercueiwe don't have those problems with the watchdog on jz477013:47
pcercueiso that's indeed strange13:48
larschm, does the watchdog timer also generate an interrupt?13:57
pcercueino13:59
pcercueithat wouldn't make sense13:59
larscit wouldn't14:01
larscbut right now the whole thing doesn't make sense14:01
pcercueidisable devicetree :p14:02
larscthis is plain mainline14:03
mththe Ben has a matrix keyboard, right?14:20
mthwouldn't that be polled on a timer rather than have GPIO interrupts?14:20
larscboth14:23
larscit looks as if for whatever reason tcu0 channel just stops14:24
mththe watchdog timer stop is in the same register as the tcu timer stop flags, but the code looks fine14:25
mthjz4740_timer_enable_watchdog14:25
larscI double checked that already, in the register it is still enabled14:26
larscalso just calling jz4740_timer_enable_watchdog() doesn't do anything14:26
larscproblems only start once the watchdog is enabled in the watchdog core14:27
larscif I change the timer code to not use tcu0 everything is fine14:28
larscare you using the watchdog on the dingoo?14:35
pcercueiwe didn't update the kernel for a long time14:36
larscwhich tcu channels are used for pwm on the dingoo?14:38
pcercueiPWM7 for the backlight14:41
larscmaybe they just forgot to tell us that the wdt hijacks tcu015:00
larscpcercuei: so, tomorrow morning 8 o'clock? ;)15:02
pcercueiprobably not 8 o'clock15:02
larsclots of work to do15:04
pcercueiit'll take time to even read the emails15:06
larscall the ez posts15:06
--- Mon Jan 5 201500:00

Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!