DBC_ASSERT(ul_bytes < (RMS_COMMANDBUFSIZE * sizeof(rms_word)));
status = send_message(disp_obj, node_get_timeout(hnode),
ul_bytes, node_env);
- if (status >= 0) {
- /*
- * Message successfully received from RMS.
- * Return the status of the Node's create function
- * on the DSP-side
- */
- status = (((rms_word *) (disp_obj->pbuf))[0]);
- if (status < 0)
- dev_dbg(bridge, "%s: DSP-side failed: 0x%x\n",
- __func__, status);
- }
}
func_end:
return status;
status = send_message(disp_obj, node_get_timeout(hnode),
sizeof(struct rms_command),
&dw_arg);
- if (status >= 0) {
- /*
- * Message successfully received from RMS.
- * Return the status of the Node's delete
- * function on the DSP-side
- */
- status = (((rms_word *) (disp_obj->pbuf))[0]);
- if (status < 0)
- dev_dbg(bridge, "%s: DSP-side failed: "
- "0x%x\n", __func__, status);
- }
-
}
}
return status;
status = send_message(disp_obj, node_get_timeout(hnode),
sizeof(struct rms_command),
&dw_arg);
- if (status >= 0) {
- /*
- * Message successfully received from RMS.
- * Return the status of the Node's execute
- * function on the DSP-side
- */
- status = (((rms_word *) (disp_obj->pbuf))[0]);
- if (status < 0)
- dev_dbg(bridge, "%s: DSP-side failed: "
- "0x%x\n", __func__, status);
- }
-
}
}
} else {
if (CHNL_IS_IO_COMPLETE(chnl_ioc_obj)) {
DBC_ASSERT(chnl_ioc_obj.pbuf == pbuf);
- status = (*((rms_word *) chnl_ioc_obj.pbuf));
+ if (*((int *)chnl_ioc_obj.pbuf) < 0) {
+ /* Translate DSP's to kernel error */
+ status = -EREMOTEIO;
+ dev_dbg(bridge, "%s: DSP-side failed:"
+ " DSP errcode = 0x%x, Kernel "
+ "errcode = %d\n", __func__,
+ *(int *)pbuf, status);
+ }
*pdw_arg =
(((rms_word *) (chnl_ioc_obj.pbuf))[1]);
} else {