/* Call back function for devlink ops */ staticconststruct devlink_ops devlink_flash_ops = {
.flash_update = ipc_devlink_flash_update,
};
/** * ipc_devlink_send_cmd - Send command to Modem * @ipc_devlink: Pointer to struct iosm_devlink * @cmd: Command to be sent to modem * @entry: Command entry number * * Returns: 0 on success and failure value on error
*/ int ipc_devlink_send_cmd(struct iosm_devlink *ipc_devlink, u16 cmd, u32 entry)
{ struct iosm_rpsi_cmd rpsi_cmd;
/* Send coredump end cmd indicating end of coredump collection */ if (cd_list->entry == (IOSM_NOF_CD_REGION - 1))
ipc_coredump_get_list(ipc_devlink, rpsi_cmd_coredump_end);
/* To create regions for coredump files */ staticint ipc_devlink_create_region(struct iosm_devlink *devlink)
{ struct devlink_region_ops *mdm_coredump; int rc = 0; int i;
mdm_coredump = devlink->iosm_devlink_mdm_coredump; for (i = 0; i < IOSM_NOF_CD_REGION; i++) {
mdm_coredump[i].name = list[i].filename;
mdm_coredump[i].snapshot = ipc_devlink_coredump_snapshot;
mdm_coredump[i].destructor = vfree;
devlink->cd_regions[i] =
devlink_region_create(devlink->devlink_ctx,
&mdm_coredump[i], MAX_SNAPSHOTS,
list[i].default_size);
if (IS_ERR(devlink->cd_regions[i])) {
rc = PTR_ERR(devlink->cd_regions[i]);
dev_err(devlink->dev, "Devlink region fail,err %d", rc); /* Delete previously created regions */ for (i--; i >= 0; i--)
devlink_region_destroy(devlink->cd_regions[i]); goto region_create_fail;
}
list[i].entry = i;
mdm_coredump[i].priv = list + i;
}
region_create_fail: return rc;
}
/* To Destroy devlink regions */ staticvoid ipc_devlink_destroy_region(struct iosm_devlink *ipc_devlink)
{
u8 i;
for (i = 0; i < IOSM_NOF_CD_REGION; i++)
devlink_region_destroy(ipc_devlink->cd_regions[i]);
}
/** * ipc_devlink_init - Initialize/register devlink to IOSM driver * @ipc_imem: Pointer to struct iosm_imem * * Returns: Pointer to iosm_devlink on success and NULL on failure
*/ struct iosm_devlink *ipc_devlink_init(struct iosm_imem *ipc_imem)
{ struct ipc_chnl_cfg chnl_cfg_flash = { 0 }; struct iosm_devlink *ipc_devlink; struct devlink *devlink_ctx; int rc;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.