Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/sdmmc clear all interrupts, not just those we expect...



details:   https://anonhg.NetBSD.org/src/rev/78ce07e1ee3b
branches:  trunk
changeset: 974004:78ce07e1ee3b
user:      mrg <mrg%NetBSD.org@localhost>
date:      Mon Jul 20 06:47:02 2020 +0000

description:
clear all interrupts, not just those we expect from the hostintmask.

this removes the final hard hang i have seen in pinebookpro wifi,
though one may still need to 'ifconfig bwfm0 down up' occasionally,
so we still have bugs to fix here (the hang is usually associated
with 'checksum error' from bwfm/sdio.)

diffstat:

 sys/dev/sdmmc/if_bwfm_sdio.c |  3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diffs (17 lines):

diff -r cae78bb8f9e1 -r 78ce07e1ee3b sys/dev/sdmmc/if_bwfm_sdio.c
--- a/sys/dev/sdmmc/if_bwfm_sdio.c      Mon Jul 20 06:44:55 2020 +0000
+++ b/sys/dev/sdmmc/if_bwfm_sdio.c      Mon Jul 20 06:47:02 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_bwfm_sdio.c,v 1.20 2020/07/20 06:44:55 mrg Exp $ */
+/* $NetBSD: if_bwfm_sdio.c,v 1.21 2020/07/20 06:47:02 mrg Exp $ */
 /* $OpenBSD: if_bwfm_sdio.c,v 1.1 2017/10/11 17:19:50 patrick Exp $ */
 /*
  * Copyright (c) 2010-2016 Broadcom Corporation
@@ -1466,7 +1466,6 @@
 
        intstat = bwfm_sdio_dev_read(sc, BWFM_SDPCMD_INTSTATUS);
        DPRINTF(("%s: intstat 0x%" PRIx32 "\n", DEVNAME(sc), intstat));
-       intstat &= (SDPCMD_INTSTATUS_HMB_SW_MASK|SDPCMD_INTSTATUS_CHIPACTIVE);
        if (intstat)
                bwfm_sdio_dev_write(sc, BWFM_SDPCMD_INTSTATUS, intstat);
 



Home | Main Index | Thread Index | Old Index