[PATCH v6 5/7] hw/usb/vt82c686-uhci-pci: Use PCI IRQ routing

BALATON Zoltan posted 7 patches 2 years, 11 months ago
Maintainers: Gerd Hoffmann <kraxel@redhat.com>, BALATON Zoltan <balaton@eik.bme.hu>, "Michael S. Tsirkin" <mst@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Huacai Chen <chenhuacai@kernel.org>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Jiaxun Yang <jiaxun.yang@flygoat.com>
There is a newer version of this series
[PATCH v6 5/7] hw/usb/vt82c686-uhci-pci: Use PCI IRQ routing
Posted by BALATON Zoltan 2 years, 11 months ago
From: Bernhard Beschow <shentey@gmail.com>

According to the PCI specification, PCI_INTERRUPT_LINE shall have no
effect on hardware operations. Now that the VIA south bridges implement
the internal PCI interrupt router let's be more conformant to the PCI
specification.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Tested-by: Rene Engel <ReneEngel80@emailn.de>
---
 hw/usb/vt82c686-uhci-pci.c | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/hw/usb/vt82c686-uhci-pci.c b/hw/usb/vt82c686-uhci-pci.c
index 46a901f56f..b4884c9011 100644
--- a/hw/usb/vt82c686-uhci-pci.c
+++ b/hw/usb/vt82c686-uhci-pci.c
@@ -1,17 +1,7 @@
 #include "qemu/osdep.h"
-#include "hw/irq.h"
 #include "hw/isa/vt82c686.h"
 #include "hcd-uhci.h"
 
-static void uhci_isa_set_irq(void *opaque, int irq_num, int level)
-{
-    UHCIState *s = opaque;
-    uint8_t irq = pci_get_byte(s->dev.config + PCI_INTERRUPT_LINE);
-    if (irq > 0 && irq < 15) {
-        via_isa_set_irq(pci_get_function_0(&s->dev), irq, level);
-    }
-}
-
 static void usb_uhci_vt82c686b_realize(PCIDevice *dev, Error **errp)
 {
     UHCIState *s = UHCI(dev);
@@ -25,8 +15,6 @@ static void usb_uhci_vt82c686b_realize(PCIDevice *dev, Error **errp)
     pci_set_long(pci_conf + 0xc0, 0x00002000);
 
     usb_uhci_common_realize(dev, errp);
-    object_unref(s->irq);
-    s->irq = qemu_allocate_irq(uhci_isa_set_irq, s, 0);
 }
 
 static UHCIInfo uhci_info[] = {
-- 
2.30.8
Re: [PATCH v6 5/7] hw/usb/vt82c686-uhci-pci: Use PCI IRQ routing
Posted by Bernhard Beschow 2 years, 11 months ago

Am 4. März 2023 14:48:23 UTC schrieb BALATON Zoltan <balaton@eik.bme.hu>:
>From: Bernhard Beschow <shentey@gmail.com>
>
>According to the PCI specification, PCI_INTERRUPT_LINE shall have no
>effect on hardware operations. Now that the VIA south bridges implement
>the internal PCI interrupt router let's be more conformant to the PCI
>specification.
>
>Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
>Tested-by: Rene Engel <ReneEngel80@emailn.de>

Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

See https://lore.kernel.org/qemu-devel/69ca8f8f-7b6c-f746-c414-1f121a31eaef@ilande.co.uk/

>---
> hw/usb/vt82c686-uhci-pci.c | 12 ------------
> 1 file changed, 12 deletions(-)
>
>diff --git a/hw/usb/vt82c686-uhci-pci.c b/hw/usb/vt82c686-uhci-pci.c
>index 46a901f56f..b4884c9011 100644
>--- a/hw/usb/vt82c686-uhci-pci.c
>+++ b/hw/usb/vt82c686-uhci-pci.c
>@@ -1,17 +1,7 @@
> #include "qemu/osdep.h"
>-#include "hw/irq.h"
> #include "hw/isa/vt82c686.h"
> #include "hcd-uhci.h"
> 
>-static void uhci_isa_set_irq(void *opaque, int irq_num, int level)
>-{
>-    UHCIState *s = opaque;
>-    uint8_t irq = pci_get_byte(s->dev.config + PCI_INTERRUPT_LINE);
>-    if (irq > 0 && irq < 15) {
>-        via_isa_set_irq(pci_get_function_0(&s->dev), irq, level);
>-    }
>-}
>-
> static void usb_uhci_vt82c686b_realize(PCIDevice *dev, Error **errp)
> {
>     UHCIState *s = UHCI(dev);
>@@ -25,8 +15,6 @@ static void usb_uhci_vt82c686b_realize(PCIDevice *dev, Error **errp)
>     pci_set_long(pci_conf + 0xc0, 0x00002000);
> 
>     usb_uhci_common_realize(dev, errp);
>-    object_unref(s->irq);
>-    s->irq = qemu_allocate_irq(uhci_isa_set_irq, s, 0);
> }
> 
> static UHCIInfo uhci_info[] = {