All of lore.kernel.org
 help / color / mirror / Atom feed
From: Howard Spoelstra <hsp.cat7@gmail.com>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: qemu-ppc <qemu-ppc@nongnu.org>,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	"qemu-devel qemu-devel" <qemu-devel@nongnu.org>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: Re: [PATCH v2 2/3] grackle: use qdev gpios for PCI IRQs
Date: Fri, 16 Oct 2020 08:45:02 +0200	[thread overview]
Message-ID: <CABLmASE+GzEhSgqqJmum+Xu7DkyQX6PtboKLhA4LyaOY7PYoSA@mail.gmail.com> (raw)
In-Reply-To: <20201016001803.GC7078@yekko.fritz.box>

[-- Attachment #1: Type: text/plain, Size: 4660 bytes --]

On Fri, Oct 16, 2020 at 2:30 AM David Gibson <david@gibson.dropbear.id.au>
wrote:

> On Tue, Oct 13, 2020 at 12:49:21PM +0100, Mark Cave-Ayland wrote:
> > Currently an object link property is used to pass a reference to the
> Heathrow
> > PIC into the PCI host bridge so that grackle_init_irqs() can connect the
> PCI
> > IRQs to the PIC itself.
> >
> > This can be simplified by defining the PCI IRQs as qdev gpios and then
> wiring
> > up the PCI IRQs to the PIC in the Old World machine init function.
> >
> > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>
> Applied to ppc-for-5.2.
>
> > ---
> >  hw/pci-host/grackle.c | 19 ++-----------------
> >  hw/ppc/mac_oldworld.c |  7 +++++--
> >  2 files changed, 7 insertions(+), 19 deletions(-)
> >
> > diff --git a/hw/pci-host/grackle.c b/hw/pci-host/grackle.c
> > index 57c29b20af..b05facf463 100644
> > --- a/hw/pci-host/grackle.c
> > +++ b/hw/pci-host/grackle.c
> > @@ -28,7 +28,6 @@
> >  #include "hw/ppc/mac.h"
> >  #include "hw/qdev-properties.h"
> >  #include "hw/pci/pci.h"
> > -#include "hw/intc/heathrow_pic.h"
> >  #include "hw/irq.h"
> >  #include "qapi/error.h"
> >  #include "qemu/module.h"
> > @@ -41,7 +40,6 @@ struct GrackleState {
> >      PCIHostState parent_obj;
> >
> >      uint32_t ofw_addr;
> > -    HeathrowState *pic;
> >      qemu_irq irqs[4];
> >      MemoryRegion pci_mmio;
> >      MemoryRegion pci_hole;
> > @@ -62,15 +60,6 @@ static void pci_grackle_set_irq(void *opaque, int
> irq_num, int level)
> >      qemu_set_irq(s->irqs[irq_num], level);
> >  }
> >
> > -static void grackle_init_irqs(GrackleState *s)
> > -{
> > -    int i;
> > -
> > -    for (i = 0; i < ARRAY_SIZE(s->irqs); i++) {
> > -        s->irqs[i] = qdev_get_gpio_in(DEVICE(s->pic), 0x15 + i);
> > -    }
> > -}
> > -
> >  static void grackle_realize(DeviceState *dev, Error **errp)
> >  {
> >      GrackleState *s = GRACKLE_PCI_HOST_BRIDGE(dev);
> > @@ -85,7 +74,6 @@ static void grackle_realize(DeviceState *dev, Error
> **errp)
> >                                       0, 4, TYPE_PCI_BUS);
> >
> >      pci_create_simple(phb->bus, 0, "grackle");
> > -    grackle_init_irqs(s);
> >  }
> >
> >  static void grackle_init(Object *obj)
> > @@ -106,15 +94,12 @@ static void grackle_init(Object *obj)
> >      memory_region_init_io(&phb->data_mem, obj, &pci_host_data_le_ops,
> >                            DEVICE(obj), "pci-data-idx", 0x1000);
> >
> > -    object_property_add_link(obj, "pic", TYPE_HEATHROW,
> > -                             (Object **) &s->pic,
> > -                             qdev_prop_allow_set_link_before_realize,
> > -                             0);
> > -
> >      sysbus_init_mmio(sbd, &phb->conf_mem);
> >      sysbus_init_mmio(sbd, &phb->data_mem);
> >      sysbus_init_mmio(sbd, &s->pci_hole);
> >      sysbus_init_mmio(sbd, &s->pci_io);
> > +
> > +    qdev_init_gpio_out(DEVICE(obj), s->irqs, ARRAY_SIZE(s->irqs));
> >  }
> >
> >  static void grackle_pci_realize(PCIDevice *d, Error **errp)
> > diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
> > index d6a76d06dc..05e46ee6fe 100644
> > --- a/hw/ppc/mac_oldworld.c
> > +++ b/hw/ppc/mac_oldworld.c
> > @@ -253,10 +253,9 @@ static void ppc_heathrow_init(MachineState *machine)
> >      /* Grackle PCI host bridge */
> >      dev = qdev_new(TYPE_GRACKLE_PCI_HOST_BRIDGE);
> >      qdev_prop_set_uint32(dev, "ofw-addr", 0x80000000);
> > -    object_property_set_link(OBJECT(dev), "pic", OBJECT(pic_dev),
> > -                             &error_abort);
> >      s = SYS_BUS_DEVICE(dev);
> >      sysbus_realize_and_unref(s, &error_fatal);
> > +
> >      sysbus_mmio_map(s, 0, GRACKLE_BASE);
> >      sysbus_mmio_map(s, 1, GRACKLE_BASE + 0x200000);
> >      /* PCI hole */
> > @@ -266,6 +265,10 @@ static void ppc_heathrow_init(MachineState *machine)
> >      memory_region_add_subregion(get_system_memory(), 0xfe000000,
> >                                  sysbus_mmio_get_region(s, 3));
> >
> > +    for (i = 0; i < 4; i++) {
> > +        qdev_connect_gpio_out(dev, i, qdev_get_gpio_in(pic_dev, 0x15 +
> i));
> > +    }
> > +
> >      pci_bus = PCI_HOST_BRIDGE(dev)->bus;
> >
> >      pci_vga_init(pci_bus);
>
>
> Hi,

