Lines Matching +full:data +full:- +full:addr

1 /*-
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
34 uint32_t addr, in sdio_rw_direct() argument
36 uint8_t *data, uint8_t *resp) { in sdio_rw_direct() argument
45 return (-1); in sdio_rw_direct()
47 bzero(&(&ccb->ccb_h)[1], in sdio_rw_direct()
48 sizeof(union ccb) - sizeof(struct ccb_hdr)); in sdio_rw_direct()
51 arg = SD_IO_RW_FUNC(func_number) | SD_IO_RW_ADR(addr); in sdio_rw_direct()
53 arg |= SD_IO_RW_WR | SD_IO_RW_RAW | SD_IO_RW_DAT(*data); in sdio_rw_direct()
55 cam_fill_mmcio(&ccb->mmcio, in sdio_rw_direct()
66 || ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP)) { in sdio_rw_direct()
73 return (-1); in sdio_rw_direct()
76 *resp = ccb->mmcio.cmd.resp[0] & 0xFF; in sdio_rw_direct()
82 * CMD53 -- IO_RW_EXTENDED
91 uint32_t addr, in sdio_rw_extended() argument
93 caddr_t data, size_t datalen, in sdio_rw_extended() argument
106 return (-1); in sdio_rw_extended()
112 return (-1); in sdio_rw_extended()
114 bzero(&(&ccb->ccb_h)[1], in sdio_rw_extended()
115 sizeof(union ccb) - sizeof(struct ccb_hdr)); in sdio_rw_extended()
118 arg = SD_IO_RW_FUNC(func_number) | SD_IO_RW_ADR(addr) | in sdio_rw_extended()
124 mmcd.data = data; in sdio_rw_extended()
137 cam_fill_mmcio(&ccb->mmcio, in sdio_rw_extended()
148 || ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP)) { in sdio_rw_extended()
155 return (-1); in sdio_rw_extended()
158 resp = ccb->mmcio.cmd.resp[0] & 0xFF; in sdio_rw_extended()
167 sdio_read_bool_for_func(struct cam_device *dev, uint32_t addr, uint8_t func_number, uint8_t *is_ena… in sdio_read_bool_for_func() argument
171 ret = sdio_rw_direct(dev, 0, addr, 0, NULL, &resp); in sdio_read_bool_for_func()
181 sdio_set_bool_for_func(struct cam_device *dev, uint32_t addr, uint8_t func_number, int enable) { in sdio_set_bool_for_func() argument
186 ret = sdio_rw_direct(dev, 0, addr, 0, NULL, &resp); in sdio_set_bool_for_func()
199 ret = sdio_rw_direct(dev, 0, addr, 1, &resp, &resp); in sdio_set_bool_for_func()
206 sdio_read_1(struct cam_device *dev, uint8_t func_number, uint32_t addr, int *ret) { in sdio_read_1() argument
208 *ret = sdio_rw_direct(dev, func_number, addr, 0, NULL, &val); in sdio_read_1()
213 sdio_write_1(struct cam_device *dev, uint8_t func_number, uint32_t addr, uint8_t val) { in sdio_write_1() argument
215 return sdio_rw_direct(dev, func_number, addr, 0, &val, &_val); in sdio_write_1()
219 sdio_read_2(struct cam_device *dev, uint8_t func_number, uint32_t addr, int *ret) { in sdio_read_2() argument
221 *ret = sdio_rw_extended(dev, func_number, addr, in sdio_read_2()
223 /* data */ (caddr_t) &val, in sdio_read_2()
233 sdio_write_2(struct cam_device *dev, uint8_t func_number, uint32_t addr, uint16_t val) { in sdio_write_2() argument
234 return sdio_rw_extended(dev, func_number, addr, in sdio_write_2()
236 /* data */ (caddr_t) &val, in sdio_write_2()
244 sdio_read_4(struct cam_device *dev, uint8_t func_number, uint32_t addr, int *ret) { in sdio_read_4() argument
246 *ret = sdio_rw_extended(dev, func_number, addr, in sdio_read_4()
248 /* data */ (caddr_t) &val, in sdio_read_4()
258 sdio_write_4(struct cam_device *dev, uint8_t func_number, uint32_t addr, uint32_t val) { in sdio_write_4() argument
259 return sdio_rw_extended(dev, func_number, addr, in sdio_write_4()
261 /* data */ (caddr_t) &val, in sdio_write_4()
268 /* Higher-level wrappers for certain management operations */
306 /* Already set to 1-bit */ in sdio_card_set_bus_width()
312 warn("Cannot do 8-bit on SDIO yet"); in sdio_card_set_bus_width()
313 return -1; in sdio_card_set_bus_width()
328 uint32_t addr; in sdio_func_read_cis() local
337 addr = cis_addr; in sdio_func_read_cis()
338 tuple_id = sdio_read_1(dev, 0, addr++, &ret); in sdio_func_read_cis()
345 tuple_len = sdio_read_1(dev, 0, addr++, &ret); in sdio_func_read_cis()
347 warn("Parse error: 0-length tuple %02X\n", tuple_id); in sdio_func_read_cis()
348 return -1; in sdio_func_read_cis()
353 addr += 2; in sdio_func_read_cis()
356 ch = sdio_read_1(dev, 0, addr + i, &ret); in sdio_func_read_cis()
375 info->man_id = sdio_read_1(dev, 0, addr++, &ret); in sdio_func_read_cis()
376 info->man_id |= sdio_read_1(dev, 0, addr++, &ret) << 8; in sdio_func_read_cis()
378 info->prod_id = sdio_read_1(dev, 0, addr++, &ret); in sdio_func_read_cis()
379 info->prod_id |= sdio_read_1(dev, 0, addr++, &ret) << 8; in sdio_func_read_cis()
391 addr++; in sdio_func_read_cis()
392 info->max_block_size = sdio_read_1(dev, 0, addr++, &ret); in sdio_func_read_cis()
393 info->max_block_size |= sdio_read_1(dev, 0, addr++, &ret) << 8; in sdio_func_read_cis()
395 info->max_block_size = sdio_read_1(dev, 0, addr + 0xC, &ret); in sdio_func_read_cis()
396 info->max_block_size |= sdio_read_1(dev, 0, addr + 0xD, &ret) << 8; in sdio_func_read_cis()
411 uint32_t addr; in sdio_get_common_cis_addr() local
414 addr = sdio_read_1(dev, 0, SD_IO_CCCR_CISPTR, &ret); in sdio_get_common_cis_addr()
415 addr |= sdio_read_1(dev, 0, SD_IO_CCCR_CISPTR + 1, &ret) << 8; in sdio_get_common_cis_addr()
416 addr |= sdio_read_1(dev, 0, SD_IO_CCCR_CISPTR + 2, &ret) << 16; in sdio_get_common_cis_addr()
418 if (addr < SD_IO_CIS_START || addr > SD_IO_CIS_START + SD_IO_CIS_SIZE) { in sdio_get_common_cis_addr()
419 warn("Bad CIS address: %04X\n", addr); in sdio_get_common_cis_addr()
420 addr = 0; in sdio_get_common_cis_addr()
423 return addr; in sdio_get_common_cis_addr()