[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 8 Aug 2023 16:27:16 +0530
From: Anup Patel <apatel@...tanamicro.com>
To: Conor Dooley <conor@...nel.org>
Cc: Sunil V L <sunilvl@...tanamicro.com>, linux-doc@...r.kernel.org,
linux-riscv@...ts.infradead.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-acpi@...r.kernel.org,
linux-pci@...r.kernel.org,
Heikki Krogerus <heikki.krogerus@...ux.intel.com>,
"Rafael J . Wysocki" <rafael@...nel.org>,
Catalin Marinas <catalin.marinas@....com>,
Atish Kumar Patra <atishp@...osinc.com>,
Conor Dooley <conor.dooley@...rochip.com>,
Will Deacon <will@...nel.org>, Haibo Xu <haibo1.xu@...el.com>,
Jonathan Corbet <corbet@....net>,
Marc Zyngier <maz@...nel.org>,
Daniel Lezcano <daniel.lezcano@...aro.org>,
Robert Moore <robert.moore@...el.com>,
Andrew Jones <ajones@...tanamicro.com>,
Albert Ou <aou@...s.berkeley.edu>,
Paul Walmsley <paul.walmsley@...ive.com>,
Bjorn Helgaas <bhelgaas@...gle.com>,
Thomas Gleixner <tglx@...utronix.de>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Daniel Scally <djrscally@...il.com>,
Palmer Dabbelt <palmer@...belt.com>,
Sakari Ailus <sakari.ailus@...ux.intel.com>,
Anup Patel <anup@...infault.org>, Len Brown <lenb@...nel.org>
Subject: Re: [RFC PATCH v1 20/21] RISC-V: ACPI: Create PLIC platform device
On Tue, Aug 8, 2023 at 2:12 PM Conor Dooley <conor@...nel.org> wrote:
>
> On Thu, Aug 03, 2023 at 11:29:15PM +0530, Sunil V L wrote:
> > Since PLIC needs to be a platform device
>
> For the unwashed, why does the PLCI need to be a platform device?
> (And while you're at that, please try to make use of the extra ~20
> characters per line that you can use here.)
As suggested by Marc Z, only timers and IPIs need to be probed early.
Everything else needs to be a platform device. The devlink feature of
Linux DD framework ensures that platform devices are probed in the
right order based on the interdependency.
The PATCH5 of the v7 AIA series converts the PLIC driver into a
platform driver. This works perfectly fine.
>
> > probe the
> > MADT and create platform devices for each PLIC in the
> > system. Use software node framework for the fwnode
> > which allows to create properties and hence the
> > actual irqchip driver doesn't need to do anything
> > different for ACPI vs DT.
> >
> > Signed-off-by: Sunil V L <sunilvl@...tanamicro.com>
> > Co-developed-by: Haibo Xu <haibo1.xu@...el.com>
> > Signed-off-by: Haibo Xu <haibo1.xu@...el.com>
>
> > +static struct fwnode_handle *acpi_plic_create_fwnode(struct acpi_madt_plic *plic)
> > +{
> > + struct fwnode_handle *fwnode, *parent_fwnode;
> > + struct riscv_irqchip_list *plic_element;
> > + struct software_node_ref_args *refs;
> > + struct property_entry props[8] = {};
> > + int nr_contexts;
> > +
> > + props[0] = PROPERTY_ENTRY_U32("riscv,gsi-base", plic->gsi_base);
> > + props[1] = PROPERTY_ENTRY_U32("riscv,ndev", plic->num_irqs);
> > + props[2] = PROPERTY_ENTRY_U32("riscv,max_prio", plic->max_prio);
>
> My OCD wants to know why this gets an _ but the others have a -.
>
> > + props[3] = PROPERTY_ENTRY_U8("riscv,plic-id", plic->id);
> > + props[4] = PROPERTY_ENTRY_U64("riscv,plic-base", plic->base_addr);
> > + props[5] = PROPERTY_ENTRY_U32("riscv,plic-size", plic->size);
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@...ts.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
Regards,
Anup
Powered by blists - more mailing lists