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:
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'))
|
||||
|
Loading…
Reference in New Issue
Block a user