Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/mmc/mmc.c
Show First 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | |||||
#include <sys/systm.h> | #include <sys/systm.h> | ||||
#include <sys/kernel.h> | #include <sys/kernel.h> | ||||
#include <sys/malloc.h> | #include <sys/malloc.h> | ||||
#include <sys/lock.h> | #include <sys/lock.h> | ||||
#include <sys/module.h> | #include <sys/module.h> | ||||
#include <sys/mutex.h> | #include <sys/mutex.h> | ||||
#include <sys/bus.h> | #include <sys/bus.h> | ||||
#include <sys/endian.h> | #include <sys/endian.h> | ||||
#include <sys/sbuf.h> | |||||
#include <sys/sysctl.h> | #include <sys/sysctl.h> | ||||
#include <sys/time.h> | #include <sys/time.h> | ||||
#include <dev/mmc/bridge.h> | #include <dev/mmc/bridge.h> | ||||
#include <dev/mmc/mmc_private.h> | #include <dev/mmc/mmc_private.h> | ||||
#include <dev/mmc/mmc_subr.h> | #include <dev/mmc/mmc_subr.h> | ||||
#include <dev/mmc/mmcreg.h> | #include <dev/mmc/mmcreg.h> | ||||
#include <dev/mmc/mmcbrvar.h> | #include <dev/mmc/mmcbrvar.h> | ||||
▲ Show 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | |||||
static int mmc_debug; | static int mmc_debug; | ||||
SYSCTL_INT(_hw_mmc, OID_AUTO, debug, CTLFLAG_RWTUN, &mmc_debug, 0, | SYSCTL_INT(_hw_mmc, OID_AUTO, debug, CTLFLAG_RWTUN, &mmc_debug, 0, | ||||
"Debug level"); | "Debug level"); | ||||
/* bus entry points */ | /* bus entry points */ | ||||
static int mmc_acquire_bus(device_t busdev, device_t dev); | static int mmc_acquire_bus(device_t busdev, device_t dev); | ||||
static int mmc_attach(device_t dev); | static int mmc_attach(device_t dev); | ||||
static int mmc_child_location_str(device_t dev, device_t child, char *buf, | static int mmc_child_location(device_t dev, device_t child, struct sbuf *sb); | ||||
size_t buflen); | |||||
static int mmc_detach(device_t dev); | static int mmc_detach(device_t dev); | ||||
static int mmc_probe(device_t dev); | static int mmc_probe(device_t dev); | ||||
static int mmc_read_ivar(device_t bus, device_t child, int which, | static int mmc_read_ivar(device_t bus, device_t child, int which, | ||||
uintptr_t *result); | uintptr_t *result); | ||||
static int mmc_release_bus(device_t busdev, device_t dev); | static int mmc_release_bus(device_t busdev, device_t dev); | ||||
static int mmc_resume(device_t dev); | static int mmc_resume(device_t dev); | ||||
static void mmc_retune_pause(device_t busdev, device_t dev, bool retune); | static void mmc_retune_pause(device_t busdev, device_t dev, bool retune); | ||||
static void mmc_retune_unpause(device_t busdev, device_t dev); | static void mmc_retune_unpause(device_t busdev, device_t dev); | ||||
▲ Show 20 Lines • Show All 2,380 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
struct mmc_softc *sc = xsc; | struct mmc_softc *sc = xsc; | ||||
mmc_scan(sc); | mmc_scan(sc); | ||||
config_intrhook_disestablish(&sc->config_intrhook); | config_intrhook_disestablish(&sc->config_intrhook); | ||||
} | } | ||||
static int | static int | ||||
mmc_child_location_str(device_t dev, device_t child, char *buf, | mmc_child_location(device_t dev, device_t child, struct sbuf *sb) | ||||
size_t buflen) | |||||
{ | { | ||||
snprintf(buf, buflen, "rca=0x%04x", mmc_get_rca(child)); | sbuf_printf(sb, "rca=0x%04x", mmc_get_rca(child)); | ||||
return (0); | return (0); | ||||
} | } | ||||
static device_method_t mmc_methods[] = { | static device_method_t mmc_methods[] = { | ||||
/* device_if */ | /* device_if */ | ||||
DEVMETHOD(device_probe, mmc_probe), | DEVMETHOD(device_probe, mmc_probe), | ||||
DEVMETHOD(device_attach, mmc_attach), | DEVMETHOD(device_attach, mmc_attach), | ||||
DEVMETHOD(device_detach, mmc_detach), | DEVMETHOD(device_detach, mmc_detach), | ||||
DEVMETHOD(device_suspend, mmc_suspend), | DEVMETHOD(device_suspend, mmc_suspend), | ||||
DEVMETHOD(device_resume, mmc_resume), | DEVMETHOD(device_resume, mmc_resume), | ||||
/* Bus interface */ | /* Bus interface */ | ||||
DEVMETHOD(bus_read_ivar, mmc_read_ivar), | DEVMETHOD(bus_read_ivar, mmc_read_ivar), | ||||
DEVMETHOD(bus_write_ivar, mmc_write_ivar), | DEVMETHOD(bus_write_ivar, mmc_write_ivar), | ||||
DEVMETHOD(bus_child_location_str, mmc_child_location_str), | DEVMETHOD(bus_child_location, mmc_child_location), | ||||
/* MMC Bus interface */ | /* MMC Bus interface */ | ||||
DEVMETHOD(mmcbus_retune_pause, mmc_retune_pause), | DEVMETHOD(mmcbus_retune_pause, mmc_retune_pause), | ||||
DEVMETHOD(mmcbus_retune_unpause, mmc_retune_unpause), | DEVMETHOD(mmcbus_retune_unpause, mmc_retune_unpause), | ||||
DEVMETHOD(mmcbus_wait_for_request, mmc_wait_for_request), | DEVMETHOD(mmcbus_wait_for_request, mmc_wait_for_request), | ||||
DEVMETHOD(mmcbus_acquire_bus, mmc_acquire_bus), | DEVMETHOD(mmcbus_acquire_bus, mmc_acquire_bus), | ||||
DEVMETHOD(mmcbus_release_bus, mmc_release_bus), | DEVMETHOD(mmcbus_release_bus, mmc_release_bus), | ||||
Show All 11 Lines |