cdx_mcdi
ret = cdx_mcdi_get_num_buses(cdx_mcdi);
ret = cdx_mcdi_get_num_devs(cdx_mcdi, bus_num);
ret = cdx_mcdi_get_dev_config(cdx_mcdi, bus_num,
struct cdx_mcdi *cdx_mcdi;
cdx_mcdi = kzalloc_obj(*cdx_mcdi);
if (!cdx_mcdi)
cdx_mcdi->mcdi_ops = &mcdi_ops;
ret = cdx_mcdi_init(cdx_mcdi);
static unsigned int cdx_mcdi_rpc_timeout(struct cdx_mcdi *cdx, unsigned int cmd)
cdx->priv = cdx_mcdi;
cdx_mcdi_finish(cdx_mcdi);
kfree(cdx_mcdi);
struct cdx_mcdi *cdx_mcdi = cdx->priv;
cdx_mcdi_finish(cdx_mcdi);
kfree(cdx_mcdi);
static void cdx_mcdi_request(struct cdx_mcdi *cdx,
struct cdx_mcdi *cdx_mcdi = cdx->priv;
int cdx_rpmsg_send(struct cdx_mcdi *cdx_mcdi,
void cdx_rpmsg_read_resp(struct cdx_mcdi *cdx_mcdi,
struct cdx_mcdi *cdx_mcdi = cdx_c->priv;
cdx_mcdi_process_cmd(cdx_mcdi, (struct cdx_dword *)data, len);
struct cdx_mcdi *cdx_mcdi;
cdx_mcdi = container_of(work, struct cdx_mcdi, work);
cdx_c = dev_get_drvdata(&cdx_mcdi->rpdev->dev);
struct cdx_mcdi *cdx_mcdi;
cdx_mcdi = cdx_c->priv;
cdx_mcdi->ept = rpmsg_create_ept(rpdev, cdx_rpmsg_cb, NULL, chinfo);
if (!cdx_mcdi->ept) {
cdx_mcdi->rpdev = rpdev;
schedule_work(&cdx_mcdi->work);
struct cdx_mcdi *cdx_mcdi = cdx_c->priv;
flush_work(&cdx_mcdi->work);
rpmsg_destroy_ept(cdx_mcdi->ept);
struct cdx_mcdi *cdx_mcdi;
cdx_mcdi = cdx_c->priv;
INIT_WORK(&cdx_mcdi->work, cdx_rpmsg_post_probe_work);
int cdx_rpmsg_send(struct cdx_mcdi *cdx_mcdi,
ret = rpmsg_send(cdx_mcdi->ept, send_buf, hdr_len + sdu_len);
struct cdx_mcdi *cdx_mcdi;
cdx_mcdi = cdx_c->priv;
cdx_mcdi->r5_rproc = rp;
struct cdx_mcdi *cdx_mcdi;
cdx_mcdi = cdx_c->priv;
rproc_detach(cdx_mcdi->r5_rproc);
rproc_put(cdx_mcdi->r5_rproc);
int cdx_mcdi_init(struct cdx_mcdi *cdx)
void cdx_mcdi_finish(struct cdx_mcdi *cdx)
static void cdx_mcdi_wait_for_cleanup(struct cdx_mcdi *cdx)
int cdx_mcdi_wait_for_quiescence(struct cdx_mcdi *cdx,
static void cdx_mcdi_send_request(struct cdx_mcdi *cdx,
static int cdx_mcdi_errno(struct cdx_mcdi *cdx, unsigned int mcdi_err)
static void cdx_mcdi_cancel_cmd(struct cdx_mcdi *cdx, struct cdx_mcdi_cmd *cmd);
static void cdx_mcdi_wait_for_cleanup(struct cdx_mcdi *cdx);
static int cdx_mcdi_rpc_async_internal(struct cdx_mcdi *cdx,
static void cdx_mcdi_process_cleanup_list(struct cdx_mcdi *cdx,
static void cdx_mcdi_cancel_cmd(struct cdx_mcdi *cdx, struct cdx_mcdi_cmd *cmd)
static void cdx_mcdi_rpc_completer(struct cdx_mcdi *cdx, unsigned long cookie,
static int cdx_mcdi_rpc_sync(struct cdx_mcdi *cdx, unsigned int cmd,
static void cdx_mcdi_mode_fail(struct cdx_mcdi *cdx, struct list_head *cleanup_list);
static void _cdx_mcdi_display_error(struct cdx_mcdi *cdx, unsigned int cmd,
static int cdx_mcdi_rpc_async_internal(struct cdx_mcdi *cdx,
struct cdx_mcdi *cdx = mcdi->cdx;
void cdx_mcdi_process_cmd(struct cdx_mcdi *cdx, struct cdx_dword *outbuf, int len)
struct cdx_mcdi *cdx = mcdi->cdx;
struct cdx_mcdi *cdx = mcdi->cdx;
int cdx_mcdi_rpc(struct cdx_mcdi *cdx, unsigned int cmd,
cdx_mcdi_rpc_async(struct cdx_mcdi *cdx, unsigned int cmd,
static void _cdx_mcdi_display_error(struct cdx_mcdi *cdx, unsigned int cmd,
static void cdx_mcdi_mode_fail(struct cdx_mcdi *cdx, struct list_head *cleanup_list)
static unsigned long cdx_mcdi_rpc_timeout(struct cdx_mcdi *cdx, unsigned int cmd)
int cdx_mcdi_get_num_buses(struct cdx_mcdi *cdx)
int cdx_mcdi_bus_enable(struct cdx_mcdi *cdx, u8 bus_num)
int cdx_mcdi_bus_disable(struct cdx_mcdi *cdx, u8 bus_num)
int cdx_mcdi_write_msi(struct cdx_mcdi *cdx, u8 bus_num, u8 dev_num,
int cdx_mcdi_reset_device(struct cdx_mcdi *cdx, u8 bus_num, u8 dev_num)
static int cdx_mcdi_ctrl_flag_get(struct cdx_mcdi *cdx, u8 bus_num,
static int cdx_mcdi_ctrl_flag_set(struct cdx_mcdi *cdx, u8 bus_num,
int cdx_mcdi_bus_master_enable(struct cdx_mcdi *cdx, u8 bus_num,
int cdx_mcdi_msi_enable(struct cdx_mcdi *cdx, u8 bus_num,
int cdx_mcdi_get_num_devs(struct cdx_mcdi *cdx, int bus_num)
int cdx_mcdi_get_dev_config(struct cdx_mcdi *cdx,
int cdx_mcdi_bus_master_enable(struct cdx_mcdi *cdx, u8 bus_num,
int cdx_mcdi_msi_enable(struct cdx_mcdi *cdx, u8 bus_num,
int cdx_mcdi_get_num_buses(struct cdx_mcdi *cdx);
int cdx_mcdi_get_num_devs(struct cdx_mcdi *cdx, int bus_num);
int cdx_mcdi_get_dev_config(struct cdx_mcdi *cdx,
int cdx_mcdi_bus_enable(struct cdx_mcdi *cdx, u8 bus_num);
int cdx_mcdi_bus_disable(struct cdx_mcdi *cdx, u8 bus_num);
int cdx_mcdi_write_msi(struct cdx_mcdi *cdx, u8 bus_num, u8 dev_num,
int cdx_mcdi_reset_device(struct cdx_mcdi *cdx,
static inline struct cdx_mcdi_iface *cdx_mcdi_if(struct cdx_mcdi *cdx)
int cdx_mcdi_rpc_async(struct cdx_mcdi *cdx, unsigned int cmd,
int cdx_mcdi_wait_for_quiescence(struct cdx_mcdi *cdx,
struct cdx_mcdi *mcdi;
static unsigned int mcdi_rpc_timeout(struct cdx_mcdi *cdx, unsigned int cmd)
static void mcdi_request(struct cdx_mcdi *cdx,
static void get_ddr_config(u32 index, u32 *buffer, struct cdx_mcdi *amd_mcdi)
struct cdx_mcdi *amd_mcdi;
struct cdx_mcdi *cdx;
void cdx_mcdi_finish(struct cdx_mcdi *cdx);
int cdx_mcdi_init(struct cdx_mcdi *cdx);
void cdx_mcdi_process_cmd(struct cdx_mcdi *cdx, struct cdx_dword *outbuf, int len);
int cdx_mcdi_rpc(struct cdx_mcdi *cdx, unsigned int cmd,
void (*mcdi_request)(struct cdx_mcdi *cdx,
unsigned int (*mcdi_rpc_timeout)(struct cdx_mcdi *cdx, unsigned int cmd);
typedef void cdx_mcdi_async_completer(struct cdx_mcdi *cdx,