Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

bcma: fix watchdog on some ARM chipsets

These chipsets don't need changing clock mode.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

authored by

Rafał Miłecki and committed by
Kalle Valo
68fcd245 cfbed87b

+7 -3
+7 -3
drivers/bcma/driver_chipcommon.c
··· 178 178 u32 bcma_chipco_watchdog_timer_set(struct bcma_drv_cc *cc, u32 ticks) 179 179 { 180 180 u32 maxt; 181 - enum bcma_clkmode clkmode; 182 181 183 182 maxt = bcma_chipco_watchdog_get_max_timer(cc); 184 183 if (cc->capabilities & BCMA_CC_CAP_PMU) { ··· 187 188 ticks = maxt; 188 189 bcma_cc_write32(cc, BCMA_CC_PMU_WATCHDOG, ticks); 189 190 } else { 190 - clkmode = ticks ? BCMA_CLKMODE_FAST : BCMA_CLKMODE_DYNAMIC; 191 - bcma_core_set_clockmode(cc->core, clkmode); 191 + struct bcma_bus *bus = cc->core->bus; 192 + 193 + if (bus->chipinfo.id != BCMA_CHIP_ID_BCM4707 && 194 + bus->chipinfo.id != BCMA_CHIP_ID_BCM53018) 195 + bcma_core_set_clockmode(cc->core, 196 + ticks ? BCMA_CLKMODE_FAST : BCMA_CLKMODE_DYNAMIC); 197 + 192 198 if (ticks > maxt) 193 199 ticks = maxt; 194 200 /* instant NMI */