From: Hanjun Guo <hanjun.guo@linaro.org> To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: Marc Zyngier <marc.zyngier@arm.com>, "Rafael J. Wysocki" <rjw@rjwysocki.net>, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linuxarm@huawei.com, Thomas Gleixner <tglx@linutronix.de>, Greg KH <gregkh@linuxfoundation.org>, Tomasz Nowicki <tn@semihalf.com>, Ma Jun <majun258@huawei.com>, Kefeng Wang <wangkefeng.wang@huawei.com>, Agustin Vega-Frias <agustinv@codeaurora.org>, Sinan Kaya <okaya@codeaurora.org>, charles.garcia-tobin@arm.com, huxinwei@huawei.com, yimin@huawei.com, Jon Masters <jcm@redhat.com> Subject: Re: [PATCH v6 05/14] ACPI: platform-msi: retrieve dev id from IORT Date: Wed, 11 Jan 2017 22:15:41 +0800 [thread overview] Message-ID: <58763E0D.2030905@linaro.org> (raw) In-Reply-To: <20170110145741.GA17967@red-moon> On 01/10/2017 10:57 PM, Lorenzo Pieralisi wrote: > On Tue, Jan 10, 2017 at 09:39:39PM +0800, Hanjun Guo wrote: > > [...] > >>> What you can do is create a wrapper, say iort_node_map_platform_id() >>> (whose signature is equivalent to iort_node_map_rid() minus rid_in) >>> that carries out the two steps outlined above. >>> >>> To do that I suggest the following: >>> >>> (1) I send a patch to "fix" iort_node_get_id() (ie index issue you >>> reported) >> >> I prepared two simple patches, one is for fix the indentation and >> the other is adding the missing kernel-doc comment, how about >> sending the out for 4.10-rcx? > > For me it is fine depending on how Rafael wants to handle them, > ie if he can batch those with the eg iort_node_get_id() fix I have > just sent: > > https://patchwork.kernel.org/patch/9507041/ > >>> (2) We remove type_mask handling from iort_node_get_id() >> >> iort_node_get_id() for now only supports id single mappings, >> Do we need to extend it for multi id mappings? seems Sinan's >> platform have such cases. > > I am not really sure I understand what you mean here. Sorry for not clear, I was thinking if we want to support ID mapping entries with multi IDs like BDFs for RC, > >>> (3) We create iort_node_map_platform_id() that (pseudo-code, I can >>> write the patch if it is clearer): >>> >>> struct acpi_iort_node *iort_node_map_platform_id(u8 type_mask, int index, >>> ...) >>> { >>> u32 id, id_out; >>> struct acpi_iort_node *parent = iort_node_get_id(&id, index); >>> >>> if (!parent) >>> return NULL; >>> >>> /* we should probably rename iort_node_map_rid() too */ >>> if (!(IORT_TYPE_MASK(parent->type) & type_mask) >>> parent = iort_node_map_rid(parent, id, &id_out, type_mask); >>> >>> return parent; >>> } >>> >>> (4) we update current iort_node_get_id() users and move them over >>> to iort_node_map_platform_id() >> >> I think we need to prepare one patch for the above steps, or it >> have functional changes for iort_node_get_id(), for example we >> removed the type_mask handling from iort_node_get_id() and it >> will break the case for SMMU if we only have requester id entries. > > If the question is "should we apply this change as a single logical > patch" the answer is yes, it looks a simple one to me (basically > it implies writing the function above and update the iort_node_get_id() > existing callers with it). Does this answer your question ? Yes, thank you for your patience :) When I was preparing patches, I split them into three patches, hope it makes the review easier, will send out the patch set soon. Thanks Hanjun
WARNING: multiple messages have this Message-ID (diff)
From: hanjun.guo@linaro.org (Hanjun Guo) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v6 05/14] ACPI: platform-msi: retrieve dev id from IORT Date: Wed, 11 Jan 2017 22:15:41 +0800 [thread overview] Message-ID: <58763E0D.2030905@linaro.org> (raw) In-Reply-To: <20170110145741.GA17967@red-moon> On 01/10/2017 10:57 PM, Lorenzo Pieralisi wrote: > On Tue, Jan 10, 2017 at 09:39:39PM +0800, Hanjun Guo wrote: > > [...] > >>> What you can do is create a wrapper, say iort_node_map_platform_id() >>> (whose signature is equivalent to iort_node_map_rid() minus rid_in) >>> that carries out the two steps outlined above. >>> >>> To do that I suggest the following: >>> >>> (1) I send a patch to "fix" iort_node_get_id() (ie index issue you >>> reported) >> >> I prepared two simple patches, one is for fix the indentation and >> the other is adding the missing kernel-doc comment, how about >> sending the out for 4.10-rcx? > > For me it is fine depending on how Rafael wants to handle them, > ie if he can batch those with the eg iort_node_get_id() fix I have > just sent: > > https://patchwork.kernel.org/patch/9507041/ > >>> (2) We remove type_mask handling from iort_node_get_id() >> >> iort_node_get_id() for now only supports id single mappings, >> Do we need to extend it for multi id mappings? seems Sinan's >> platform have such cases. > > I am not really sure I understand what you mean here. Sorry for not clear, I was thinking if we want to support ID mapping entries with multi IDs like BDFs for RC, > >>> (3) We create iort_node_map_platform_id() that (pseudo-code, I can >>> write the patch if it is clearer): >>> >>> struct acpi_iort_node *iort_node_map_platform_id(u8 type_mask, int index, >>> ...) >>> { >>> u32 id, id_out; >>> struct acpi_iort_node *parent = iort_node_get_id(&id, index); >>> >>> if (!parent) >>> return NULL; >>> >>> /* we should probably rename iort_node_map_rid() too */ >>> if (!(IORT_TYPE_MASK(parent->type) & type_mask) >>> parent = iort_node_map_rid(parent, id, &id_out, type_mask); >>> >>> return parent; >>> } >>> >>> (4) we update current iort_node_get_id() users and move them over >>> to iort_node_map_platform_id() >> >> I think we need to prepare one patch for the above steps, or it >> have functional changes for iort_node_get_id(), for example we >> removed the type_mask handling from iort_node_get_id() and it >> will break the case for SMMU if we only have requester id entries. > > If the question is "should we apply this change as a single logical > patch" the answer is yes, it looks a simple one to me (basically > it implies writing the function above and update the iort_node_get_id() > existing callers with it). Does this answer your question ? Yes, thank you for your patience :) When I was preparing patches, I split them into three patches, hope it makes the review easier, will send out the patch set soon. Thanks Hanjun
next prev parent reply other threads:[~2017-01-11 14:15 UTC|newest] Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-01-02 13:31 [PATCH v6 00/14] ACPI platform MSI support and its example mbigen Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-02 13:31 ` [PATCH v6 01/14] ACPI: ARM64: IORT: minor cleanup for iort_match_node_callback() Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-03 14:08 ` Lorenzo Pieralisi 2017-01-03 14:08 ` Lorenzo Pieralisi 2017-01-03 14:08 ` Lorenzo Pieralisi 2017-01-04 7:56 ` Hanjun Guo 2017-01-04 7:56 ` Hanjun Guo 2017-01-02 13:31 ` [PATCH v6 02/14] irqchip: gic-v3-its: keep the head file include in alphabetic order Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-11 10:20 ` Matthias Brugger 2017-01-11 10:20 ` Matthias Brugger 2017-01-11 10:20 ` Matthias Brugger 2017-01-11 10:20 ` Matthias Brugger 2017-01-11 14:16 ` Hanjun Guo 2017-01-11 14:16 ` Hanjun Guo 2017-01-02 13:31 ` [PATCH v6 03/14] ACPI: ARM64: IORT: add missing comment for iort_dev_find_its_id() Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-04 14:34 ` Lorenzo Pieralisi 2017-01-04 14:34 ` Lorenzo Pieralisi 2017-01-05 6:05 ` Hanjun Guo 2017-01-05 6:05 ` Hanjun Guo 2017-01-05 6:05 ` Hanjun Guo 2017-01-05 9:53 ` Lorenzo Pieralisi 2017-01-05 9:53 ` Lorenzo Pieralisi 2017-01-05 9:53 ` Lorenzo Pieralisi 2017-01-02 13:31 ` [PATCH v6 04/14] irqchip: gicv3-its: platform-msi: refactor its_pmsi_prepare() Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-11 10:31 ` Matthias Brugger 2017-01-11 10:31 ` Matthias Brugger 2017-01-02 13:31 ` [PATCH v6 05/14] ACPI: platform-msi: retrieve dev id from IORT Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-03 8:43 ` Tomasz Nowicki 2017-01-03 8:43 ` Tomasz Nowicki 2017-01-03 9:37 ` Tomasz Nowicki 2017-01-03 9:37 ` Tomasz Nowicki 2017-01-03 11:24 ` Tomasz Nowicki 2017-01-03 11:24 ` Tomasz Nowicki 2017-01-04 19:18 ` Lorenzo Pieralisi 2017-01-04 19:18 ` Lorenzo Pieralisi 2017-01-05 12:45 ` Hanjun Guo 2017-01-05 12:45 ` Hanjun Guo 2017-01-05 15:15 ` Lorenzo Pieralisi 2017-01-05 15:15 ` Lorenzo Pieralisi 2017-01-10 13:39 ` Hanjun Guo 2017-01-10 13:39 ` Hanjun Guo 2017-01-10 13:39 ` Hanjun Guo 2017-01-10 14:57 ` Lorenzo Pieralisi 2017-01-10 14:57 ` Lorenzo Pieralisi 2017-01-11 14:15 ` Hanjun Guo [this message] 2017-01-11 14:15 ` Hanjun Guo 2017-01-02 13:31 ` [PATCH v6 06/14] irqchip: gicv3-its: platform-msi: refactor its_pmsi_init() to prepare for ACPI Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-03 7:41 ` Tomasz Nowicki 2017-01-03 7:41 ` Tomasz Nowicki 2017-01-04 7:02 ` Hanjun Guo 2017-01-04 7:02 ` Hanjun Guo 2017-01-04 7:29 ` Tomasz Nowicki 2017-01-04 7:29 ` Tomasz Nowicki 2017-01-04 8:25 ` Hanjun Guo 2017-01-04 8:25 ` Hanjun Guo 2017-01-04 9:02 ` Marc Zyngier 2017-01-04 9:02 ` Marc Zyngier 2017-01-04 10:19 ` Hanjun Guo 2017-01-04 10:19 ` Hanjun Guo 2017-01-02 13:31 ` [PATCH v6 07/14] irqchip: gicv3-its: platform-msi: scan MADT to create platform msi domain Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-02 13:31 ` [PATCH v6 08/14] ACPI: ARM64: IORT: rework iort_node_get_id() Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-04 17:58 ` Lorenzo Pieralisi 2017-01-04 17:58 ` Lorenzo Pieralisi 2017-01-05 8:19 ` Hanjun Guo 2017-01-05 8:19 ` Hanjun Guo 2017-01-05 8:19 ` Hanjun Guo 2017-01-02 13:31 ` [PATCH v6 09/14] ACPI: platform: setup MSI domain for ACPI based platform device Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-02 21:17 ` Rafael J. Wysocki 2017-01-02 21:17 ` Rafael J. Wysocki 2017-01-02 21:17 ` Rafael J. Wysocki 2017-01-02 13:31 ` [PATCH v6 10/14] ACPI: ARM64: IORT: rework iort_node_get_id() for NC->SMMU->ITS case Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-02 22:30 ` Sinan Kaya 2017-01-02 22:30 ` Sinan Kaya 2017-01-02 22:30 ` Sinan Kaya 2017-01-03 0:08 ` Hanjun Guo 2017-01-03 0:08 ` Hanjun Guo 2017-01-03 0:08 ` Hanjun Guo 2017-01-02 13:31 ` [PATCH v6 11/14] msi: platform: make platform_msi_create_device_domain() ACPI aware Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-04 16:49 ` Lorenzo Pieralisi 2017-01-04 16:49 ` Lorenzo Pieralisi 2017-01-02 13:31 ` [PATCH v6 12/14] irqchip: mbigen: drop module owner Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-02 13:31 ` [PATCH v6 13/14] irqchip: mbigen: introduce mbigen_of_create_domain() Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo 2017-01-02 13:31 ` [PATCH v6 14/14] irqchip: mbigen: Add ACPI support Hanjun Guo 2017-01-02 13:31 ` Hanjun Guo
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=58763E0D.2030905@linaro.org \ --to=hanjun.guo@linaro.org \ --cc=agustinv@codeaurora.org \ --cc=charles.garcia-tobin@arm.com \ --cc=gregkh@linuxfoundation.org \ --cc=huxinwei@huawei.com \ --cc=jcm@redhat.com \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxarm@huawei.com \ --cc=lorenzo.pieralisi@arm.com \ --cc=majun258@huawei.com \ --cc=marc.zyngier@arm.com \ --cc=okaya@codeaurora.org \ --cc=rjw@rjwysocki.net \ --cc=tglx@linutronix.de \ --cc=tn@semihalf.com \ --cc=wangkefeng.wang@huawei.com \ --cc=yimin@huawei.com \ /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: linkBe 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.