* [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver. @ 2016-03-17 8:33 MaJun 2016-03-17 8:34 ` [PATCH v3 1/2] irqchip/mbigen:Change the mbigen node definition in dt binding file MaJun ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: MaJun @ 2016-03-17 8:33 UTC (permalink / raw) To: linux-arm-kernel From: Ma Jun <majun258@huawei.com> This patch set is used to fix the problem of remap a set of registers repeatedly in current mbigen driver. Changes in v3: --- Change the log to make more detail description about the IO remap problem. Changes in v2: --- Change the mbigen device node definition as Mark suggested. --- Change the mbigen driver based on the new mbigen dts structure. Ma Jun (2): irqchip/mbigen:Change the mbigen node definition in dt binding file irqchip/mbigen:Change the mbigen driver based on the new mbigen node definition .../interrupt-controller/hisilicon,mbigen-v2.txt | 22 +++++++++++--- drivers/irqchip/irq-mbigen.c | 30 ++++++++++++++------ 2 files changed, 38 insertions(+), 14 deletions(-) ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 1/2] irqchip/mbigen:Change the mbigen node definition in dt binding file 2016-03-17 8:33 [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver MaJun @ 2016-03-17 8:34 ` MaJun 2016-03-17 8:34 ` [PATCH v3 2/2] irqchip/mbigen:Change the mbigen driver based on the new mbigen node definition MaJun 2016-03-21 10:29 ` [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver Thomas Gleixner 2 siblings, 0 replies; 9+ messages in thread From: MaJun @ 2016-03-17 8:34 UTC (permalink / raw) To: linux-arm-kernel From: Ma Jun <majun258@huawei.com> For mbigen module, there is a special case that more than one mbigen device nodes use the same reg definition in DTS when these devices exist in the same mbigen hardware module. In current mbigen driver, these mbigen devices definition as below: mbigen_dev1:intc_dev1 { ... reg = <0x0 0xc0080000 0x0 0x10000>; ... }; mbigen_dev2:intc_dev2 { ... reg = <0x0 0xc0080000 0x0 0x10000>; ... }; On this case, devm_ioremap_resource() returns fail with info "can't request region for resource" because of memory region check. To fix this problem, the mbigen node definition and structure are changed as Mark Rutland suggested in v1 patch[1]. [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2016-February/403691.html Signed-off-by: Ma Jun <majun258@huawei.com> --- .../interrupt-controller/hisilicon,mbigen-v2.txt | 22 +++++++++++++++---- 1 files changed, 17 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/interrupt-controller/hisilicon,mbigen-v2.txt b/Documentation/devicetree/bindings/interrupt-controller/hisilicon,mbigen-v2.txt index 720f7c9..3b2f4c4 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/hisilicon,mbigen-v2.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/hisilicon,mbigen-v2.txt @@ -21,6 +21,8 @@ Mbigen main node required properties: - reg: Specifies the base physical address and size of the Mbigen registers. +Mbigen sub node required properties: +------------------------------------------ - interrupt controller: Identifies the node as an interrupt controller - msi-parent: Specifies the MSI controller this mbigen use. @@ -45,13 +47,23 @@ Mbigen main node required properties: Examples: - mbigen_device_gmac:intc { + mbigen_chip_dsa { compatible = "hisilicon,mbigen-v2"; reg = <0x0 0xc0080000 0x0 0x10000>; - interrupt-controller; - msi-parent = <&its_dsa 0x40b1c>; - num-pins = <9>; - #interrupt-cells = <2>; + + mbigen_gmac:intc_gmac { + interrupt-controller; + msi-parent = <&its_dsa 0x40b1c>; + num-pins = <9>; + #interrupt-cells = <2>; + }; + + mbigen_i2c:intc_i2c { + interrupt-controller; + msi-parent = <&its_dsa 0x40b0e>; + num-pins = <2>; + #interrupt-cells = <2>; + }; }; Devices connect to mbigen required properties: -- 1.7.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 2/2] irqchip/mbigen:Change the mbigen driver based on the new mbigen node definition. 2016-03-17 8:33 [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver MaJun 2016-03-17 8:34 ` [PATCH v3 1/2] irqchip/mbigen:Change the mbigen node definition in dt binding file MaJun @ 2016-03-17 8:34 ` MaJun 2016-03-21 10:29 ` [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver Thomas Gleixner 2 siblings, 0 replies; 9+ messages in thread From: MaJun @ 2016-03-17 8:34 UTC (permalink / raw) To: linux-arm-kernel From: Ma Jun <majun258@huawei.com> In current mbigen driver, each mbigen device is initialized as a platform device. When these devices belong to same mbigen hardware module(chip), they use the same register definition in their device node and caused the problem of registers remapped repeatedly. Now, I try to initialize the mbigen module(chip) as a platform device and remap the register once to fix this problem. Signed-off-by: Ma Jun <majun258@huawei.com> --- drivers/irqchip/irq-mbigen.c | 30 +++++++++++++++++++++--------- 1 files changed, 21 insertions(+), 9 deletions(-) diff --git a/drivers/irqchip/irq-mbigen.c b/drivers/irqchip/irq-mbigen.c index 4dd3eb8..4d413bc 100644 --- a/drivers/irqchip/irq-mbigen.c +++ b/drivers/irqchip/irq-mbigen.c @@ -242,6 +242,8 @@ static int mbigen_device_probe(struct platform_device *pdev) struct resource *res; struct irq_domain *domain; u32 num_pins; + struct platform_device *child_pdev; + struct device_node *np; mgn_chip = devm_kzalloc(&pdev->dev, sizeof(*mgn_chip), GFP_KERNEL); if (!mgn_chip) @@ -251,25 +253,35 @@ static int mbigen_device_probe(struct platform_device *pdev) res = platform_get_resource(pdev, IORESOURCE_MEM, 0); mgn_chip->base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(mgn_chip->base)) return PTR_ERR(mgn_chip->base); - if (of_property_read_u32(pdev->dev.of_node, "num-pins", &num_pins) < 0) { - dev_err(&pdev->dev, "No num-pins property\n"); - return -EINVAL; - } + for_each_child_of_node(pdev->dev.of_node, np) { + if (!of_property_read_bool(np, "interrupt-controller")) + continue; + + child_pdev = of_platform_device_create(np, NULL, platform_bus_type.dev_root); + if (IS_ERR(child_pdev)) + return PTR_ERR(child_pdev); + + if (of_property_read_u32(child_pdev->dev.of_node, "num-pins", &num_pins) < 0) { + dev_err(&pdev->dev, "No num-pins property\n"); + return -EINVAL; + } - domain = platform_msi_create_device_domain(&pdev->dev, num_pins, + domain = platform_msi_create_device_domain(&child_pdev->dev, num_pins, mbigen_write_msg, &mbigen_domain_ops, mgn_chip); - if (!domain) - return -ENOMEM; + if (!domain) + return -ENOMEM; - platform_set_drvdata(pdev, mgn_chip); + dev_info(&child_pdev->dev, "Allocated %d MSIs\n", num_pins); + } - dev_info(&pdev->dev, "Allocated %d MSIs\n", num_pins); + platform_set_drvdata(pdev, mgn_chip); return 0; } -- 1.7.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver. 2016-03-17 8:33 [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver MaJun 2016-03-17 8:34 ` [PATCH v3 1/2] irqchip/mbigen:Change the mbigen node definition in dt binding file MaJun 2016-03-17 8:34 ` [PATCH v3 2/2] irqchip/mbigen:Change the mbigen driver based on the new mbigen node definition MaJun @ 2016-03-21 10:29 ` Thomas Gleixner 2016-03-22 3:10 ` majun (F) 2 siblings, 1 reply; 9+ messages in thread From: Thomas Gleixner @ 2016-03-21 10:29 UTC (permalink / raw) To: linux-arm-kernel On Thu, 17 Mar 2016, MaJun wrote: > This patch set is used to fix the problem of remap a set of registers > repeatedly in current mbigen driver. > > irqchip/mbigen:Change the mbigen node definition in dt binding file > irqchip/mbigen:Change the mbigen driver based on the new mbigen node definition These subject lines are still horrible as they tell nothing about the nature of the change. I fixed them up along with the changelogs and applied them to irq/urgent. Can you spot the difference? While at it. The config switch for this driver is horrible. It's just in the middle of the device driver configs. Why is this configurable by the user at all? It simply should be selected by arm64 or some subarch configuration there. Please clean that up. Thanks, tglx ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver. 2016-03-21 10:29 ` [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver Thomas Gleixner @ 2016-03-22 3:10 ` majun (F) 2016-05-05 14:49 ` Marc Zyngier 0 siblings, 1 reply; 9+ messages in thread From: majun (F) @ 2016-03-22 3:10 UTC (permalink / raw) To: linux-arm-kernel ? 2016/3/21 18:29, Thomas Gleixner ??: > On Thu, 17 Mar 2016, MaJun wrote: >> This patch set is used to fix the problem of remap a set of registers >> repeatedly in current mbigen driver. >> >> irqchip/mbigen:Change the mbigen node definition in dt binding file >> irqchip/mbigen:Change the mbigen driver based on the new mbigen node definition > > These subject lines are still horrible as they tell nothing about the nature > of the change. I fixed them up along with the changelogs and applied them to > irq/urgent. Can you spot the difference? Yes, after you changing, the subject and change log clearly show why we need to do this change. I have learned a lot from you :) > > While at it. The config switch for this driver is horrible. It's just in the > middle of the device driver configs. Why is this configurable by the user at > all? It simply should be selected by arm64 or some subarch configuration > there. Please clean that up. > will do. Thanks! MaJun > Thanks, > > tglx > > . > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver. 2016-03-22 3:10 ` majun (F) @ 2016-05-05 14:49 ` Marc Zyngier 2016-05-06 1:12 ` majun (F) 0 siblings, 1 reply; 9+ messages in thread From: Marc Zyngier @ 2016-05-05 14:49 UTC (permalink / raw) To: linux-arm-kernel On 22/03/16 03:10, majun (F) wrote: > > > ? 2016/3/21 18:29, Thomas Gleixner ??: >> On Thu, 17 Mar 2016, MaJun wrote: >>> This patch set is used to fix the problem of remap a set of registers >>> repeatedly in current mbigen driver. >>> >>> irqchip/mbigen:Change the mbigen node definition in dt binding file >>> irqchip/mbigen:Change the mbigen driver based on the new mbigen node definition >> >> These subject lines are still horrible as they tell nothing about the nature >> of the change. I fixed them up along with the changelogs and applied them to >> irq/urgent. Can you spot the difference? > > Yes, after you changing, the subject and change log clearly show why we need to > do this change. > I have learned a lot from you :) > >> >> While at it. The config switch for this driver is horrible. It's just in the >> middle of the device driver configs. Why is this configurable by the user at >> all? It simply should be selected by arm64 or some subarch configuration >> there. Please clean that up. >> > will do. So what's the status of this? Do you still plan to respin it? Thanks, M. -- Jazz is not dead. It just smells funny... ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver. 2016-05-05 14:49 ` Marc Zyngier @ 2016-05-06 1:12 ` majun (F) 2016-05-06 7:32 ` Marc Zyngier 0 siblings, 1 reply; 9+ messages in thread From: majun (F) @ 2016-05-06 1:12 UTC (permalink / raw) To: linux-arm-kernel Hi Marc: ? 2016/5/5 22:49, Marc Zyngier ??: > On 22/03/16 03:10, majun (F) wrote: >> >> >> ? 2016/3/21 18:29, Thomas Gleixner ??: >>> On Thu, 17 Mar 2016, MaJun wrote: >>>> This patch set is used to fix the problem of remap a set of registers >>>> repeatedly in current mbigen driver. >>>> >>>> irqchip/mbigen:Change the mbigen node definition in dt binding file >>>> irqchip/mbigen:Change the mbigen driver based on the new mbigen node definition >>> >>> These subject lines are still horrible as they tell nothing about the nature >>> of the change. I fixed them up along with the changelogs and applied them to >>> irq/urgent. Can you spot the difference? >> >> Yes, after you changing, the subject and change log clearly show why we need to >> do this change. >> I have learned a lot from you :) >> >>> >>> While at it. The config switch for this driver is horrible. It's just in the >>> middle of the device driver configs. Why is this configurable by the user at >>> all? It simply should be selected by arm64 or some subarch configuration >>> there. Please clean that up. >>> >> will do. > > So what's the status of this? Do you still plan to respin it? > This patch set had been ACK by Thomas. If you mean the mbigen driver config switch problem, the patch for this problem also had been ACK by thomas. please see the link: https://lkml.org/lkml/2016/3/23/76 Thanks Ma Jun > Thanks, > > M. > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver. 2016-05-06 1:12 ` majun (F) @ 2016-05-06 7:32 ` Marc Zyngier 2016-05-06 9:07 ` majun (F) 0 siblings, 1 reply; 9+ messages in thread From: Marc Zyngier @ 2016-05-06 7:32 UTC (permalink / raw) To: linux-arm-kernel On 06/05/16 02:12, majun (F) wrote: > Hi Marc: > > ? 2016/5/5 22:49, Marc Zyngier ??: >> On 22/03/16 03:10, majun (F) wrote: >>> >>> >>> ? 2016/3/21 18:29, Thomas Gleixner ??: >>>> On Thu, 17 Mar 2016, MaJun wrote: >>>>> This patch set is used to fix the problem of remap a set of registers >>>>> repeatedly in current mbigen driver. >>>>> >>>>> irqchip/mbigen:Change the mbigen node definition in dt binding file >>>>> irqchip/mbigen:Change the mbigen driver based on the new mbigen node definition >>>> >>>> These subject lines are still horrible as they tell nothing about the nature >>>> of the change. I fixed them up along with the changelogs and applied them to >>>> irq/urgent. Can you spot the difference? >>> >>> Yes, after you changing, the subject and change log clearly show why we need to >>> do this change. >>> I have learned a lot from you :) >>> >>>> >>>> While at it. The config switch for this driver is horrible. It's just in the >>>> middle of the device driver configs. Why is this configurable by the user at >>>> all? It simply should be selected by arm64 or some subarch configuration >>>> there. Please clean that up. >>>> >>> will do. >> >> So what's the status of this? Do you still plan to respin it? >> > > This patch set had been ACK by Thomas. Interesting. Somehow, the ARM email server has decided not to deliver the tip-bot messages, so I didn't see it was already in. Sorry for the noise. M. -- Jazz is not dead. It just smells funny... ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver. 2016-05-06 7:32 ` Marc Zyngier @ 2016-05-06 9:07 ` majun (F) 0 siblings, 0 replies; 9+ messages in thread From: majun (F) @ 2016-05-06 9:07 UTC (permalink / raw) To: linux-arm-kernel Hi Marc: ? 2016/5/6 15:32, Marc Zyngier ??: > On 06/05/16 02:12, majun (F) wrote: >> Hi Marc: >> >> ? 2016/5/5 22:49, Marc Zyngier ??: >>> On 22/03/16 03:10, majun (F) wrote: >>>> >>>> >>>> ? 2016/3/21 18:29, Thomas Gleixner ??: >>>>> On Thu, 17 Mar 2016, MaJun wrote: >>>>>> This patch set is used to fix the problem of remap a set of registers >>>>>> repeatedly in current mbigen driver. >>>>>> >>>>>> irqchip/mbigen:Change the mbigen node definition in dt binding file >>>>>> irqchip/mbigen:Change the mbigen driver based on the new mbigen node definition >>>>> >>>>> These subject lines are still horrible as they tell nothing about the nature >>>>> of the change. I fixed them up along with the changelogs and applied them to >>>>> irq/urgent. Can you spot the difference? >>>> >>>> Yes, after you changing, the subject and change log clearly show why we need to >>>> do this change. >>>> I have learned a lot from you :) >>>> >>>>> >>>>> While at it. The config switch for this driver is horrible. It's just in the >>>>> middle of the device driver configs. Why is this configurable by the user at >>>>> all? It simply should be selected by arm64 or some subarch configuration >>>>> there. Please clean that up. >>>>> >>>> will do. >>> >>> So what's the status of this? Do you still plan to respin it? >>> >> >> This patch set had been ACK by Thomas. > > Interesting. Somehow, the ARM email server has decided not to deliver > the tip-bot messages, so I didn't see it was already in. > > Sorry for the noise. Not at all. Thank you for your attention. MaJun Thanks! > > M. > ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2016-05-06 9:07 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-03-17 8:33 [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver MaJun 2016-03-17 8:34 ` [PATCH v3 1/2] irqchip/mbigen:Change the mbigen node definition in dt binding file MaJun 2016-03-17 8:34 ` [PATCH v3 2/2] irqchip/mbigen:Change the mbigen driver based on the new mbigen node definition MaJun 2016-03-21 10:29 ` [PATCH v3 0/2] irqchip/mbigen: fix the IO remap problem in mbigen driver Thomas Gleixner 2016-03-22 3:10 ` majun (F) 2016-05-05 14:49 ` Marc Zyngier 2016-05-06 1:12 ` majun (F) 2016-05-06 7:32 ` Marc Zyngier 2016-05-06 9:07 ` majun (F)
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).