diff mbox

[1/1] ARM: dts: Make DP a consumer of DISP1 power domain on Exynos5420

Message ID 1428870659-5525-1-git-send-email-javier.martinez@collabora.co.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Javier Martinez Canillas April 12, 2015, 8:30 p.m. UTC
Commit ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
added a device node for the Exynos5420 DISP1 power domain but dit not
make the DP controller a consumer of that power domain.

This causes an "Unhandled fault: imprecise external abort" error if the
exynos-dp driver tries to access the DP controller registers and the PD
was turned off. This lead to a kernel panic and a complete system hang.

Make the DP controller device node a consumer of the DISP1 power domain
to ensure that the PD is turned on when the exynos-dp driver is probed.

Fixes: ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
---

Hello,

This latent bug was not exposed before since drivers for other devices
marked as DISP1 power domain consumers were probed before exynos-dp so
the PD was already on which made possible to access the DP registers.

But "regulator: Defer lookup of supply to regulator_get" [0] that is in
linux-next from a couple of days now, changed the order on which the
drivers' probes succeed so the PD was disabled during exynos-dp probe.

Exynos5420 machines with a display such as the Exynos5420 Peach Pit and
Exynos5800 Peach Pi were failing to boot due this issue, i.e: [1].

Olof,

Could you please confirm $subject fixes the issue catched by your farm?

Krzysztof,

This patch conflicts with your Exynos5 phandle notation cleanup [2] but
I preferred to send it on top of linux-next instead of making your series
a dependency since it fixes a very important bug that had caused -next to
be broken on these matchines for days now.

Thanks a lot and best regards,
Javier

[0]: https://lkml.org/lkml/2015/3/24/1167
[1]: http://arm-soc.lixom.net/bootlogs/next/next-20150409/pi-arm-exynos_defconfig.html
[2]: https://lkml.org/lkml/2015/4/12/49

 arch/arm/boot/dts/exynos5420.dtsi | 1 +
 1 file changed, 1 insertion(+)

Comments

Krzysztof Kozlowski April 13, 2015, 10:59 a.m. UTC | #1
2015-04-13 5:30 GMT+09:00 Javier Martinez Canillas
<javier.martinez@collabora.co.uk>:
> Commit ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
> added a device node for the Exynos5420 DISP1 power domain but dit not
> make the DP controller a consumer of that power domain.
>
> This causes an "Unhandled fault: imprecise external abort" error if the
> exynos-dp driver tries to access the DP controller registers and the PD
> was turned off. This lead to a kernel panic and a complete system hang.
>
> Make the DP controller device node a consumer of the DISP1 power domain
> to ensure that the PD is turned on when the exynos-dp driver is probed.
>
> Fixes: ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
> Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
> ---
>
> Hello,
>
> This latent bug was not exposed before since drivers for other devices
> marked as DISP1 power domain consumers were probed before exynos-dp so
> the PD was already on which made possible to access the DP registers.
>
> But "regulator: Defer lookup of supply to regulator_get" [0] that is in
> linux-next from a couple of days now, changed the order on which the
> drivers' probes succeed so the PD was disabled during exynos-dp probe.
>
> Exynos5420 machines with a display such as the Exynos5420 Peach Pit and
> Exynos5800 Peach Pi were failing to boot due this issue, i.e: [1].
>
> Olof,
>
> Could you please confirm $subject fixes the issue catched by your farm?
>
> Krzysztof,
>
> This patch conflicts with your Exynos5 phandle notation cleanup [2] but
> I preferred to send it on top of linux-next instead of making your series
> a dependency since it fixes a very important bug that had caused -next to
> be broken on these matchines for days now.

Sure, I don't mind. My patchset is just a cleanup so it can wait and
should not block important stuff.

Best regards,
Krzysztof
Javier Martinez Canillas April 16, 2015, 7:40 a.m. UTC | #2
Hello Kukjin,

On 04/12/2015 10:30 PM, Javier Martinez Canillas wrote:
> Commit ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
> added a device node for the Exynos5420 DISP1 power domain but dit not
> make the DP controller a consumer of that power domain.
> 
> This causes an "Unhandled fault: imprecise external abort" error if the
> exynos-dp driver tries to access the DP controller registers and the PD
> was turned off. This lead to a kernel panic and a complete system hang.
> 
> Make the DP controller device node a consumer of the DISP1 power domain
> to ensure that the PD is turned on when the exynos-dp driver is probed.
> 
> Fixes: ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
> Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>

Any comments about this patch?

It's very trivial but fixes a very important regression on Exynos5420 boards
with display panel and Peach Pit and Pi have been broken since next-20150401.

