ath10k: check chip id from the soc register during probe
authorKalle Valo <kvalo@qca.qualcomm.com>
Sun, 1 Sep 2013 08:22:14 +0000 (11:22 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Tue, 3 Sep 2013 06:54:16 +0000 (09:54 +0300)
commite01ae68c5d8889588db6b7fcf3e3d7821a3365fb
treefc036fb91c1cfb78153aee39c1326e78acca2cff
parente9780367b0f43536b460fd83931f7c111ec99470
ath10k: check chip id from the soc register during probe

ath10k doesn't support qca988x hw1.0 boards anymore. Unfortunately
the PCI id is the same in hw1.0 and hw2.0 so ath10k tries to use
hw1.0 boards anyway. But without hw1.0 workarounds in place
ath10k just crashes horribly.

To avoid using hw1.0 boards at all add a chip id detection
and fail the probe if hw1.0 is detected:

[ 5265.786408] ath10k: ERROR: qca988x hw1.0 is not supported
[ 5265.786497] ath10k: Unsupported chip id 0x043200ff
[ 5265.786574] ath10k: could not register driver core (-95)
[ 5265.793191] ath10k_pci: probe of 0000:02:00.0 failed with error -95

Also add a warning if there's an unknown chip id but continue
the boot process normally anyway.

Reported-by: Zaki Bakar <zaki.bm@gmail.com>
Tested-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/core.c
drivers/net/wireless/ath/ath10k/core.h
drivers/net/wireless/ath/ath10k/hw.h
drivers/net/wireless/ath/ath10k/pci.c