in clients/ssi_protocol.c [816:853]
static void ssip_rxcmd_complete(struct hsi_msg *msg)
{
struct hsi_client *cl = msg->cl;
u32 cmd = ssip_get_cmd(msg);
unsigned int cmdid = SSIP_COMMAND(cmd);
if (msg->status == HSI_STATUS_ERROR) {
dev_err(&cl->device, "RX error detected\n");
ssip_release_cmd(msg);
ssip_error(cl);
return;
}
hsi_async_read(cl, msg);
dev_dbg(&cl->device, "RX cmd: 0x%08x\n", cmd);
switch (cmdid) {
case SSIP_SW_BREAK:
/* Ignored */
break;
case SSIP_BOOTINFO_REQ:
ssip_rx_bootinforeq(cl, cmd);
break;
case SSIP_BOOTINFO_RESP:
ssip_rx_bootinforesp(cl, cmd);
break;
case SSIP_WAKETEST_RESULT:
ssip_rx_waketest(cl, cmd);
break;
case SSIP_START_TRANS:
ssip_rx_strans(cl, cmd);
break;
case SSIP_READY:
ssip_rx_ready(cl);
break;
default:
dev_warn(&cl->device, "command 0x%08x not supported\n", cmd);
break;
}
}