From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41830) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VTYOK-0006Wx-Aj for qemu-devel@nongnu.org; Tue, 08 Oct 2013 10:36:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VTYOC-0000f3-0g for qemu-devel@nongnu.org; Tue, 08 Oct 2013 10:36:04 -0400 Received: from mx1.redhat.com ([209.132.183.28]:21646) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VTYOB-0000en-PL for qemu-devel@nongnu.org; Tue, 08 Oct 2013 10:35:55 -0400 Date: Tue, 8 Oct 2013 17:33:03 +0300 From: "Michael S. Tsirkin" Message-ID: <20131008143233.GA22738@redhat.com> References: <1381131401-15155-1-git-send-email-marcel.a@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1381131401-15155-1-git-send-email-marcel.a@redhat.com> Subject: Re: [Qemu-devel] [PATCH v3 0/8] hw/pci: set irq without selecting INTx pin List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Marcel Apfelbaum Cc: kwolf@redhat.com, peter.maydell@linaro.org, peter.crosthwaite@xilinx.com, anthony@codemonkey.ws, sw@weilnetz.de, jasowang@redhat.com, qemu-devel@nongnu.org, dkoch@verizon.com, keith.busch@intel.com, alex.williamson@redhat.com, kraxel@redhat.com, stefanha@redhat.com, dmitry@daynix.com, pbonzini@redhat.com, afaerber@suse.de, ehabkost@redhat.com On Mon, Oct 07, 2013 at 10:36:33AM +0300, Marcel Apfelbaum wrote: > Interrupt pin is selected and saved into PCI_INTERRUPT_PIN > register during device initialization. Devices should not call > directly qemu_set_irq and specify the INTx pin. > > Added pci_* wrappers to replace qemu_set_irq, qemu_irq_raise, > qemu_irq_lower and qemu_irq_pulse, setting the irq > based on PCI_INTERRUPT_PIN. > > Added interface to allocate and free single irq. > Added pci_allocate_irq wrapper to be used by devices that > still need PCIDevice infrastructure to assert irqs. > > Removed irq field from PCIDevice, not needed anymore. > > Special cases of replacements were done in separate patches, > all others in one patch "hw: set interrupts using pci irq wrappers" Applied, thanks. > Changes from v2: > - Addressed Michael S. Tsirkin's comments: > - Terminate comments by "." > - Add "fixme" comment to pci_irq_pulse > - Addressed Paolo Bonzini's comment: > - fixed implementation of pci_irq_pulse > - Addressed Alex Williamson's comments > - replaced pci_irq_raise/lower with > pci_irq_assert/deassert > - replaced calls to pci_set_irq with > pci_irq_assert/deassert when possible > - Addressed Gerd Hoffmann's comment > - removed irq_pin from UHCIState state > because it is not used anymore > > - Fixed a bug in vmxnet3 (deassert was replaced by an assert) > > Changes from v1: > - Addressed Michael S. Tsirkin's comments: > - pci_set_irq directly calls pci_irq handler > - removed irq field from PCIDevice > - Added qemu interface to allocate single irq > - Added pci wrappers to allocate and free pci irq > - Added pci irq wrappers for all qemu methods > setting irq and not only qemu_set_irq > - Replace all qemu irq setters with pci > wrappers > > Marcel Apfelbaum (9): > hw/core: Add interface to allocate and free a single IRQ > hw/pci: add pci wrappers for allocating and asserting irqs > hw/pci-bridge: set PCI_INTERRUPT_PIN register before shpc init > hw/vmxnet3: set interrupts using pci irq wrappers > hw/vfio: set interrupts using pci irq wrappers > hw: set interrupts using pci irq wrappers > hw/pcie: AER and hot-plug events must use device's interrupt > hw/pci: removed irq field from PCIDevice > > hw/audio/ac97.c | 4 ++-- > hw/audio/es1370.c | 4 ++-- > hw/audio/intel-hda.c | 2 +- > hw/block/nvme.c | 2 +- > hw/char/serial-pci.c | 5 +++-- > hw/char/tpci200.c | 8 ++++---- > hw/core/irq.c | 16 ++++++++++++++++ > hw/display/qxl.c | 2 +- > hw/ide/cmd646.c | 2 +- > hw/ide/ich.c | 3 ++- > hw/isa/vt82c686.c | 2 +- > hw/misc/ivshmem.c | 2 +- > hw/misc/vfio.c | 11 ++++++----- > hw/net/e1000.c | 2 +- > hw/net/eepro100.c | 4 ++-- > hw/net/ne2000.c | 3 ++- > hw/net/pcnet-pci.c | 3 ++- > hw/net/rtl8139.c | 2 +- > hw/net/vmxnet3.c | 13 +++++++++++-- > hw/pci-bridge/pci_bridge_dev.c | 2 +- > hw/pci/pci.c | 26 +++++++++++++++++++++----- > hw/pci/pcie.c | 4 ++-- > hw/pci/pcie_aer.c | 4 ++-- > hw/pci/shpc.c | 2 +- > hw/scsi/esp-pci.c | 3 ++- > hw/scsi/lsi53c895a.c | 2 +- > hw/scsi/megasas.c | 6 +++--- > hw/scsi/vmw_pvscsi.c | 2 +- > hw/usb/hcd-ehci-pci.c | 2 +- > hw/usb/hcd-ohci.c | 2 +- > hw/usb/hcd-uhci.c | 6 ++---- > hw/usb/hcd-xhci.c | 7 ++----- > hw/virtio/virtio-pci.c | 4 ++-- > include/hw/irq.h | 7 +++++++ > include/hw/pci/pci.h | 26 +++++++++++++++++++++++--- > include/hw/pci/pcie.h | 18 ------------------ > 36 files changed, 132 insertions(+), 81 deletions(-) > > -- > 1.8.3.1