Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/rtsx/rtsx.c
| Show First 20 Lines • Show All 305 Lines • ▼ Show 20 Lines | |||||
| #define RTSX_MIN_DIV_N 80 | #define RTSX_MIN_DIV_N 80 | ||||
| #define RTSX_MAX_DIV_N 208 | #define RTSX_MAX_DIV_N 208 | ||||
| #define RTSX_MAX_DATA_BLKLEN 512 | #define RTSX_MAX_DATA_BLKLEN 512 | ||||
| #define RTSX_DMA_ALIGN 4 | #define RTSX_DMA_ALIGN 4 | ||||
| #define RTSX_HOSTCMD_MAX 256 | #define RTSX_HOSTCMD_MAX 256 | ||||
| #define RTSX_DMA_CMD_BIFSIZE (sizeof(uint32_t) * RTSX_HOSTCMD_MAX) | #define RTSX_DMA_CMD_BIFSIZE (sizeof(uint32_t) * RTSX_HOSTCMD_MAX) | ||||
| #define RTSX_DMA_DATA_BUFSIZE MAXPHYS | #define RTSX_DMA_DATA_BUFSIZE maxphys | ||||
| #define ISSET(t, f) ((t) & (f)) | #define ISSET(t, f) ((t) & (f)) | ||||
| #define READ4(sc, reg) \ | #define READ4(sc, reg) \ | ||||
| (bus_space_read_4((sc)->rtsx_mem_btag, (sc)->rtsx_mem_bhandle, (reg))) | (bus_space_read_4((sc)->rtsx_mem_btag, (sc)->rtsx_mem_bhandle, (reg))) | ||||
| #define WRITE4(sc, reg, val) \ | #define WRITE4(sc, reg, val) \ | ||||
| (bus_space_write_4((sc)->rtsx_mem_btag, (sc)->rtsx_mem_bhandle, (reg), (val))) | (bus_space_write_4((sc)->rtsx_mem_btag, (sc)->rtsx_mem_bhandle, (reg), (val))) | ||||
| ▲ Show 20 Lines • Show All 2,434 Lines • ▼ Show 20 Lines | cmd->data->xfer_len = (cmd->data->len > RTSX_MAX_DATA_BLKLEN) ? | ||||
| RTSX_MAX_DATA_BLKLEN : cmd->data->len; | RTSX_MAX_DATA_BLKLEN : cmd->data->len; | ||||
| if (sc->rtsx_debug_mask & RTSX_TRACE_SD_CMD) | if (sc->rtsx_debug_mask & RTSX_TRACE_SD_CMD) | ||||
| device_printf(sc->rtsx_dev, "rtsx_xfer() - %s xfer: %ld bytes with block size %ld\n", | device_printf(sc->rtsx_dev, "rtsx_xfer() - %s xfer: %ld bytes with block size %ld\n", | ||||
| read ? "Read" : "Write", | read ? "Read" : "Write", | ||||
| (unsigned long)cmd->data->len, (unsigned long)cmd->data->xfer_len); | (unsigned long)cmd->data->len, (unsigned long)cmd->data->xfer_len); | ||||
| if (cmd->data->len > RTSX_DMA_DATA_BUFSIZE) { | if (cmd->data->len > RTSX_DMA_DATA_BUFSIZE) { | ||||
| device_printf(sc->rtsx_dev, "rtsx_xfer() length too large: %ld > %d\n", | device_printf(sc->rtsx_dev, "rtsx_xfer() length too large: %ld > %ld\n", | ||||
| (unsigned long)cmd->data->len, RTSX_DMA_DATA_BUFSIZE); | (unsigned long)cmd->data->len, RTSX_DMA_DATA_BUFSIZE); | ||||
| cmd->error = MMC_ERR_INVALID; | cmd->error = MMC_ERR_INVALID; | ||||
| return (MMC_ERR_INVALID); | return (MMC_ERR_INVALID); | ||||
| } | } | ||||
| if (!read) { | if (!read) { | ||||
| /* Set transfer OK function. */ | /* Set transfer OK function. */ | ||||
| sc->rtsx_intr_trans_ok = rtsx_xfer_begin; | sc->rtsx_intr_trans_ok = rtsx_xfer_begin; | ||||
| ▲ Show 20 Lines • Show All 1,137 Lines • Show Last 20 Lines | |||||