I see compilation of the current ppc-for-5.2 branch fail with:

../hw/pci-host/grackle.c: In function ‘grackle_realize’:
../hw/pci-host/grackle.c:68:11: error: ‘GrackleState’ has no member named
‘pic’
   68 |     if (!s->pic) {
      |           ^~
make: *** [Makefile.ninja:1741: libcommon.fa.p/hw_pci-host_grackle.c.o]
Error 1

Best,
Howard

[-- Attachment #2: Type: text/html, Size: 6114 bytes --]

  reply	other threads:[~2020-10-16  6:47 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-13 11:49 [PATCH v2 0/3] ppc: Mac machine updates Mark Cave-Ayland
2020-10-13 11:49 ` [PATCH v2 1/3] macio: don't reference serial_hd() directly within the device Mark Cave-Ayland
2020-10-16  0:16   ` David Gibson
2020-10-16  7:00     ` Mark Cave-Ayland
2020-10-17  6:21       ` David Gibson
2020-10-13 11:49 ` [PATCH v2 2/3] grackle: use qdev gpios for PCI IRQs Mark Cave-Ayland
2020-10-13 13:37   ` Philippe Mathieu-Daudé
2020-10-13 16:51     ` Mark Cave-Ayland
2020-10-13 17:05       ` BALATON Zoltan via
2020-10-15 19:42         ` Mark Cave-Ayland
2020-10-16  0:26           ` BALATON Zoltan via
2020-10-17 13:03             ` Mark Cave-Ayland
2020-10-16  0:18   ` David Gibson
2020-10-16  6:45     ` Howard Spoelstra [this message]
2020-10-16  6:53       ` Mark Cave-Ayland
2020-10-17  6:20         ` David Gibson
2020-10-13 11:49 ` [PATCH v2 3/3] uninorth: " Mark Cave-Ayland
2020-10-13 13:38   ` BALATON Zoltan via
2020-10-13 16:58     ` Mark Cave-Ayland
2020-10-13 17:10       ` BALATON Zoltan via
2020-10-16  0:30       ` David Gibson
2020-10-13 13:39   ` Philippe Mathieu-Daudé
2020-10-16  0:21   ` David Gibson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CABLmASE+GzEhSgqqJmum+Xu7DkyQX6PtboKLhA4LyaOY7PYoSA@mail.gmail.com \
    --to=hsp.cat7@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=f4bug@amsat.org \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.