[PATCH 6/7] ath10k: fix device initialization routine
Kalle Valo
kvalo at qca.qualcomm.com
Wed Oct 16 09:31:42 EDT 2013
Michal Kazior <michal.kazior at tieto.com> writes:
> Hardware revision 2 does not support cold reset
> correctly. As such it would sometimes lead to host
> machine freeze or data bus errors.
>
> The patch introduces warm reset function which is
> used instead of the cold reset one. It also moves
> the reset before interrupts are being set up to
> prevent any kind of spurious interrupts from being
> handled.
>
> Signed-off-by: Michal Kazior <michal.kazior at tieto.com>
[...]
> + /* reset CE */
> + addr = ar_pci->mem + RTC_SOC_BASE_ADDRESS + SOC_RESET_CONTROL_ADDRESS;
> + val = ioread32(addr);
> + val |= SOC_RESET_CONTROL_CE_RST_MASK;
> + iowrite32(val, addr);
> + val = ioread32(addr);
> + msleep(10);
> +
> + /* unreset CE */
> + val &= ~SOC_RESET_CONTROL_CE_RST_MASK, addr;
> + iowrite32(val, addr);
This looks wrong, I assume it was supposed to be this:
val &= ~SOC_RESET_CONTROL_CE_RST_MASK;
--
Kalle Valo
More information about the ath10k
mailing list