Re: [RESEND PATCH v2 0/5] Fix the parse_dt of exynos dsi and remove the OF graph
On Thu, Mar 2, 2017 at 3:44 AM, Hoegeun Kwonwrote: > On 02/28/2017 06:58 PM, Krzysztof Kozlowski wrote: >> Discussions in previous thread lead us to bisectability problem. >> Bisectability in regular driver changes is one thing but in case of >> driver + DTS the gap is much bigger. DTS will go through separate tree >> and branches. How do you want to solve the problem? > > > Sorry for the delay in reply, Mar 1st was the holiday. > I thought of two solutions. > > 1. squash the patches in a single patch No, for the same reason. DTS code/patches have to go through arm-soc DTS branch without mixing with any driver changes. Otherwise arm-soc guys are angry. > 2. split the dts related patches so that the first part adds the: > +samsung,burst-clock-frequency = <51200>; > +samsung,esc-clock-frequency = <1600>; > > and the second part at the end removes the 'port' node > So it consists of 6 patches in total. That's a solution. The remaining DTS patches would go in next release... Another solution would be for this release cycle: if (of_property_does_not_exist(node, "samsung,burst-clock-frequency") { // Fallback to old parsing mode node = of_graph_get_endpoint_by_regs(node, DSI_PORT_OUT, 0); if (!node) { dev_err(dev, "no burst-clock-frequency nor output port with endpoint specified\n"); return -EINVAL; } } ret = exynos_dsi_of_read_u32(node, "samsung,burst-clock-frequency", >burst_clk_rate); ... ...and in next release the DTS patches would go in. This would give you also DTB backward compatibility. However still DTS could be applied later, after driver changes gets into mainline. Personally I would prefer your solution #2 (with separate DTS patch adding new properties). Does it sound reasonable for Inki? Thanks for looking into this problem. Best regards, Krzysztof ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [RESEND PATCH v2 0/5] Fix the parse_dt of exynos dsi and remove the OF graph
On 02/28/2017 06:58 PM, Krzysztof Kozlowski wrote: On Tue, Feb 28, 2017 at 10:17 AM, Hoegeun Kwonwrote: Hi All, [Resend this v2 patches, because i have missing TO and CC.] The dsi + panel is a parental relationship, so OF grpah is not needed. Therefore, the current dsi_parse_dt function will throw an error, because there is no linked OF graph for case such as fimd + dsi + panel. So the 1/5 patch parse the Pll, burst and esc clock frequency properties in dsi_parse_dt and modified to create a bridge_node only if there is an OF graph associated with dsi. Also fixed the dts, which depend on the 1/5 patch. So removed the ports node and move burst and esc clock frequency properties to the parent (DSI node). Discussions in previous thread lead us to bisectability problem. Bisectability in regular driver changes is one thing but in case of driver + DTS the gap is much bigger. DTS will go through separate tree and branches. How do you want to solve the problem? Sorry for the delay in reply, Mar 1st was the holiday. I thought of two solutions. 1. squash the patches in a single patch 2. split the dts related patches so that the first part adds the: +samsung,burst-clock-frequency = <51200>; +samsung,esc-clock-frequency = <1600>; and the second part at the end removes the 'port' node So it consists of 6 patches in total. Which do you think is better? If you have any other ideas, could you tell me? Best Regards, Hoegeun Best regards, Krzysztof ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [RESEND PATCH v2 0/5] Fix the parse_dt of exynos dsi and remove the OF graph
On Tue, Feb 28, 2017 at 10:17 AM, Hoegeun Kwonwrote: > Hi All, > > [Resend this v2 patches, because i have missing TO and CC.] > > The dsi + panel is a parental relationship, so OF grpah is not needed. > Therefore, the current dsi_parse_dt function will throw an error, > because there is no linked OF graph for case such as fimd + dsi + > panel. > > So the 1/5 patch parse the Pll, burst and esc clock frequency > properties in dsi_parse_dt and modified to create a bridge_node only > if there is an OF graph associated with dsi. > > Also fixed the dts, which depend on the 1/5 patch. So removed the > ports node and move burst and esc clock frequency properties to the > parent (DSI node). Discussions in previous thread lead us to bisectability problem. Bisectability in regular driver changes is one thing but in case of driver + DTS the gap is much bigger. DTS will go through separate tree and branches. How do you want to solve the problem? Best regards, Krzysztof ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[RESEND PATCH v2 0/5] Fix the parse_dt of exynos dsi and remove the OF graph
Hi All, [Resend this v2 patches, because i have missing TO and CC.] The dsi + panel is a parental relationship, so OF grpah is not needed. Therefore, the current dsi_parse_dt function will throw an error, because there is no linked OF graph for case such as fimd + dsi + panel. So the 1/5 patch parse the Pll, burst and esc clock frequency properties in dsi_parse_dt and modified to create a bridge_node only if there is an OF graph associated with dsi. Also fixed the dts, which depend on the 1/5 patch. So removed the ports node and move burst and esc clock frequency properties to the parent (DSI node). Changes for V2: - Added the clear explanation for commit. (1/5 patch) - Fixed it to the same subject as the actual work. (2/5 ~ 5/5 patches) Best Regards, Hoegeun Hoegeun Kwon (5): drm/exynos: dsi: Fix the parse_dt function arm64: dts: exynos: Remove the OF graph from DSI node for exynos5433 dts arm: dts: Remove the OF graph from DSI node for exynos3250 dts arm: dts: Remove the OF graph from DSI node for exynos4412 dts arm: dts: Remove the OF graph from DSI node for exynos4210 dts arch/arm/boot/dts/exynos3250-rinato.dts| 23 ++-- arch/arm/boot/dts/exynos4210-trats.dts | 23 ++-- arch/arm/boot/dts/exynos4412-trats2.dts| 23 ++-- .../boot/dts/exynos/exynos5433-tm2-common.dtsi | 16 ++- drivers/gpu/drm/exynos/exynos_drm_dsi.c| 32 ++ 5 files changed, 16 insertions(+), 101 deletions(-) -- 1.9.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 0/5] Fix the parse_dt of exynos dsi and remove the OF graph
On Tue, Feb 21, 2017 at 1:24 AM, Inki Daewrote: >>> Ideally you are right. DT changes should be no any dependency of driver >>> changes but now Exynos DT is broken. >> >> I didn't receive any bug reports that Exynos DT is broken so I am >> quite surprised hearing that. What do you mean by that? > > Wrong usage of Display relevant DT ABI is being fixed without the backward > compatibility of the DT ABI. This means device driver doesn't consider old DT > binding. > So the use of old DTB binary will make kernel booting not to work correctly. First you wrote that Exynos DT ABI is broken. Now you mention that wrong usage is being fixed and old DTB will not be supported. I really don't get what was your idea. Either something is broken or not. This is not a Shrodinger's cat. > >> >>> So if we have to keep the bisectability between driver and device tree >>> patches - this means that all drivers should always keep the backward >>> compatibility - then the drivers will be messed up. >> >> No, you are mixing two things. Bisectability is different than >> backward compatibility. For the backward DT ABI compatibility, we >> agreed that in this case it can be dropped. However bisectability is >> something totally different. The DTS changes always go through >> separate branch, so the driver has to be *always* ready for such case >> and should still be fully bisectable. This is a general rule existing > > I meant that if this patch series considers old DT binding to keep the > bisectability, then this driver would be messed up because the driver should > try to bind same properties at different places and one of these two cases > should be bound. > So this driver doesn't consider the old DT binding, which means that the old > DTB binary isn't compatible with this driver - exynos_drm_dsi.c. Which is wrong. The driver breaks bisectability on first commit. Let me put it simple: 1. First commit breaks all existing in-kernel DTS. When someone tries such commit during bisect, he will see some kind of failure. This means that bisectability is broken on first commit, regardless whether the rest of patches is on the same branch or not. 2. If the DTS are applied directly after first commit, the bisectability breakage gap is one-commit wide. 3. DTS commits go to different tree and different branch. This is a general rule. This means that bisectability breakage gap will be much wider, span over different trees and branches. This is bad. Bad by design. 4. Overall: these patches will break bisectability *always*. How big the breakage will be, depends on way of applying. 5. My merge window was closed some weeks ago. I sent an private email to Samsung folks, *including you*, on 24th of Jan reminding about arm-soc merge cycle and that it will close soon. You did not respond. Yesterday, v4.10 was released which opens Linus' merge window and now you want to apply these commits. The worst possible timing. Irresponsible. So let me put it straight. Please fix the first commit so it will not break bisectability. > This means if only one side is merged then this driver wouldn't work > correctly. > >> for long time and every deviation from the rule is pointed out by >> arm-soc guys. Whenever I accepted breaking of this rule, I had hard >> times with arm-soc so no - I am no longer giving up basic rule just >> because developer might not care. > > Understood and reasonable. Seems I just hurried up. For the bisectability, > this driver will have a little messed up code temporarily, and this messed up > code will be removed after dt change is merged. Not necessarily. Maybe this can be made in a smart way. I believed that no one cared to keep it reasonable and that is a problem. > This thing was really what I want to avoid - if even the messed up code > should be keeped forever for the backward compatibility then it would be > really terribble. :( Again you are mixing DT ABI backward compatibility with bisectability. There is no point of explaining this again... Best regards, Krzysztof ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 0/5] Fix the parse_dt of exynos dsi and remove the OF graph
On Mon, Feb 20, 2017 at 10:32 AM, Inki Daewrote: > > > 2017년 02월 20일 16:27에 Krzysztof Kozlowski 이(가) 쓴 글: >> On Mon, Feb 20, 2017 at 9:07 AM, Inki Dae wrote: >>> Hi Krzysztof, >>> >>> Can you merge patch 2 and 5 to your tree so that they can go to mainline? >>> Otherwise, I can merge them to my tree if you give me acked-by. >> >> Hi, >> >> Hm? Why do you need them to be merged? Do you mean that the first >> patch breaks not only ABI but also bisectability? Then this has to be >> reworked because: >> >> 1. The DTS patches cannot go through non-DT tree so no, you cannot >> take them into your branch. I will merge them according to point 4 >> below. >> 2. Bisectability has to be preserved. >> 3. DTS changes in general should not be a dependency for driver changes. > > Krzysztof, > > I know that. I didn't check you gave a comment to Hoegun do rework this patch > series. I just checked reviewed-by from Andrzej H. and thought no problem. > > Ideally you are right. DT changes should be no any dependency of driver > changes but now Exynos DT is broken. I didn't receive any bug reports that Exynos DT is broken so I am quite surprised hearing that. What do you mean by that? > So if we have to keep the bisectability between driver and device tree > patches - this means that all drivers should always keep the backward > compatibility - then the drivers will be messed up. No, you are mixing two things. Bisectability is different than backward compatibility. For the backward DT ABI compatibility, we agreed that in this case it can be dropped. However bisectability is something totally different. The DTS changes always go through separate branch, so the driver has to be *always* ready for such case and should still be fully bisectable. This is a general rule existing for long time and every deviation from the rule is pointed out by arm-soc guys. Whenever I accepted breaking of this rule, I had hard times with arm-soc so no - I am no longer giving up basic rule just because developer might not care. There are many ways to solve the bisectability problem. Recently for example Marek found nice way to solve the PMU syscon handle dependency [1]. One can also merge first DTS changes and in next release, merge the driver. > About this, we had a discussion and I think you agreed, > https://patchwork.kernel.org/patch/9477957/ Again, this discussion was about DT ABI. Not bisectability. > Do you want the backward compatibility to be kept always when new dt binding > relevant patch - which fixes up the wrong usage of dt binding - is posted? > It would be good for the backward compatibility to be kept as long as we can > do but there would be several cases to make the driver to be messed up like > this patch series. Again, DT ABI not bisectability. Best regards, Krzysztof [1] https://git.kernel.org/cgit/linux/kernel/git/krzk/linux.git/commit/?h=for-v4.11/drivers-soc-exynos-pmu-the-joy-never-ends=76640b84bd7a9d68c70d8bc8ecd02cdc4bd8855e ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 0/5] Fix the parse_dt of exynos dsi and remove the OF graph
On Mon, Feb 20, 2017 at 9:07 AM, Inki Daewrote: > Hi Krzysztof, > > Can you merge patch 2 and 5 to your tree so that they can go to mainline? > Otherwise, I can merge them to my tree if you give me acked-by. Hi, Hm? Why do you need them to be merged? Do you mean that the first patch breaks not only ABI but also bisectability? Then this has to be reworked because: 1. The DTS patches cannot go through non-DT tree so no, you cannot take them into your branch. I will merge them according to point 4 below. 2. Bisectability has to be preserved. 3. DTS changes in general should not be a dependency for driver changes. 4 . Usually DTS patches wait for driver to be acked by devicetree maintainers or merging by driver maintainer. This did not happen so DTS patches wait. Also these were sent too late to merge for this cycle so the only chance is v4.12. Best regards, Krzysztof ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 0/5] Fix the parse_dt of exynos dsi and remove the OF graph
2017년 02월 20일 17:55에 Krzysztof Kozlowski 이(가) 쓴 글: > On Mon, Feb 20, 2017 at 10:32 AM, Inki Daewrote: >> >> >> 2017년 02월 20일 16:27에 Krzysztof Kozlowski 이(가) 쓴 글: >>> On Mon, Feb 20, 2017 at 9:07 AM, Inki Dae wrote: Hi Krzysztof, Can you merge patch 2 and 5 to your tree so that they can go to mainline? Otherwise, I can merge them to my tree if you give me acked-by. >>> >>> Hi, >>> >>> Hm? Why do you need them to be merged? Do you mean that the first >>> patch breaks not only ABI but also bisectability? Then this has to be >>> reworked because: >>> >>> 1. The DTS patches cannot go through non-DT tree so no, you cannot >>> take them into your branch. I will merge them according to point 4 >>> below. >>> 2. Bisectability has to be preserved. >>> 3. DTS changes in general should not be a dependency for driver changes. >> >> Krzysztof, >> >> I know that. I didn't check you gave a comment to Hoegun do rework this >> patch series. I just checked reviewed-by from Andrzej H. and thought no >> problem. >> >> Ideally you are right. DT changes should be no any dependency of driver >> changes but now Exynos DT is broken. > > I didn't receive any bug reports that Exynos DT is broken so I am > quite surprised hearing that. What do you mean by that? Wrong usage of Display relevant DT ABI is being fixed without the backward compatibility of the DT ABI. This means device driver doesn't consider old DT binding. So the use of old DTB binary will make kernel booting not to work correctly. > >> So if we have to keep the bisectability between driver and device tree >> patches - this means that all drivers should always keep the backward >> compatibility - then the drivers will be messed up. > > No, you are mixing two things. Bisectability is different than > backward compatibility. For the backward DT ABI compatibility, we > agreed that in this case it can be dropped. However bisectability is > something totally different. The DTS changes always go through > separate branch, so the driver has to be *always* ready for such case > and should still be fully bisectable. This is a general rule existing I meant that if this patch series considers old DT binding to keep the bisectability, then this driver would be messed up because the driver should try to bind same properties at different places and one of these two cases should be bound. So this driver doesn't consider the old DT binding, which means that the old DTB binary isn't compatible with this driver - exynos_drm_dsi.c. This means if only one side is merged then this driver wouldn't work correctly. > for long time and every deviation from the rule is pointed out by > arm-soc guys. Whenever I accepted breaking of this rule, I had hard > times with arm-soc so no - I am no longer giving up basic rule just > because developer might not care. Understood and reasonable. Seems I just hurried up. For the bisectability, this driver will have a little messed up code temporarily, and this messed up code will be removed after dt change is merged. This thing was really what I want to avoid - if even the messed up code should be keeped forever for the backward compatibility then it would be really terribble. :( Do you have a better idea? > > There are many ways to solve the bisectability problem. Recently for > example Marek found nice way to solve the PMU syscon handle dependency Thanks for share but this would be a different case. Thanks, Inki Dae > [1]. One can also merge first DTS changes and in next release, merge > the driver. > >> About this, we had a discussion and I think you agreed, >> https://patchwork.kernel.org/patch/9477957/ > > Again, this discussion was about DT ABI. Not bisectability. > >> Do you want the backward compatibility to be kept always when new dt binding >> relevant patch - which fixes up the wrong usage of dt binding - is posted? >> It would be good for the backward compatibility to be kept as long as we can >> do but there would be several cases to make the driver to be messed up like >> this patch series. > > Again, DT ABI not bisectability. > > Best regards, > Krzysztof > > [1] > https://git.kernel.org/cgit/linux/kernel/git/krzk/linux.git/commit/?h=for-v4.11/drivers-soc-exynos-pmu-the-joy-never-ends=76640b84bd7a9d68c70d8bc8ecd02cdc4bd8855e > > ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 0/5] Fix the parse_dt of exynos dsi and remove the OF graph
2017년 02월 20일 16:27에 Krzysztof Kozlowski 이(가) 쓴 글: > On Mon, Feb 20, 2017 at 9:07 AM, Inki Daewrote: >> Hi Krzysztof, >> >> Can you merge patch 2 and 5 to your tree so that they can go to mainline? >> Otherwise, I can merge them to my tree if you give me acked-by. > > Hi, > > Hm? Why do you need them to be merged? Do you mean that the first > patch breaks not only ABI but also bisectability? Then this has to be > reworked because: > > 1. The DTS patches cannot go through non-DT tree so no, you cannot > take them into your branch. I will merge them according to point 4 > below. > 2. Bisectability has to be preserved. > 3. DTS changes in general should not be a dependency for driver changes. Krzysztof, I know that. I didn't check you gave a comment to Hoegun do rework this patch series. I just checked reviewed-by from Andrzej H. and thought no problem. Ideally you are right. DT changes should be no any dependency of driver changes but now Exynos DT is broken. So if we have to keep the bisectability between driver and device tree patches - this means that all drivers should always keep the backward compatibility - then the drivers will be messed up. About this, we had a discussion and I think you agreed, https://patchwork.kernel.org/patch/9477957/ Do you want the backward compatibility to be kept always when new dt binding relevant patch - which fixes up the wrong usage of dt binding - is posted? It would be good for the backward compatibility to be kept as long as we can do but there would be several cases to make the driver to be messed up like this patch series. > 4 . Usually DTS patches wait for driver to be acked by devicetree > maintainers or merging by driver maintainer. This did not happen so > DTS patches wait. Also these were sent too late to merge for this > cycle so the only chance is v4.12. Yes, maybe. Thanks, Inki Dae > > Best regards, > Krzysztof > -- > To unsubscribe from this list: send the line "unsubscribe devicetree" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 0/5] Fix the parse_dt of exynos dsi and remove the OF graph
Hi Krzysztof, Can you merge patch 2 and 5 to your tree so that they can go to mainline? Otherwise, I can merge them to my tree if you give me acked-by. Thanks, Inki Dae 2017년 02월 09일 10:26에 Hoegeun Kwon 이(가) 쓴 글: > Hi, > > The dsi + panel is a parental relationship, so OF grpah is not needed. > Therefore, the current dsi_parse_dt function will throw an error, > because there is no linked OF graph for case such as fimd + dsi + > panel. > > So the 1/5 patch parse the Pll, burst and esc clock frequency > properties in dsi_parse_dt and modified to create a bridge_node only > if there is an OF graph associated with dsi. > > Also fixed the dts, which depend on the 1/5 patch. So removed the > ports node and move burst and esc clock frequency properties to the > parent (DSI node). > > Changes for V2: > - Added the clear explanation for commit. (1/5 patch) > - Fixed it to the same subject as the actual work. (2/5 ~ 5/5 patches) > > Best Regards, > Hoegeun > > Hoegeun Kwon (5): > drm/exynos: dsi: Fix the parse_dt function > arm64: dts: exynos: Remove the OF graph from DSI node for exynos5433 > dts > arm: dts: Remove the OF graph from DSI node for exynos3250 dts > arm: dts: Remove the OF graph from DSI node for exynos4412 dts > arm: dts: Remove the OF graph from DSI node for exynos4210 dts > > arch/arm/boot/dts/exynos3250-rinato.dts| 23 ++-- > arch/arm/boot/dts/exynos4210-trats.dts | 23 ++-- > arch/arm/boot/dts/exynos4412-trats2.dts| 23 ++-- > .../boot/dts/exynos/exynos5433-tm2-common.dtsi | 16 ++- > drivers/gpu/drm/exynos/exynos_drm_dsi.c| 32 > ++ > 5 files changed, 16 insertions(+), 101 deletions(-) > ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH v2 0/5] Fix the parse_dt of exynos dsi and remove the OF graph
Hi, The dsi + panel is a parental relationship, so OF grpah is not needed. Therefore, the current dsi_parse_dt function will throw an error, because there is no linked OF graph for case such as fimd + dsi + panel. So the 1/5 patch parse the Pll, burst and esc clock frequency properties in dsi_parse_dt and modified to create a bridge_node only if there is an OF graph associated with dsi. Also fixed the dts, which depend on the 1/5 patch. So removed the ports node and move burst and esc clock frequency properties to the parent (DSI node). Changes for V2: - Added the clear explanation for commit. (1/5 patch) - Fixed it to the same subject as the actual work. (2/5 ~ 5/5 patches) Best Regards, Hoegeun Hoegeun Kwon (5): drm/exynos: dsi: Fix the parse_dt function arm64: dts: exynos: Remove the OF graph from DSI node for exynos5433 dts arm: dts: Remove the OF graph from DSI node for exynos3250 dts arm: dts: Remove the OF graph from DSI node for exynos4412 dts arm: dts: Remove the OF graph from DSI node for exynos4210 dts arch/arm/boot/dts/exynos3250-rinato.dts| 23 ++-- arch/arm/boot/dts/exynos4210-trats.dts | 23 ++-- arch/arm/boot/dts/exynos4412-trats2.dts| 23 ++-- .../boot/dts/exynos/exynos5433-tm2-common.dtsi | 16 ++- drivers/gpu/drm/exynos/exynos_drm_dsi.c| 32 ++ 5 files changed, 16 insertions(+), 101 deletions(-) -- 1.9.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel