Lines Matching refs:sdioh_info
223 static int sdstd_check_errs(sdioh_info_t *sdioh_info, uint32 cmd, uint32 arg);
1646 sdstd_check_errs(sdioh_info_t *sdioh_info, uint32 cmd, uint32 arg) in sdstd_check_errs() argument
1653 if ((regval = sdstd_rreg16(sdioh_info, SD_ErrorIntrStatus)) == 0) in sdstd_check_errs()
1659 sdstd_wreg16(sdioh_info, SD_ErrorIntrStatus, regval); in sdstd_check_errs()
1665 __FUNCTION__, regval, sdstd_rreg16(sdioh_info, SD_IntrStatus), in sdstd_check_errs()
1666 sdstd_rreg(sdioh_info, SD_PresentState))); in sdstd_check_errs()
1667 sdstd_wreg16(sdioh_info, SD_ErrorIntrStatus, regval); in sdstd_check_errs()
1678 sdstd_wreg8(sdioh_info, SD_SoftwareReset, SFIELD(0, SW_RESET_CMD, 1)); in sdstd_check_errs()
1680 if (!(GFIELD(sdstd_rreg8(sdioh_info, SD_SoftwareReset), SW_RESET_CMD))) in sdstd_check_errs()
1697 __FUNCTION__, sdstd_rreg(sdioh_info, SD_ADMA_ErrStatus))); in sdstd_check_errs()
1699 sdstd_wreg8(sdioh_info, SD_SoftwareReset, SFIELD(0, SW_RESET_DAT, 1)); in sdstd_check_errs()
1701 if (!(GFIELD(sdstd_rreg8(sdioh_info, SD_SoftwareReset), SW_RESET_DAT))) in sdstd_check_errs()
1724 sdstd_abort(sdioh_info, function); in sdstd_check_errs()
4016 sdstd_cmd_issue(sdioh_info_t *sdioh_info, bool use_dma, uint32 cmd, uint32 arg) in sdstd_cmd_issue() argument
4023 if ((sdioh_info->sd_mode == SDIOH_MODE_SPI) && in sdstd_cmd_issue()
4030 while ((GFIELD(sdstd_rreg(sdioh_info, SD_PresentState), PRES_CMD_INHIBIT)) && --retries) { in sdstd_cmd_issue()
4033 __FUNCTION__, cmd, sdstd_rreg(sdioh_info, SD_PresentState))); in sdstd_cmd_issue()
4162 use_dma = USE_DMA(sdioh_info) && GFIELD(cmd_arg, CMD53_BLK_MODE); in sdstd_cmd_issue()
4169 ASSERT(sdioh_info->sd_blockmode); in sdstd_cmd_issue()
4172 blocksize = MIN((int)sdioh_info->data_xfer_count, in sdstd_cmd_issue()
4173 sdioh_info->client_block_size[func]); in sdstd_cmd_issue()
4181 switch (sdioh_info->sd_dma_mode) { in sdstd_cmd_issue()
4184 __FUNCTION__, sdstd_rreg(sdioh_info, SD_SysAddr), in sdstd_cmd_issue()
4185 (uint32)sdioh_info->dma_phys)); in sdstd_cmd_issue()
4186 sdstd_wreg(sdioh_info, SD_SysAddr, sdioh_info->dma_phys); in sdstd_cmd_issue()
4193 if ((sdioh_info->glom_info.count != 0) && in sdstd_cmd_issue()
4194 (sdioh_info->txglom_mode == SDPCM_TXGLOM_MDESC)) { in sdstd_cmd_issue()
4197 i < sdioh_info->glom_info.count-1; in sdstd_cmd_issue()
4200 glom_info = &(sdioh_info->glom_info); in sdstd_cmd_issue()
4201 sd_create_adma_descriptor(sdioh_info, in sdstd_cmd_issue()
4209 sd_create_adma_descriptor(sdioh_info, in sdstd_cmd_issue()
4211 sdioh_info->glom_info.dma_phys_arr[i], in sdstd_cmd_issue()
4212 sdioh_info->glom_info.nbytes[i], in sdstd_cmd_issue()
4220 sd_create_adma_descriptor(sdioh_info, 0, in sdstd_cmd_issue()
4221 sdioh_info->dma_phys, blockcount*blocksize, in sdstd_cmd_issue()
4227 sd_dump_adma_dscr(sdioh_info); in sdstd_cmd_issue()
4230 sdstd_wreg(sdioh_info, SD_ADMA_SysAddr, in sdstd_cmd_issue()
4231 sdioh_info->adma2_dscr_phys); in sdstd_cmd_issue()
4235 __FUNCTION__, sdioh_info->sd_dma_mode)); in sdstd_cmd_issue()
4242 sdstd_wreg16(sdioh_info, SD_BlockSize, blocksize); in sdstd_cmd_issue()
4243 sdstd_wreg16(sdioh_info, SD_BlockCount, blockcount); in sdstd_cmd_issue()
4247 if (sdioh_info->client_block_size[func] != blocksize) in sdstd_cmd_issue()
4248 set_client_block_size(sdioh_info, func, blocksize); in sdstd_cmd_issue()
4266 while (GFIELD(sdstd_rreg(sdioh_info, SD_PresentState), in sdstd_cmd_issue()
4284 sdstd_wreg16(sdioh_info, SD_TransferMode, xfer_reg); in sdstd_cmd_issue()
4296 sdstd_wreg(sdioh_info, SD_SysAddr, sdioh_info->dma_phys); in sdstd_cmd_issue()
4309 sdstd_wreg16(sdioh_info, SD_BlockSize, bytes); in sdstd_cmd_issue()
4311 sdstd_wreg16(sdioh_info, SD_BlockCount, 1); in sdstd_cmd_issue()
4314 while (GFIELD(sdstd_rreg(sdioh_info, SD_PresentState), in sdstd_cmd_issue()
4326 sdstd_wreg16(sdioh_info, SD_TransferMode, xfer_reg); in sdstd_cmd_issue()
4335 if (sdioh_info->sd_mode == SDIOH_MODE_SPI) { in sdstd_cmd_issue()
4341 sdstd_wreg(sdioh_info, SD_Arg0, arg); in sdstd_cmd_issue()
4360 sdstd_wreg16(sdioh_info, SD_TransferMode, xfer_reg); in sdstd_cmd_issue()
4361 sdstd_wreg16(sdioh_info, SD_BlockSize, 64); in sdstd_cmd_issue()
4362 sdstd_wreg16(sdioh_info, SD_BlockCount, 1); in sdstd_cmd_issue()
4364 sdstd_wreg16(sdioh_info, SD_Command, cmd_reg); in sdstd_cmd_issue()
4373 if (sdioh_info->polled_mode) { in sdstd_cmd_issue()
4382 int_reg = sdstd_rreg16(sdioh_info, SD_IntrStatus); in sdstd_cmd_issue()
4383 sdstd_os_yield(sdioh_info); in sdstd_cmd_issue()
4397 sdstd_rreg16(sdioh_info, SD_ErrorIntrStatus), in sdstd_cmd_issue()
4398 sdstd_rreg(sdioh_info, SD_PresentState))); in sdstd_cmd_issue()
4401 sdstd_wreg8(sdioh_info, SD_SoftwareReset, SFIELD(0, SW_RESET_CMD, 1)); in sdstd_cmd_issue()
4410 } while ((GFIELD(sdstd_rreg8(sdioh_info, SD_SoftwareReset), in sdstd_cmd_issue()
4424 sdstd_wreg16(sdioh_info, SD_IntrStatus, int_reg); in sdstd_cmd_issue()
4427 if (sdstd_check_errs(sdioh_info, cmd, arg)) { in sdstd_cmd_issue()