From: Matthias Brugger <matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Minghsiu Tsai
<minghsiu.tsai-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
Mauro Carvalho Chehab
<mchehab-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
Cc: Hans Verkuil
<hans.verkuil-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>,
daniel.thompson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Daniel Kurtz <djkurtz-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
Pawel Osciak <posciak-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
Houlong Wei <houlong.wei-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
srv_heupstream-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org,
Eddie Huang <eddie.huang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
Yingjoe Chen
<yingjoe.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
Wu-Cheng Li <wuchengli-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCH v3 3/3] media: mtk-mdp: Fix mdp device tree
Date: Mon, 15 May 2017 09:27:52 +0200 [thread overview]
Message-ID: <79df594b-33cb-e606-5ace-66f450f839e9@gmail.com> (raw)
In-Reply-To: <1494815512.31916.11.camel@mtksdaap41>
On 15/05/17 04:31, Minghsiu Tsai wrote:
> On Fri, 2017-05-12 at 17:05 +0200, Matthias Brugger wrote:
>>
>> On 12/05/17 05:22, Minghsiu Tsai wrote:
>>> From: Daniel Kurtz <djkurtz-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
>>>
>>> If the mdp_* nodes are under an mdp sub-node, their corresponding
>>> platform device does not automatically get its iommu assigned properly.
>>>
>>> Fix this by moving the mdp component nodes up a level such that they are
>>> siblings of mdp and all other SoC subsystems. This also simplifies the
>>> device tree.
>>>
>>> Although it fixes iommu assignment issue, it also break compatibility
>>> with old device tree. So, the patch in driver is needed to iterate over
>>> sibling mdp device nodes, not child ones, to keep driver work properly.
>>>
>>
>> Couldn't we preserve backwards compatibility by doing something like this:
>> diff --git a/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>> b/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>> index 9e4eb7dcc424..277d8fe6eb76 100644
>> --- a/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>> +++ b/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>> @@ -103,7 +103,7 @@ static int mtk_mdp_probe(struct platform_device *pdev)
>> {
>> struct mtk_mdp_dev *mdp;
>> struct device *dev = &pdev->dev;
>> - struct device_node *node;
>> + struct device_node *node, *parent;
>> int i, ret = 0;
>>
>> mdp = devm_kzalloc(dev, sizeof(*mdp), GFP_KERNEL);
>> @@ -117,8 +117,14 @@ static int mtk_mdp_probe(struct platform_device *pdev)
>> mutex_init(&mdp->lock);
>> mutex_init(&mdp->vpulock);
>>
>> + /* Old dts had the components as child nodes */
>> + if (of_get_next_child(dev->of_node, NULL))
>> + parent = dev->of_node;
>> + else
>> + parent = dev->of_node->parent;
>> +
>> /* Iterate over sibling MDP function blocks */
>> - for_each_child_of_node(dev->of_node, node) {
>> + for_each_child_of_node(parent, node) {
>> const struct of_device_id *of_id;
>> enum mtk_mdp_comp_type comp_type;
>> int comp_id;
>>
>> Maybe even by putting a warning in the if branch to make sure, people
>> are aware of their out-of-date device tree blobs.
>>
>> Regards,
>> Matthias
>>
>
> Hi Matthias,
>
> It is a good idea to do compatible in such a way and put a warning the
> device tree is out of date. People can find out cause soon if device
> tree is old.
>
> I modify the code as below:
>
> + /* Old dts had the components as child nodes */
> + if (of_get_next_child(dev->of_node, NULL)) {
> + parent = dev->of_node;
> + dev_warn(dev, "device tree is out of date\n");
> + } else {
> + parent = dev->of_node->parent;
> + }
>
> Will you upload it in a separate patch?
> If not, I can merge it in my patch series and upload v4.
>
Please integrate it into your patch series.
Mauro, are you ok with the dev_warn about the out-of-date device-tree?
Regards,
Matthias
>
> Best Regards,
>
> Ming Hsiu
>
>>> Signed-off-by: Daniel Kurtz <djkurtz-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
>>> Signed-off-by: Minghsiu Tsai <minghsiu.tsai-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
>>>
>>> ---
>>> drivers/media/platform/mtk-mdp/mtk_mdp_core.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/media/platform/mtk-mdp/mtk_mdp_core.c b/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>>> index 9e4eb7d..a5ad586 100644
>>> --- a/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>>> +++ b/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>>> @@ -118,7 +118,7 @@ static int mtk_mdp_probe(struct platform_device *pdev)
>>> mutex_init(&mdp->vpulock);
>>>
>>> /* Iterate over sibling MDP function blocks */
>>> - for_each_child_of_node(dev->of_node, node) {
>>> + for_each_child_of_node(dev->of_node->parent, node) {
>>> const struct of_device_id *of_id;
>>> enum mtk_mdp_comp_type comp_type;
>>> int comp_id;
>>>
>
>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: matthias.bgg@gmail.com (Matthias Brugger)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 3/3] media: mtk-mdp: Fix mdp device tree
Date: Mon, 15 May 2017 09:27:52 +0200 [thread overview]
Message-ID: <79df594b-33cb-e606-5ace-66f450f839e9@gmail.com> (raw)
In-Reply-To: <1494815512.31916.11.camel@mtksdaap41>
On 15/05/17 04:31, Minghsiu Tsai wrote:
> On Fri, 2017-05-12 at 17:05 +0200, Matthias Brugger wrote:
>>
>> On 12/05/17 05:22, Minghsiu Tsai wrote:
>>> From: Daniel Kurtz <djkurtz@chromium.org>
>>>
>>> If the mdp_* nodes are under an mdp sub-node, their corresponding
>>> platform device does not automatically get its iommu assigned properly.
>>>
>>> Fix this by moving the mdp component nodes up a level such that they are
>>> siblings of mdp and all other SoC subsystems. This also simplifies the
>>> device tree.
>>>
>>> Although it fixes iommu assignment issue, it also break compatibility
>>> with old device tree. So, the patch in driver is needed to iterate over
>>> sibling mdp device nodes, not child ones, to keep driver work properly.
>>>
>>
>> Couldn't we preserve backwards compatibility by doing something like this:
>> diff --git a/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>> b/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>> index 9e4eb7dcc424..277d8fe6eb76 100644
>> --- a/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>> +++ b/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>> @@ -103,7 +103,7 @@ static int mtk_mdp_probe(struct platform_device *pdev)
>> {
>> struct mtk_mdp_dev *mdp;
>> struct device *dev = &pdev->dev;
>> - struct device_node *node;
>> + struct device_node *node, *parent;
>> int i, ret = 0;
>>
>> mdp = devm_kzalloc(dev, sizeof(*mdp), GFP_KERNEL);
>> @@ -117,8 +117,14 @@ static int mtk_mdp_probe(struct platform_device *pdev)
>> mutex_init(&mdp->lock);
>> mutex_init(&mdp->vpulock);
>>
>> + /* Old dts had the components as child nodes */
>> + if (of_get_next_child(dev->of_node, NULL))
>> + parent = dev->of_node;
>> + else
>> + parent = dev->of_node->parent;
>> +
>> /* Iterate over sibling MDP function blocks */
>> - for_each_child_of_node(dev->of_node, node) {
>> + for_each_child_of_node(parent, node) {
>> const struct of_device_id *of_id;
>> enum mtk_mdp_comp_type comp_type;
>> int comp_id;
>>
>> Maybe even by putting a warning in the if branch to make sure, people
>> are aware of their out-of-date device tree blobs.
>>
>> Regards,
>> Matthias
>>
>
> Hi Matthias,
>
> It is a good idea to do compatible in such a way and put a warning the
> device tree is out of date. People can find out cause soon if device
> tree is old.
>
> I modify the code as below:
>
> + /* Old dts had the components as child nodes */
> + if (of_get_next_child(dev->of_node, NULL)) {
> + parent = dev->of_node;
> + dev_warn(dev, "device tree is out of date\n");
> + } else {
> + parent = dev->of_node->parent;
> + }
>
> Will you upload it in a separate patch?
> If not, I can merge it in my patch series and upload v4.
>
Please integrate it into your patch series.
Mauro, are you ok with the dev_warn about the out-of-date device-tree?
Regards,
Matthias
>
> Best Regards,
>
> Ming Hsiu
>
>>> Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
>>> Signed-off-by: Minghsiu Tsai <minghsiu.tsai@mediatek.com>
>>>
>>> ---
>>> drivers/media/platform/mtk-mdp/mtk_mdp_core.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/media/platform/mtk-mdp/mtk_mdp_core.c b/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>>> index 9e4eb7d..a5ad586 100644
>>> --- a/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>>> +++ b/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>>> @@ -118,7 +118,7 @@ static int mtk_mdp_probe(struct platform_device *pdev)
>>> mutex_init(&mdp->vpulock);
>>>
>>> /* Iterate over sibling MDP function blocks */
>>> - for_each_child_of_node(dev->of_node, node) {
>>> + for_each_child_of_node(dev->of_node->parent, node) {
>>> const struct of_device_id *of_id;
>>> enum mtk_mdp_comp_type comp_type;
>>> int comp_id;
>>>
>
>
WARNING: multiple messages have this Message-ID (diff)
From: Matthias Brugger <matthias.bgg@gmail.com>
To: Minghsiu Tsai <minghsiu.tsai@mediatek.com>,
Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Cc: Hans Verkuil <hans.verkuil@cisco.com>,
daniel.thompson@linaro.org, Rob Herring <robh+dt@kernel.org>,
Daniel Kurtz <djkurtz@chromium.org>,
Pawel Osciak <posciak@chromium.org>,
Houlong Wei <houlong.wei@mediatek.com>,
srv_heupstream@mediatek.com,
Eddie Huang <eddie.huang@mediatek.com>,
Yingjoe Chen <yingjoe.chen@mediatek.com>,
Wu-Cheng Li <wuchengli@google.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-media@vger.kernel.org, linux-mediatek@lists.infradead.org
Subject: Re: [PATCH v3 3/3] media: mtk-mdp: Fix mdp device tree
Date: Mon, 15 May 2017 09:27:52 +0200 [thread overview]
Message-ID: <79df594b-33cb-e606-5ace-66f450f839e9@gmail.com> (raw)
In-Reply-To: <1494815512.31916.11.camel@mtksdaap41>
On 15/05/17 04:31, Minghsiu Tsai wrote:
> On Fri, 2017-05-12 at 17:05 +0200, Matthias Brugger wrote:
>>
>> On 12/05/17 05:22, Minghsiu Tsai wrote:
>>> From: Daniel Kurtz <djkurtz@chromium.org>
>>>
>>> If the mdp_* nodes are under an mdp sub-node, their corresponding
>>> platform device does not automatically get its iommu assigned properly.
>>>
>>> Fix this by moving the mdp component nodes up a level such that they are
>>> siblings of mdp and all other SoC subsystems. This also simplifies the
>>> device tree.
>>>
>>> Although it fixes iommu assignment issue, it also break compatibility
>>> with old device tree. So, the patch in driver is needed to iterate over
>>> sibling mdp device nodes, not child ones, to keep driver work properly.
>>>
>>
>> Couldn't we preserve backwards compatibility by doing something like this:
>> diff --git a/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>> b/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>> index 9e4eb7dcc424..277d8fe6eb76 100644
>> --- a/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>> +++ b/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>> @@ -103,7 +103,7 @@ static int mtk_mdp_probe(struct platform_device *pdev)
>> {
>> struct mtk_mdp_dev *mdp;
>> struct device *dev = &pdev->dev;
>> - struct device_node *node;
>> + struct device_node *node, *parent;
>> int i, ret = 0;
>>
>> mdp = devm_kzalloc(dev, sizeof(*mdp), GFP_KERNEL);
>> @@ -117,8 +117,14 @@ static int mtk_mdp_probe(struct platform_device *pdev)
>> mutex_init(&mdp->lock);
>> mutex_init(&mdp->vpulock);
>>
>> + /* Old dts had the components as child nodes */
>> + if (of_get_next_child(dev->of_node, NULL))
>> + parent = dev->of_node;
>> + else
>> + parent = dev->of_node->parent;
>> +
>> /* Iterate over sibling MDP function blocks */
>> - for_each_child_of_node(dev->of_node, node) {
>> + for_each_child_of_node(parent, node) {
>> const struct of_device_id *of_id;
>> enum mtk_mdp_comp_type comp_type;
>> int comp_id;
>>
>> Maybe even by putting a warning in the if branch to make sure, people
>> are aware of their out-of-date device tree blobs.
>>
>> Regards,
>> Matthias
>>
>
> Hi Matthias,
>
> It is a good idea to do compatible in such a way and put a warning the
> device tree is out of date. People can find out cause soon if device
> tree is old.
>
> I modify the code as below:
>
> + /* Old dts had the components as child nodes */
> + if (of_get_next_child(dev->of_node, NULL)) {
> + parent = dev->of_node;
> + dev_warn(dev, "device tree is out of date\n");
> + } else {
> + parent = dev->of_node->parent;
> + }
>
> Will you upload it in a separate patch?
> If not, I can merge it in my patch series and upload v4.
>
Please integrate it into your patch series.
Mauro, are you ok with the dev_warn about the out-of-date device-tree?
Regards,
Matthias
>
> Best Regards,
>
> Ming Hsiu
>
>>> Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
>>> Signed-off-by: Minghsiu Tsai <minghsiu.tsai@mediatek.com>
>>>
>>> ---
>>> drivers/media/platform/mtk-mdp/mtk_mdp_core.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/media/platform/mtk-mdp/mtk_mdp_core.c b/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>>> index 9e4eb7d..a5ad586 100644
>>> --- a/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>>> +++ b/drivers/media/platform/mtk-mdp/mtk_mdp_core.c
>>> @@ -118,7 +118,7 @@ static int mtk_mdp_probe(struct platform_device *pdev)
>>> mutex_init(&mdp->vpulock);
>>>
>>> /* Iterate over sibling MDP function blocks */
>>> - for_each_child_of_node(dev->of_node, node) {
>>> + for_each_child_of_node(dev->of_node->parent, node) {
>>> const struct of_device_id *of_id;
>>> enum mtk_mdp_comp_type comp_type;
>>> int comp_id;
>>>
>
>
next prev parent reply other threads:[~2017-05-15 7:27 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-12 3:22 [PATCH v3 0/3] Fix mdp device tree Minghsiu Tsai
2017-05-12 3:22 ` Minghsiu Tsai
2017-05-12 3:22 ` Minghsiu Tsai
2017-05-12 3:22 ` [PATCH v3 1/3] dt-bindings: mt8173: " Minghsiu Tsai
2017-05-12 3:22 ` Minghsiu Tsai
2017-05-12 3:22 ` Minghsiu Tsai
2017-05-15 20:48 ` Rob Herring
2017-05-15 20:48 ` Rob Herring
2017-05-12 3:22 ` [PATCH v3 2/3] arm64: dts: " Minghsiu Tsai
2017-05-12 3:22 ` Minghsiu Tsai
2017-05-12 3:22 ` Minghsiu Tsai
2017-05-12 3:22 ` [PATCH v3 3/3] media: mtk-mdp: " Minghsiu Tsai
2017-05-12 3:22 ` Minghsiu Tsai
2017-05-12 3:22 ` Minghsiu Tsai
[not found] ` <1494559361-42835-4-git-send-email-minghsiu.tsai-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2017-05-12 15:05 ` Matthias Brugger
2017-05-12 15:05 ` Matthias Brugger
2017-05-12 15:05 ` Matthias Brugger
[not found] ` <60f89b9a-f068-25a7-3f8b-d13b19357361-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-05-15 2:31 ` Minghsiu Tsai
2017-05-15 2:31 ` Minghsiu Tsai
2017-05-15 2:31 ` Minghsiu Tsai
2017-05-15 7:27 ` Matthias Brugger [this message]
2017-05-15 7:27 ` Matthias Brugger
2017-05-15 7:27 ` Matthias Brugger
2017-05-22 9:09 ` [PATCH v3 0/3] " Hans Verkuil
2017-05-22 9:09 ` Hans Verkuil
[not found] ` <20ba4f83-7d22-2a8e-4eb6-7d4eba92e2ae-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2017-05-22 14:14 ` Matthias Brugger
2017-05-22 14:14 ` Matthias Brugger
2017-05-22 14:14 ` Matthias Brugger
[not found] ` <1f7de9e7-2c18-6662-4b95-519d22a70723-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-05-22 14:16 ` Hans Verkuil
2017-05-22 14:16 ` Hans Verkuil
2017-05-22 14:16 ` Hans Verkuil
[not found] ` <fe23cd68-461d-845a-13e9-93dd9493c1f9-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2017-05-23 3:35 ` Minghsiu Tsai
2017-05-23 3:35 ` Minghsiu Tsai
2017-05-23 3:35 ` Minghsiu Tsai
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=79df594b-33cb-e606-5ace-66f450f839e9@gmail.com \
--to=matthias.bgg-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=daniel.thompson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=djkurtz-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=eddie.huang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
--cc=hans.verkuil-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org \
--cc=houlong.wei-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=mchehab-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org \
--cc=minghsiu.tsai-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
--cc=posciak-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=srv_heupstream-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
--cc=wuchengli-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=yingjoe.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.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.