On Thu, 26 May 2016 14:12:10 +0200 Lukas Wunner <lukas@xxxxxxxxx> wrote: > + mmio = early_ioremap(addr, BCM4331_MMIO_SIZE); > + if (!mmio) { > + pr_err("Cannot iomap Apple AirPort card\n"); > + return; > + } > + pr_info("Resetting Apple AirPort card\n"); > + iowrite32(BCMA_RESET_CTL_RESET, > + mmio + (1 * BCMA_CORE_SIZE) + BCMA_RESET_CTL); > + early_iounmap(mmio, BCM4331_MMIO_SIZE); Just writing that bit is not the correct reset procedure. So it might cause problems depending on how wl does the core reset later. Please try this: - wait for BCMA_RESET_ST to be 0 - set reset bit - flush - wait 1us - reset reset bit - flush - wait 10us See bcma_core_disable() -- Michael
Attachment:
pgpqeIT5yJXyX.pgp
Description: OpenPGP digital signature