-
Notifications
You must be signed in to change notification settings - Fork 58
Description
Hi frank,
Long time R2 worked for me without issues as my primary router, however the day has come and something made it dead _
So, long story short, one day I had storm of messages with
mt-pmic-pwrap 1000d000.pwrap: unexpected interrupt int=0x2
mt-pmic-pwrap 1000d000.pwrap: unexpected interrupt int=0x2
mt-pmic-pwrap 1000d000.pwrap: unexpected interrupt int=0x2
mt-pmic-pwrap 1000d000.pwrap: unexpected interrupt int=0x2
While system still works, it's infinite loop of such messages, so sooner or later it hangs.
Usually reboot fixed that for a week or so.
With time, things became worser, and now it's not even possible to boot without issues.
However, I figured out, that
- If pmic/pwrap drivers disabled it works somehow
- If CPU freq policy set to powersave it usually boots (however may silently poweroff)
- Usually errors and power issues follows CPU frequency change + SATA/USB active
So, it's clear that there are some kind of hardware issue which I'm not sure how I can debug.
Still, if "unexpected interrupt int=0x2" may be fixed somehow, this thing still may work (at least until new R4 will arrive)
This message is from drivers/soc/mediatek/mtk-pmic-wrap.c, function pwrap_interrupt
rdata = pwrap_readl(wrp, PWRAP_INT_FLG);
dev_err(wrp->dev, "unexpected interrupt int=0x%x\n", rdata);
pwrap_writel(wrp, 0xffffffff, PWRAP_INT_CLR);
There are no documentation about mt6323, so it's not clear, is that way of clearing error okay or not.
And what "int=0x2" actually means.
I tried to put various things to int_en_all in hope to at least request not to call this interrupt without any success
static const struct pmic_wrapper_type pwrap_mt7622 = {
.regs = mt7622_regs,
.type = PWRAP_MT7622,
.arb_en_all = 0xff,
.int_en_all = ~(u32)BIT(31),
.int1_en_all = 0,
.spi_w = PWRAP_MAN_CMD_SPI_WRITE,
.wdt_src = PWRAP_WDT_SRC_MASK_ALL,
.caps = PWRAP_CAP_RESET | PWRAP_CAP_DCM,
.init_reg_clock = pwrap_common_init_reg_clock,
.init_soc_specific = pwrap_mt7622_init_soc_specific,
};
How do you think, is there any way to get more information about that?