Lines Matching defs:cdx

11 #include <linux/cdx/cdx_bus.h>
15 #include "../cdx.h"
19 static unsigned int cdx_mcdi_rpc_timeout(struct cdx_mcdi *cdx, unsigned int cmd)
24 static void cdx_mcdi_request(struct cdx_mcdi *cdx,
28 if (cdx_rpmsg_send(cdx, hdr, hdr_len, sdu, sdu_len))
29 dev_err(&cdx->rpdev->dev, "Failed to send rpmsg data\n");
37 static int cdx_bus_enable(struct cdx_controller *cdx, u8 bus_num)
39 return cdx_mcdi_bus_enable(cdx->priv, bus_num);
42 static int cdx_bus_disable(struct cdx_controller *cdx, u8 bus_num)
44 return cdx_mcdi_bus_disable(cdx->priv, bus_num);
47 void cdx_rpmsg_post_probe(struct cdx_controller *cdx)
50 if (cdx_register_controller(cdx))
51 dev_err(cdx->dev, "Failed to register CDX controller\n");
54 void cdx_rpmsg_pre_remove(struct cdx_controller *cdx)
56 cdx_unregister_controller(cdx);
57 cdx_mcdi_wait_for_quiescence(cdx->priv, MCDI_RPC_TIMEOUT);
60 static int cdx_configure_device(struct cdx_controller *cdx,
75 ret = cdx_mcdi_write_msi(cdx->priv, bus_num, dev_num, msi_index, addr, data);
78 ret = cdx_mcdi_reset_device(cdx->priv, bus_num, dev_num);
81 ret = cdx_mcdi_bus_master_enable(cdx->priv, bus_num, dev_num,
85 ret = cdx_mcdi_msi_enable(cdx->priv, bus_num, dev_num, dev_config->msi_enable);
94 static int cdx_scan_devices(struct cdx_controller *cdx)
96 struct cdx_mcdi *cdx_mcdi = cdx->priv;
103 dev_err(cdx->dev,
113 /* Add the bus on cdx subsystem */
114 bus_dev = cdx_bus_add(cdx, bus_num);
121 dev_err(cdx->dev,
134 dev_err(cdx->dev,
139 dev_params.cdx = cdx;
142 /* Add the device to the cdx bus */
145 dev_err(cdx->dev, "registering cdx dev: %d failed: %d\n",
150 dev_dbg(cdx->dev, "CDX dev: %d on cdx bus: %d created\n",
167 struct cdx_controller *cdx;
184 cdx = kzalloc(sizeof(*cdx), GFP_KERNEL);
185 if (!cdx) {
189 platform_set_drvdata(pdev, cdx);
191 cdx->dev = &pdev->dev;
192 cdx->priv = cdx_mcdi;
193 cdx->ops = &cdx_ops;
196 cdx->msi_domain = cdx_msi_domain_init(&pdev->dev);
197 if (!cdx->msi_domain) {
214 irq_domain_remove(cdx->msi_domain);
216 kfree(cdx);
227 struct cdx_controller *cdx = platform_get_drvdata(pdev);
228 struct cdx_mcdi *cdx_mcdi = cdx->priv;
232 irq_domain_remove(cdx->msi_domain);
233 kfree(cdx);
240 {.compatible = "xlnx,versal-net-cdx",},
248 .name = "cdx-controller",