[PATCH] ARM: dts: remove display power domain for exynos5420

Rahul Sharma rahul.sharma at samsung.com
Tue Jun 17 23:36:54 PDT 2014


Hi Andrej,

On 18 June 2014 11:46, Andrzej Hajda <a.hajda at samsung.com> wrote:
> On 06/17/2014 07:49 AM, Rahul Sharma wrote:
>> Hi All,
>>
>> Please review this patch.
>>
>> Regards,
>> Rahul Sharma
>>
>> On 9 June 2014 16:58, Rahul Sharma <rahul.sharma at samsung.com> wrote:
>>> Display domain is removed due to instability issues. Explaining
>>> the problem below:
>>>
>>> exynos_init_late triggers the pm_genpd_poweroff_unused which
>>> powers off the unused power domains. This call hits before
>>> the trigger to deferred probes.
>>>
>>> DRM DP Panel defers the probe due to supply get failure. By the
>>> time, deferred probe is scheduled again, Display Power Domain is
>>> powered off by pm_genpd_poweroff_unused.
>>>
>>> FIMD and DP drivers are accessing registers during Probe and Bind
>>> callbacks. If display domain is enabled/disabled around register
>>> accesses, display domain gets unstable and we are getting Power
>>> Domain Disable fail notification. Increasing the Timeout also
>>> didn't help.
>
> As I understand the problem is that fimd and dp drivers access hw
> registers without enabling power domain. So the proper solution is to
> fix these drivers.

That is also a problem but I fixed those accesses in my local kernel before
hitting this issue. If we do register accesses in FIMD/DP probe/bind we
observes "Prefetch abort" exception. But here the problem is that 'DP
domain disable' starts failing if we enable/disable multiple times.

>
> Btw. there are already patches removing hw access from probe/bind of
> fimd. I guess removing also hw access from dp probe/bind could be a good
> solution.

Please let me know the links for posted patches. I will test with those patches.

Regards,
Rahul Sharma

>
> Regards
> Andrzej
>
>>>
>>> Signed-off-by: Rahul Sharma <rahul.sharma at samsung.com>
>>> ---
>>> based on Kukjin's for-next branch.
>>>
>>>  arch/arm/boot/dts/exynos5420.dtsi |    6 ------
>>>  1 file changed, 6 deletions(-)
>>>
>>> diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
>>> index e385322..3d528cf 100644
>>> --- a/arch/arm/boot/dts/exynos5420.dtsi
>>> +++ b/arch/arm/boot/dts/exynos5420.dtsi
>>> @@ -262,11 +262,6 @@
>>>                 reg = <0x10044060 0x20>;
>>>         };
>>>
>>> -       disp_pd: power-domain at 100440C0 {
>>> -               compatible = "samsung,exynos4210-pd";
>>> -               reg = <0x100440C0 0x20>;
>>> -       };
>>> -
>>>         msc_pd: power-domain at 10044120 {
>>>                 compatible = "samsung,exynos4210-pd";
>>>                 reg = <0x10044120 0x20>;
>>> @@ -518,7 +513,6 @@
>>>         };
>>>
>>>         fimd: fimd at 14400000 {
>>> -               samsung,power-domain = <&disp_pd>;
>>>                 clocks = <&clock CLK_SCLK_FIMD1>, <&clock CLK_FIMD1>;
>>>                 clock-names = "sclk_fimd", "fimd";
>>>         };
>>> --
>>> 1.7.9.5
>>>
>



More information about the linux-arm-kernel mailing list