staging: mt7621-mmc: Factor out from msdc_command_start()
Currently msdc_command_start does multiple things and is hard to read, so factor out the finding of the response type. Signed-off-by: Christian Lütke-Stetzkamp <christian@lkamp.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
38ee87eaad
commit
256e086636
|
@ -705,25 +705,11 @@ static void msdc_pm(pm_message_t state, void *data)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
static inline u32 msdc_cmd_find_resp(struct mmc_command *cmd)
|
||||||
/* mmc_host_ops members */
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
static unsigned int msdc_command_start(struct msdc_host *host,
|
|
||||||
struct mmc_command *cmd,
|
|
||||||
unsigned long timeout)
|
|
||||||
{
|
{
|
||||||
u32 opcode = cmd->opcode;
|
u32 opcode = cmd->opcode;
|
||||||
u32 rawcmd;
|
|
||||||
u32 wints = MSDC_INT_CMDRDY | MSDC_INT_RSPCRCERR | MSDC_INT_CMDTMO |
|
|
||||||
MSDC_INT_ACMDRDY | MSDC_INT_ACMDCRCERR | MSDC_INT_ACMDTMO |
|
|
||||||
MSDC_INT_ACMD19_DONE;
|
|
||||||
|
|
||||||
u32 resp;
|
u32 resp;
|
||||||
unsigned long tmo;
|
|
||||||
|
|
||||||
/* Protocol layer does not provide response type, but our hardware needs
|
|
||||||
* to know exact type, not just size!
|
|
||||||
*/
|
|
||||||
if (opcode == MMC_SEND_OP_COND || opcode == SD_APP_OP_COND) {
|
if (opcode == MMC_SEND_OP_COND || opcode == SD_APP_OP_COND) {
|
||||||
resp = RESP_R3;
|
resp = RESP_R3;
|
||||||
} else if (opcode == MMC_SET_RELATIVE_ADDR) {
|
} else if (opcode == MMC_SET_RELATIVE_ADDR) {
|
||||||
|
@ -759,6 +745,30 @@ static unsigned int msdc_command_start(struct msdc_host *host,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
/* mmc_host_ops members */
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
static unsigned int msdc_command_start(struct msdc_host *host,
|
||||||
|
struct mmc_command *cmd,
|
||||||
|
unsigned long timeout)
|
||||||
|
{
|
||||||
|
u32 opcode = cmd->opcode;
|
||||||
|
u32 rawcmd;
|
||||||
|
u32 wints = MSDC_INT_CMDRDY | MSDC_INT_RSPCRCERR | MSDC_INT_CMDTMO |
|
||||||
|
MSDC_INT_ACMDRDY | MSDC_INT_ACMDCRCERR | MSDC_INT_ACMDTMO |
|
||||||
|
MSDC_INT_ACMD19_DONE;
|
||||||
|
|
||||||
|
u32 resp;
|
||||||
|
unsigned long tmo;
|
||||||
|
|
||||||
|
/* Protocol layer does not provide response type, but our hardware needs
|
||||||
|
* to know exact type, not just size!
|
||||||
|
*/
|
||||||
|
resp = msdc_cmd_find_resp(cmd);
|
||||||
|
|
||||||
cmd->error = 0;
|
cmd->error = 0;
|
||||||
/* rawcmd :
|
/* rawcmd :
|
||||||
* vol_swt << 30 | auto_cmd << 28 | blklen << 16 | go_irq << 15 |
|
* vol_swt << 30 | auto_cmd << 28 | blklen << 16 | go_irq << 15 |
|
||||||
|
|
Loading…
Reference in a new issue