As a stopgap fix: disable a pci_conf_ access at offset 0x82 on archs
that would mind ;-) IMHO this access violates the PCI spec, so this should be solved differently.
This commit is contained in:
parent
a0dda790c5
commit
6cdfaa0c8f
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pccbb.c,v 1.156 2007/12/09 20:28:11 jmcneill Exp $ */
|
||||
/* $NetBSD: pccbb.c,v 1.157 2007/12/11 11:11:22 martin Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1998, 1999 and 2000
|
||||
|
@ -31,7 +31,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: pccbb.c,v 1.156 2007/12/09 20:28:11 jmcneill Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: pccbb.c,v 1.157 2007/12/11 11:11:22 martin Exp $");
|
||||
|
||||
/*
|
||||
#define CBB_DEBUG
|
||||
|
@ -3243,9 +3243,12 @@ pccbb_suspend(device_t dv)
|
|||
bus_space_write_4(base_memt, base_memh, CB_SOCKET_MASK, reg);
|
||||
/* XXX joerg Disable power to the socket? */
|
||||
|
||||
#ifdef __NO_STRICT_ALIGNMENT
|
||||
/* XXX - the register is at 0x82, so this access is not valid */
|
||||
if (sc->sc_chipset == CB_RX5C47X)
|
||||
sc->sc_ricoh_misc_ctrl = pci_conf_read(sc->sc_pc,
|
||||
sc->sc_tag, RICOH_PCI_MISC_CTRL);
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -3262,9 +3265,12 @@ pccbb_resume(device_t dv)
|
|||
/* setup memory and io space window for CB */
|
||||
pccbb_winset(0x1000, sc, sc->sc_memt);
|
||||
pccbb_winset(0x04, sc, sc->sc_iot);
|
||||
#ifdef __NO_STRICT_ALIGNMENT
|
||||
/* XXX - the register is at 0x82, so this access is not valid */
|
||||
if (sc->sc_chipset == CB_RX5C47X)
|
||||
pci_conf_write(sc->sc_pc, sc->sc_tag,
|
||||
RICOH_PCI_MISC_CTRL, sc->sc_ricoh_misc_ctrl);
|
||||
#endif
|
||||
|
||||
/* CSC Interrupt: Card detect interrupt on */
|
||||
reg = bus_space_read_4(base_memt, base_memh, CB_SOCKET_MASK);
|
||||
|
|
Loading…
Reference in New Issue