Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/tpm/tpm_crb.c
Show First 20 Lines • Show All 159 Lines • ▼ Show 20 Lines | tpmcrb_attach(device_t dev) | ||||
sc->mem_rid = 0; | sc->mem_rid = 0; | ||||
sc->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->mem_rid, | sc->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->mem_rid, | ||||
RF_ACTIVE); | RF_ACTIVE); | ||||
if (sc->mem_res == NULL) | if (sc->mem_res == NULL) | ||||
return (ENXIO); | return (ENXIO); | ||||
if(!tpmcrb_request_locality(sc, 0)) { | if(!tpmcrb_request_locality(sc, 0)) { | ||||
tpmcrb_detach(dev); | bus_release_resource(dev, SYS_RES_MEMORY, | ||||
sc->mem_rid, sc->mem_res); | |||||
return (ENXIO); | return (ENXIO); | ||||
} | } | ||||
/* | /* | ||||
* Disable all interrupts for now, since I don't have a device that | * Disable all interrupts for now, since I don't have a device that | ||||
* works in CRB mode and supports them. | * works in CRB mode and supports them. | ||||
*/ | */ | ||||
AND4(sc, TPM_CRB_INT_ENABLE, ~TPM_CRB_INT_ENABLE_BIT); | AND4(sc, TPM_CRB_INT_ENABLE, ~TPM_CRB_INT_ENABLE_BIT); | ||||
▲ Show 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
static int | static int | ||||
tpmcrb_detach(device_t dev) | tpmcrb_detach(device_t dev) | ||||
{ | { | ||||
struct tpm_sc *sc; | struct tpm_sc *sc; | ||||
sc = device_get_softc(dev); | sc = device_get_softc(dev); | ||||
tpm20_release(sc); | |||||
if (sc->mem_res != NULL) | if (sc->mem_res != NULL) | ||||
bus_release_resource(dev, SYS_RES_MEMORY, | bus_release_resource(dev, SYS_RES_MEMORY, | ||||
sc->mem_rid, sc->mem_res); | sc->mem_rid, sc->mem_res); | ||||
tpm20_release(sc); | |||||
return (0); | return (0); | ||||
} | } | ||||
static bool | static bool | ||||
tpm_wait_for_u32(struct tpm_sc *sc, bus_size_t off, uint32_t mask, uint32_t val, | tpm_wait_for_u32(struct tpm_sc *sc, bus_size_t off, uint32_t mask, uint32_t val, | ||||
int32_t timeout) | int32_t timeout) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 172 Lines • Show Last 20 Lines |