* [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).