This [0] is the Peach Pit boot log with yesteday's linux-next for example.

Best regards,
Javier

[0]: http://arm-soc.lixom.net/bootlogs/next/next-20150415/pit-arm-exynos_defconfig.html
Javier Martinez Canillas April 30, 2015, 12:32 a.m. UTC | #3
Hello Kukjin,

On 04/16/2015 09:40 AM, Javier Martinez Canillas wrote:
> 
> On 04/12/2015 10:30 PM, Javier Martinez Canillas wrote:
>> Commit ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
>> added a device node for the Exynos5420 DISP1 power domain but dit not
>> make the DP controller a consumer of that power domain.
>> 
>> This causes an "Unhandled fault: imprecise external abort" error if the
>> exynos-dp driver tries to access the DP controller registers and the PD
>> was turned off. This lead to a kernel panic and a complete system hang.
>> 
>> Make the DP controller device node a consumer of the DISP1 power domain
>> to ensure that the PD is turned on when the exynos-dp driver is probed.
>> 
>> Fixes: ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
>> Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
> 
> Any comments about this patch?
> 
> It's very trivial but fixes a very important regression on Exynos5420 boards
> with display panel and Peach Pit and Pi have been broken since next-20150401.
> 
> This [0] is the Peach Pit boot log with yesteday's linux-next for example.
> 
> Best regards,
> Javier
> 
> [0]: http://arm-soc.lixom.net/bootlogs/next/next-20150415/pit-arm-exynos_defconfig.html
> 

It has been many weeks since this patch has been posted and linux-next
is still broken:

http://arm-soc.lixom.net/bootlogs/next/next-20150429/pi-arm-exynos_defconfig.html

Could you please apply $subject to fix the imprecise external abort issue.

Best regards,
Javier
kgene@kernel.org April 30, 2015, 12:36 a.m. UTC | #4
Javier Martinez Canillas wrote:
> 
> Hello Kukjin,
> 
Hi,

> On 04/16/2015 09:40 AM, Javier Martinez Canillas wrote:
> >
> > On 04/12/2015 10:30 PM, Javier Martinez Canillas wrote:
> >> Commit ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
> >> added a device node for the Exynos5420 DISP1 power domain but dit not
> >> make the DP controller a consumer of that power domain.
> >>
> >> This causes an "Unhandled fault: imprecise external abort" error if the
> >> exynos-dp driver tries to access the DP controller registers and the PD
> >> was turned off. This lead to a kernel panic and a complete system hang.
> >>
> >> Make the DP controller device node a consumer of the DISP1 power domain
> >> to ensure that the PD is turned on when the exynos-dp driver is probed.
> >>
> >> Fixes: ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
> >> Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
> >
> > Any comments about this patch?
> >
> > It's very trivial but fixes a very important regression on Exynos5420 boards
> > with display panel and Peach Pit and Pi have been broken since next-20150401.
> >
> > This [0] is the Peach Pit boot log with yesteday's linux-next for example.
> >
> > Best regards,
> > Javier
> >
> > [0]: http://arm-soc.lixom.net/bootlogs/next/next-20150415/pit-arm-exynos_defconfig.html
> >
> 
> It has been many weeks since this patch has been posted and linux-next
> is still broken:
> 
> http://arm-soc.lixom.net/bootlogs/next/next-20150429/pi-arm-exynos_defconfig.html
> 
> Could you please apply $subject to fix the imprecise external abort issue.
> 
Sure I'll in this weekend.

Thanks for your gentle reminder ;-)

- Kukjin
Kevin Hilman April 30, 2015, 3:43 p.m. UTC | #5
Kukjin Kim <kgene@kernel.org> writes:

> Javier Martinez Canillas wrote:
>> 
>> Hello Kukjin,
>> 
> Hi,
>
>> On 04/16/2015 09:40 AM, Javier Martinez Canillas wrote:
>> >
>> > On 04/12/2015 10:30 PM, Javier Martinez Canillas wrote:
>> >> Commit ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
>> >> added a device node for the Exynos5420 DISP1 power domain but dit not
>> >> make the DP controller a consumer of that power domain.
>> >>
>> >> This causes an "Unhandled fault: imprecise external abort" error if the
>> >> exynos-dp driver tries to access the DP controller registers and the PD
>> >> was turned off. This lead to a kernel panic and a complete system hang.
>> >>
>> >> Make the DP controller device node a consumer of the DISP1 power domain
>> >> to ensure that the PD is turned on when the exynos-dp driver is probed.
>> >>
>> >> Fixes: ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
>> >> Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
>> >
>> > Any comments about this patch?
>> >
>> > It's very trivial but fixes a very important regression on Exynos5420 boards
>> > with display panel and Peach Pit and Pi have been broken since next-20150401.
>> >
>> > This [0] is the Peach Pit boot log with yesteday's linux-next for example.
>> >
>> > Best regards,
>> > Javier
>> >
>> > [0]: http://arm-soc.lixom.net/bootlogs/next/next-20150415/pit-arm-exynos_defconfig.html
>> >
>> 
>> It has been many weeks since this patch has been posted and linux-next
>> is still broken:
>> 
>> http://arm-soc.lixom.net/bootlogs/next/next-20150429/pi-arm-exynos_defconfig.html
>> 
>> Could you please apply $subject to fix the imprecise external abort issue.
>> 
> Sure I'll in this weekend.
>
> Thanks for your gentle reminder ;-)

