Lines Matching +full:device +full:- +full:id
1 /* SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2022-2023, Advanced Micro Devices, Inc.
12 #include <linux/device.h>
57 * CDX_DEVICE - macro used to describe a specific CDX device
58 * @vend: the 16 bit CDX Vendor ID
59 * @dev: the 16 bit CDX Device ID
62 * specific device. The subvendor and subdevice fields will be set to
66 .vendor = (vend), .device = (dev), \
70 * CDX_DEVICE_DRIVER_OVERRIDE - macro used to describe a CDX device with
72 * @vend: the 16 bit CDX Vendor ID
73 * @dev: the 16 bit CDX Device ID
74 * @driver_override: the 32 bit CDX Device override_only
77 * driver_override device. The subvendor and subdevice fields will be set to
81 .vendor = (vend), .device = (dev), .subvendor = CDX_ANY_ID,\
85 * struct cdx_ops - Callbacks supported by CDX controller.
90 * msi_config etc for a CDX device
101 * @dev: Linux device associated with the CDX controller.
104 * @id: Controller ID
109 struct device *dev;
112 u32 id; member
118 * struct cdx_device - CDX device object
119 * @dev: Linux driver model device object
120 * @cdx: CDX controller associated with the device
121 * @vendor: Vendor ID for CDX device
122 * @device: Device ID for CDX device
123 * @subsystem_vendor: Subsystem Vendor ID for CDX device
124 * @subsystem_device: Subsystem Device ID for CDX device
125 * @class: Class for the CDX device
126 * @revision: Revision of the CDX device
127 * @bus_num: Bus number for this CDX device
128 * @dev_num: Device number for this device
131 * @debugfs_dir: debugfs directory for this device
134 * @flags: CDX device flags
135 * @req_id: Requestor ID associated with CDX device
136 * @is_bus: Is this bus device
138 * @msi_dev_id: MSI Device ID associated with CDX device
139 * @num_msi: Number of MSI's supported by the device
144 * @msi_write_pending: MSI write pending for this device
147 struct device dev;
150 u16 device; member
176 #define cdx_resource_start(dev, num) ((dev)->res[(num)].start)
177 #define cdx_resource_end(dev, num) ((dev)->res[(num)].end)
178 #define cdx_resource_flags(dev, num) ((dev)->res[(num)].flags)
183 (cdx_resource_end((dev), (num)) - \
186 * struct cdx_driver - CDX device driver
187 * @driver: Generic device driver
188 * @match_id_table: table of supported device matching Ids
189 * @probe: Function called when a device is added
190 * @remove: Function called when a device is removed
191 * @shutdown: Function called at shutdown time to quiesce the device
194 * @driver_managed_dma: Device driver doesn't use kernel DMA API for DMA.
195 * For most device drivers, no need to care about this flag
221 * __cdx_driver_register - registers a CDX device driver
225 * Return: -errno on failure, 0 on success.
231 * cdx_driver_unregister - unregisters a device driver from the
240 * cdx_dev_reset - Reset CDX device
241 * @dev: device pointer
243 * Return: 0 for success, -errno on failure
245 int cdx_dev_reset(struct device *dev);
248 * cdx_set_master - enables bus-mastering for CDX device
249 * @cdx_dev: the CDX device to enable
251 * Return: 0 for success, -errno on failure
256 * cdx_clear_master - disables bus-mastering for CDX device
257 * @cdx_dev: the CDX device to disable
259 * Return: 0 for success, -errno on failure
265 * cdx_enable_msi - Enable MSI for the CDX device.
266 * @cdx_dev: device pointer
268 * Return: 0 for success, -errno on failure
273 * cdx_disable_msi - Disable MSI for the CDX device.
274 * @cdx_dev: device pointer
282 return -ENODEV; in cdx_enable_msi()