forked from Minki/linux
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
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
/* mmc_host_ops members */
|
||||
/*--------------------------------------------------------------------------*/
|
||||
static unsigned int msdc_command_start(struct msdc_host *host,
|
||||
struct mmc_command *cmd,
|
||||
unsigned long timeout)
|
||||
static inline u32 msdc_cmd_find_resp(struct mmc_command *cmd)
|
||||
{
|
||||
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!
|
||||
*/
|
||||
if (opcode == MMC_SEND_OP_COND || opcode == SD_APP_OP_COND) {
|
||||
resp = RESP_R3;
|
||||
} 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;
|
||||
/* rawcmd :
|
||||
* vol_swt << 30 | auto_cmd << 28 | blklen << 16 | go_irq << 15 |
|
||||
|
Loading…
Reference in New Issue
Block a user