Lines Matching full:cdx
3 * CDX bus driver.
11 * CDX is a Hardware Architecture designed for AMD FPGA devices. It
19 * The diagram below shows an overview of the CDX architecture:
24 * | CDX device drivers|
26 * | CDX bus |
28 * | CDX controller |
64 #include <linux/cdx/cdx_bus.h>
67 #include "cdx.h"
69 /* Default DMA mask for devices on a CDX bus */
73 /* CDX controllers registered with the CDX bus */
77 * cdx_dev_reset - Reset a CDX device
78 * @dev: CDX device
85 struct cdx_controller *cdx = cdx_dev->cdx; in cdx_dev_reset() local
96 ret = cdx->ops->dev_configure(cdx, cdx_dev->bus_num, in cdx_dev_reset()
99 dev_err(dev, "cdx device reset failed\n"); in cdx_dev_reset()
110 * cdx_unregister_device - Unregister a CDX device
111 * @dev: CDX device
138 /* Reset all the devices attached to cdx bus */ in cdx_unregister_devices()
143 * cdx_match_one_device - Tell if a CDX device structure has a matching
144 * CDX device id structure
145 * @id: single CDX device id structure to match
146 * @dev: the CDX device structure to match against
162 * cdx_match_id - See if a CDX device matches a given cdx_id table
163 * @ids: array of CDX device ID structures to search in
164 * @dev: the CDX device structure to match against.
166 * Used by a driver to check whether a CDX device is in its list of
187 * @dev: the cdx device to match against
188 * @drv: the device driver to search for matching cdx device
390 struct cdx_controller *cdx; in rescan_store() local
404 xa_for_each(&cdx_controllers, index, cdx) { in rescan_store()
407 ret = cdx->ops->scan(cdx); in rescan_store()
409 dev_err(cdx->dev, "cdx bus scanning failed\n"); in rescan_store()
423 .name = "cdx",
469 struct cdx_controller *cdx = dev_params->cdx; in cdx_device_add() local
470 struct device *parent = cdx->dev; in cdx_device_add()
483 /* Populate CDX dev params */ in cdx_device_add()
489 cdx_dev->cdx = dev_params->cdx; in cdx_device_add()
500 dev_set_name(&cdx_dev->dev, "cdx-%02x:%02x", in cdx_device_add()
501 ((cdx->id << CDX_CONTROLLER_ID_SHIFT) | (cdx_dev->bus_num & CDX_BUS_NUM_MASK)), in cdx_device_add()
507 "cdx device add failed: %d", ret); in cdx_device_add()
523 int cdx_register_controller(struct cdx_controller *cdx) in cdx_register_controller() argument
527 ret = xa_alloc(&cdx_controllers, &cdx->id, cdx, in cdx_register_controller()
530 dev_err(cdx->dev, in cdx_register_controller()
532 cdx->id = (u8)MAX_CDX_CONTROLLERS; in cdx_register_controller()
537 cdx->ops->scan(cdx); in cdx_register_controller()
543 void cdx_unregister_controller(struct cdx_controller *cdx) in cdx_unregister_controller() argument
545 if (cdx->id >= MAX_CDX_CONTROLLERS) in cdx_unregister_controller()
548 device_for_each_child(cdx->dev, NULL, cdx_unregister_device); in cdx_unregister_controller()
549 xa_erase(&cdx_controllers, cdx->id); in cdx_unregister_controller()