@@ -25,6 +25,7 @@ struct inode;
struct pci_dev;
struct pci_controller;
+struct usb_device;
/**
* enum drm_switch_power - power state of drm device
@@ -283,16 +284,24 @@ struct drm_device {
*/
spinlock_t event_lock;
- /** @agp: AGP data */
- struct drm_agp_head *agp;
+ union {
+ struct {
+ /** @agp: AGP data */
+ struct drm_agp_head *agp;
- /** @pdev: PCI device structure */
- struct pci_dev *pdev;
+ /** @pdev: PCI device structure */
+ struct pci_dev *pdev;
#ifdef __alpha__
- /** @hose: PCI hose, only used on ALPHA platforms. */
- struct pci_controller *hose;
+ /** @hose: PCI hose, only used on ALPHA platforms. */
+ struct pci_controller *hose;
#endif
+ };
+
+ /** @udev: USB device structure */
+ struct usb_device *udev;
+ };
+
/** @num_crtcs: Number of CRTCs on this device */
unsigned int num_crtcs;
We have DRM drivers that operate on USB devices. So far they had to store a pointer to the USB device structure. Move the reference into struct drm_device. Putting the USB device into a union with the PCI data saves a few bytes. Both should mutually exclusive. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> --- include/drm/drm_device.h | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-)