Tested-by: Kevin Hilman <khilman@linaro.org>

I confirm that this patch fixes the imprecise aborts (and sometimes
kernel panics) that I'm seeing on exynos5800-peach-pi with linux-next.

Kevin
Kevin Hilman May 4, 2015, 3:57 p.m. UTC | #6
Hi Kukjin,

On Wed, Apr 29, 2015 at 5:36 PM, Kukjin Kim <kgene@kernel.org> wrote:

[...]

>>
>> Could you please apply $subject to fix the imprecise external abort issue.
>>
> Sure I'll in this weekend.

This patch is still not in linux-next.

Also I think this fix is needed as a fix for mainline v4.1-rc as well,
where the same is happening.

Krzysztof has generously offered to help collecting/queuing/submitting
patches to help improve the maintenance of exynos.  Please work
closely with him share the responsibility of improving the state of
mainline exynos support.

Thanks,

Kevin
kgene@kernel.org May 8, 2015, 5:32 p.m. UTC | #7
On 04/13/15 05:30, Javier Martinez Canillas wrote:
> Commit ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
> added a device node for the Exynos5420 DISP1 power domain but dit not
> make the DP controller a consumer of that power domain.
> 
> This causes an "Unhandled fault: imprecise external abort" error if the
> exynos-dp driver tries to access the DP controller registers and the PD
> was turned off. This lead to a kernel panic and a complete system hang.
> 
> Make the DP controller device node a consumer of the DISP1 power domain
> to ensure that the PD is turned on when the exynos-dp driver is probed.
> 
> Fixes: ea08de16eb1b ("ARM: dts: Add DISP1 power domain for exynos5420")
> Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
> ---
> 
> Hello,
> 
> This latent bug was not exposed before since drivers for other devices
> marked as DISP1 power domain consumers were probed before exynos-dp so
> the PD was already on which made possible to access the DP registers.
> 
> But "regulator: Defer lookup of supply to regulator_get" [0] that is in
> linux-next from a couple of days now, changed the order on which the
> drivers' probes succeed so the PD was disabled during exynos-dp probe.
> 
> Exynos5420 machines with a display such as the Exynos5420 Peach Pit and
> Exynos5800 Peach Pi were failing to boot due this issue, i.e: [1].
> 
> Olof,
> 
> Could you please confirm $subject fixes the issue catched by your farm?
> 
> Krzysztof,
> 
> This patch conflicts with your Exynos5 phandle notation cleanup [2] but
> I preferred to send it on top of linux-next instead of making your series
> a dependency since it fixes a very important bug that had caused -next to
> be broken on these matchines for days now.
> 
> Thanks a lot and best regards,
> Javier
> 
> [0]: https://lkml.org/lkml/2015/3/24/1167
> [1]: http://arm-soc.lixom.net/bootlogs/next/next-20150409/pi-arm-exynos_defconfig.html
> [2]: https://lkml.org/lkml/2015/4/12/49
> 
>  arch/arm/boot/dts/exynos5420.dtsi | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
> index f67b23f303c3..45317538bbae 100644
> --- a/arch/arm/boot/dts/exynos5420.dtsi
> +++ b/arch/arm/boot/dts/exynos5420.dtsi
> @@ -536,6 +536,7 @@
>  		clock-names = "dp";
>  		phys = <&dp_phy>;
>  		phy-names = "dp";
> +		power-domains = <&disp_pd>;
>  	};
>  
>  	mipi_phy: video-phy@10040714 {

Sorry for the late response. I've applied in -fixes and will be sent to
arm-soc soon. Thanks.

- Kukjin
diff mbox

Patch

diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index f67b23f303c3..45317538bbae 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -536,6 +536,7 @@ 
 		clock-names = "dp";
 		phys = <&dp_phy>;
 		phy-names = "dp";
+		power-domains = <&disp_pd>;
 	};
 
 	mipi_phy: video-phy@10040714 {