usb/hcd-xhci: Move qemu-xhci device to hcd-xhci-pci.c
Move pci specific devices to new file. This set the environment to move all pci specific hooks in hcd-xhci.c to hcd-xhci-pci.c. Signed-off-by: Sai Pavan Boddu <sai.pavan.boddu@xilinx.com> Message-id: 1600957256-6494-3-git-send-email-sai.pavan.boddu@xilinx.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
		
				
					committed by
					
						 Gerd Hoffmann
						Gerd Hoffmann
					
				
			
			
				
	
			
			
			
						parent
						
							a5317074e1
						
					
				
				
					commit
					755fba11fb
				
			| @@ -36,6 +36,12 @@ config USB_XHCI | ||||
|     depends on PCI | ||||
|     select USB | ||||
|  | ||||
| config USB_XHCI_PCI | ||||
|     bool | ||||
|     default y if PCI_DEVICES | ||||
|     depends on PCI | ||||
|     select USB_XHCI | ||||
|  | ||||
| config USB_XHCI_NEC | ||||
|     bool | ||||
|     default y if PCI_DEVICES | ||||
|   | ||||
							
								
								
									
										66
									
								
								hw/usb/hcd-xhci-pci.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								hw/usb/hcd-xhci-pci.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | ||||
| /* | ||||
|  * USB xHCI controller with PCI bus emulation | ||||
|  * | ||||
|  * SPDX-FileCopyrightText: 2011 Securiforest | ||||
|  * SPDX-FileContributor: Hector Martin <hector@marcansoft.com> | ||||
|  * SPDX-sourceInfo: Based on usb-ohci.c, emulates Renesas NEC USB 3.0 | ||||
|  * SPDX-FileCopyrightText: 2020 Xilinx | ||||
|  * SPDX-FileContributor: Sai Pavan Boddu <sai.pavan.boddu@xilinx.com> | ||||
|  * SPDX-sourceInfo: Moved the pci specific content for hcd-xhci.c to | ||||
|  *                  hcd-xhci-pci.c | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Lesser General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Lesser General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Lesser General Public | ||||
|  * License along with this library; if not, see <http://www.gnu.org/licenses/>. | ||||
|  */ | ||||
| #include "qemu/osdep.h" | ||||
| #include "hw/pci/pci.h" | ||||
| #include "hw/qdev-properties.h" | ||||
| #include "hw/pci/msi.h" | ||||
| #include "hw/pci/msix.h" | ||||
| #include "hcd-xhci.h" | ||||
| #include "trace.h" | ||||
| #include "qapi/error.h" | ||||
|  | ||||
| static void qemu_xhci_class_init(ObjectClass *klass, void *data) | ||||
| { | ||||
|     PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); | ||||
|  | ||||
|     k->vendor_id    = PCI_VENDOR_ID_REDHAT; | ||||
|     k->device_id    = PCI_DEVICE_ID_REDHAT_XHCI; | ||||
|     k->revision     = 0x01; | ||||
| } | ||||
|  | ||||
| static void qemu_xhci_instance_init(Object *obj) | ||||
| { | ||||
|     XHCIState *xhci = XHCI(obj); | ||||
|  | ||||
|     xhci->msi      = ON_OFF_AUTO_OFF; | ||||
|     xhci->msix     = ON_OFF_AUTO_AUTO; | ||||
|     xhci->numintrs = MAXINTRS; | ||||
|     xhci->numslots = MAXSLOTS; | ||||
|     xhci_set_flag(xhci, XHCI_FLAG_SS_FIRST); | ||||
| } | ||||
|  | ||||
| static const TypeInfo qemu_xhci_info = { | ||||
|     .name          = TYPE_QEMU_XHCI, | ||||
|     .parent        = TYPE_XHCI, | ||||
|     .class_init    = qemu_xhci_class_init, | ||||
|     .instance_init = qemu_xhci_instance_init, | ||||
| }; | ||||
|  | ||||
| static void xhci_register_types(void) | ||||
| { | ||||
|     type_register_static(&qemu_xhci_info); | ||||
| } | ||||
|  | ||||
| type_init(xhci_register_types) | ||||
| @@ -23,7 +23,6 @@ | ||||
| #include "qemu/timer.h" | ||||
| #include "qemu/module.h" | ||||
| #include "qemu/queue.h" | ||||
| #include "hw/usb.h" | ||||
| #include "migration/vmstate.h" | ||||
| #include "hw/pci/pci.h" | ||||
| #include "hw/qdev-properties.h" | ||||
| @@ -429,12 +428,12 @@ static const char *ep_state_name(uint32_t state) | ||||
|                        ARRAY_SIZE(ep_state_names)); | ||||
| } | ||||
|  | ||||
| static bool xhci_get_flag(XHCIState *xhci, enum xhci_flags bit) | ||||
| bool xhci_get_flag(XHCIState *xhci, enum xhci_flags bit) | ||||
| { | ||||
|     return xhci->flags & (1 << bit); | ||||
| } | ||||
|  | ||||
| static void xhci_set_flag(XHCIState *xhci, enum xhci_flags bit) | ||||
| void xhci_set_flag(XHCIState *xhci, enum xhci_flags bit) | ||||
| { | ||||
|     xhci->flags |= (1 << bit); | ||||
| } | ||||
| @@ -3730,37 +3729,9 @@ static const TypeInfo xhci_info = { | ||||
|     }, | ||||
| }; | ||||
|  | ||||
| static void qemu_xhci_class_init(ObjectClass *klass, void *data) | ||||
| { | ||||
|     PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); | ||||
|  | ||||
|     k->vendor_id    = PCI_VENDOR_ID_REDHAT; | ||||
|     k->device_id    = PCI_DEVICE_ID_REDHAT_XHCI; | ||||
|     k->revision     = 0x01; | ||||
| } | ||||
|  | ||||
| static void qemu_xhci_instance_init(Object *obj) | ||||
| { | ||||
|     XHCIState *xhci = XHCI(obj); | ||||
|  | ||||
|     xhci->msi      = ON_OFF_AUTO_OFF; | ||||
|     xhci->msix     = ON_OFF_AUTO_AUTO; | ||||
|     xhci->numintrs = MAXINTRS; | ||||
|     xhci->numslots = MAXSLOTS; | ||||
|     xhci_set_flag(xhci, XHCI_FLAG_SS_FIRST); | ||||
| } | ||||
|  | ||||
| static const TypeInfo qemu_xhci_info = { | ||||
|     .name          = TYPE_QEMU_XHCI, | ||||
|     .parent        = TYPE_XHCI, | ||||
|     .class_init    = qemu_xhci_class_init, | ||||
|     .instance_init = qemu_xhci_instance_init, | ||||
| }; | ||||
|  | ||||
| static void xhci_register_types(void) | ||||
| { | ||||
|     type_register_static(&xhci_info); | ||||
|     type_register_static(&qemu_xhci_info); | ||||
| } | ||||
|  | ||||
| type_init(xhci_register_types) | ||||
|   | ||||
| @@ -23,6 +23,8 @@ | ||||
| #define HW_USB_HCD_XHCI_H | ||||
| #include "qom/object.h" | ||||
|  | ||||
| #include "hw/usb.h" | ||||
|  | ||||
| #define TYPE_XHCI "base-xhci" | ||||
| #define TYPE_NEC_XHCI "nec-usb-xhci" | ||||
| #define TYPE_QEMU_XHCI "qemu-xhci" | ||||
| @@ -229,4 +231,6 @@ struct XHCIState { | ||||
|     bool nec_quirks; | ||||
| }; | ||||
|  | ||||
| bool xhci_get_flag(XHCIState *xhci, enum xhci_flags bit); | ||||
| void xhci_set_flag(XHCIState *xhci, enum xhci_flags bit); | ||||
| #endif | ||||
|   | ||||
| @@ -21,6 +21,7 @@ softmmu_ss.add(when: 'CONFIG_USB_EHCI', if_true: files('hcd-ehci.c')) | ||||
| softmmu_ss.add(when: 'CONFIG_USB_EHCI_PCI', if_true: files('hcd-ehci-pci.c')) | ||||
| softmmu_ss.add(when: 'CONFIG_USB_EHCI_SYSBUS', if_true: files('hcd-ehci.c', 'hcd-ehci-sysbus.c')) | ||||
| softmmu_ss.add(when: 'CONFIG_USB_XHCI', if_true: files('hcd-xhci.c')) | ||||
| softmmu_ss.add(when: 'CONFIG_USB_XHCI_PCI', if_true: files('hcd-xhci-pci.c')) | ||||
| softmmu_ss.add(when: 'CONFIG_USB_XHCI_NEC', if_true: files('hcd-xhci-nec.c')) | ||||
| softmmu_ss.add(when: 'CONFIG_USB_MUSB', if_true: files('hcd-musb.c')) | ||||
| softmmu_ss.add(when: 'CONFIG_USB_DWC2', if_true: files('hcd-dwc2.c')) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user