Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/usb/controller/musb_otg_allwinner.c
Show All 39 Lines | |||||
#include <sys/param.h> | #include <sys/param.h> | ||||
#include <sys/systm.h> | #include <sys/systm.h> | ||||
#include <sys/bus.h> | #include <sys/bus.h> | ||||
#include <sys/rman.h> | #include <sys/rman.h> | ||||
#include <sys/kernel.h> | #include <sys/kernel.h> | ||||
#include <sys/condvar.h> | #include <sys/condvar.h> | ||||
#include <sys/module.h> | #include <sys/module.h> | ||||
#include <machine/bus.h> | #include <machine/bus.h> | ||||
#include <dev/ofw/ofw_bus.h> | #include <dev/ofw/ofw_bus.h> | ||||
#include <dev/ofw/ofw_bus_subr.h> | #include <dev/ofw/ofw_bus_subr.h> | ||||
#include <dev/usb/usb.h> | #include <dev/usb/usb.h> | ||||
#include <dev/usb/usbdi.h> | #include <dev/usb/usbdi.h> | ||||
▲ Show 20 Lines • Show All 184 Lines • ▼ Show 20 Lines | awusbdrd_filt(bus_size_t o) | ||||
default: | default: | ||||
return (0); | return (0); | ||||
} | } | ||||
} | } | ||||
static uint8_t | static uint8_t | ||||
awusbdrd_bs_r_1(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o) | awusbdrd_bs_r_1(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o) | ||||
{ | { | ||||
const struct bus_space *bs = t; | struct bus_space *bs = t; | ||||
andrew: Can you split this out to a new review as we need it for other sanitizers, e.g. `KCSAN` | |||||
kevansAuthorUnsubmitted Done Inline ActionsSorry, I had actually forgotten this in the first round, but this is done now as well. kevans: Sorry, I had actually forgotten this in the first round, but this is done now as well. | |||||
switch (o) { | switch (o) { | ||||
case MUSB2_REG_HWVERS: | case MUSB2_REG_HWVERS: | ||||
return (0); /* no known equivalent */ | return (0); /* no known equivalent */ | ||||
} | } | ||||
return (bus_space_read_1(bs_parent_space(bs), h, awusbdrd_reg(o))); | return (bus_space_read_1(bs_parent_space(bs), h, awusbdrd_reg(o))); | ||||
} | } | ||||
Show All 11 Lines | awusbdrd_bs_r_1_noconf(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o) | ||||
return (awusbdrd_bs_r_1(t, h, o)); | return (awusbdrd_bs_r_1(t, h, o)); | ||||
} | } | ||||
static uint16_t | static uint16_t | ||||
awusbdrd_bs_r_2(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o) | awusbdrd_bs_r_2(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o) | ||||
{ | { | ||||
const struct bus_space *bs = t; | struct bus_space *bs = t; | ||||
if (awusbdrd_filt(o) != 0) | if (awusbdrd_filt(o) != 0) | ||||
return (0); | return (0); | ||||
return bus_space_read_2(bs_parent_space(bs), h, awusbdrd_reg(o)); | return bus_space_read_2(bs_parent_space(bs), h, awusbdrd_reg(o)); | ||||
} | } | ||||
static void | static void | ||||
awusbdrd_bs_w_1(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o, | awusbdrd_bs_w_1(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o, | ||||
uint8_t v) | uint8_t v) | ||||
{ | { | ||||
const struct bus_space *bs = t; | struct bus_space *bs = t; | ||||
if (awusbdrd_filt(o) != 0) | if (awusbdrd_filt(o) != 0) | ||||
return; | return; | ||||
bus_space_write_1(bs_parent_space(bs), h, awusbdrd_reg(o), v); | bus_space_write_1(bs_parent_space(bs), h, awusbdrd_reg(o), v); | ||||
} | } | ||||
static void | static void | ||||
awusbdrd_bs_w_2(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o, | awusbdrd_bs_w_2(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o, | ||||
uint16_t v) | uint16_t v) | ||||
{ | { | ||||
const struct bus_space *bs = t; | struct bus_space *bs = t; | ||||
if (awusbdrd_filt(o) != 0) | if (awusbdrd_filt(o) != 0) | ||||
return; | return; | ||||
bus_space_write_2(bs_parent_space(bs), h, awusbdrd_reg(o), v); | bus_space_write_2(bs_parent_space(bs), h, awusbdrd_reg(o), v); | ||||
} | } | ||||
static void | static void | ||||
awusbdrd_bs_rm_1(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o, | awusbdrd_bs_rm_1(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o, | ||||
uint8_t *d, bus_size_t c) | uint8_t *d, bus_size_t c) | ||||
{ | { | ||||
const struct bus_space *bs = t; | struct bus_space *bs = t; | ||||
bus_space_read_multi_1(bs_parent_space(bs), h, awusbdrd_reg(o), d, c); | bus_space_read_multi_1(bs_parent_space(bs), h, awusbdrd_reg(o), d, c); | ||||
} | } | ||||
static void | static void | ||||
awusbdrd_bs_rm_4(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o, | awusbdrd_bs_rm_4(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o, | ||||
uint32_t *d, bus_size_t c) | uint32_t *d, bus_size_t c) | ||||
{ | { | ||||
const struct bus_space *bs = t; | struct bus_space *bs = t; | ||||
bus_space_read_multi_4(bs_parent_space(bs), h, awusbdrd_reg(o), d, c); | bus_space_read_multi_4(bs_parent_space(bs), h, awusbdrd_reg(o), d, c); | ||||
} | } | ||||
static void | static void | ||||
awusbdrd_bs_wm_1(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o, | awusbdrd_bs_wm_1(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o, | ||||
const uint8_t *d, bus_size_t c) | const uint8_t *d, bus_size_t c) | ||||
{ | { | ||||
const struct bus_space *bs = t; | struct bus_space *bs = t; | ||||
if (awusbdrd_filt(o) != 0) | if (awusbdrd_filt(o) != 0) | ||||
return; | return; | ||||
bus_space_write_multi_1(bs_parent_space(bs), h, awusbdrd_reg(o), d, c); | bus_space_write_multi_1(bs_parent_space(bs), h, awusbdrd_reg(o), d, c); | ||||
} | } | ||||
static void | static void | ||||
awusbdrd_bs_wm_4(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o, | awusbdrd_bs_wm_4(awusb_bs_tag t, bus_space_handle_t h, bus_size_t o, | ||||
const uint32_t *d, bus_size_t c) | const uint32_t *d, bus_size_t c) | ||||
{ | { | ||||
const struct bus_space *bs = t; | struct bus_space *bs = t; | ||||
if (awusbdrd_filt(o) != 0) | if (awusbdrd_filt(o) != 0) | ||||
return; | return; | ||||
bus_space_write_multi_4(bs_parent_space(bs), h, awusbdrd_reg(o), d, c); | bus_space_write_multi_4(bs_parent_space(bs), h, awusbdrd_reg(o), d, c); | ||||
} | } | ||||
static void | static void | ||||
▲ Show 20 Lines • Show All 276 Lines • Show Last 20 Lines |
Can you split this out to a new review as we need it for other sanitizers, e.g. KCSAN