[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