All of lore.kernel.org
 help / color / mirror / Atom feed
* drm: mxsfb: Kernel panic on 4.10.0-rc5
@ 2017-01-27 16:04 Breno Matheus Lima
  2017-01-27 20:40 ` Marek Vasut
  0 siblings, 1 reply; 5+ messages in thread
From: Breno Matheus Lima @ 2017-01-27 16:04 UTC (permalink / raw)
  To: marex, airlied; +Cc: Breno Matheus Lima, fabio.estevam, dri-devel


[-- Attachment #1.1: Type: text/plain, Size: 6447 bytes --]

Hi,

I'm trying to use kernel 4.10.0-rc5 and DRM_MXS driver on a i.MX6SX SabreSD
Rev A, but it crashes during the boot, I'm also disabling the FB_MXS driver
to avoid any conflict. By using the driver FB_MXS the board boots normally
and the display is working as well.

I would like to know if is possible to use the DRM_MXS driver with the
deprecated bindings as according to the documentation located at
Documentation/devicetree/bindings/display/mxsfb.txt, or if is just possible
to
use the DRM driver with the new bindings.

Please find below the log:

[    1.076530] [drm] Initialized
[    1.086305] etnaviv gpu-subsystem: bound 1800000.gpu (ops gpu_ops)
[    1.092590] etnaviv-gpu 1800000.gpu: model: GC400, revision: 4645
[    1.098703] etnaviv-gpu 1800000.gpu: Need to move linear window on
MC1.0, disabling TS
[    1.154691] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    1.161425] [drm] No driver support for vblank timestamp query.
[    1.167799] OF: graph: no port node found in /soc/aips-bus@02200000
/spba-bus@02200000/lcdif@02220000
[    1.177132] Unable to handle kernel NULL pointer dereference at virtual
address 00000004
[    1.185298] pgd = c0004000
[    1.188014] [00000004] *pgd=00000000
[    1.191640] Internal error: Oops: 5 [#1] SMP ARM
[    1.196265] Modules linked in:
[    1.199333] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.10.0-rc5 #30
[    1.205691] Hardware name: Freescale i.MX6 SoloX (Device Tree)
[    1.211529] task: ef060000 task.stack: ef05e000
[    1.216072] PC is at drm_panel_attach+0xc/0x2c
[    1.220526] LR is at mxsfb_probe+0x214/0x3f0
[    1.224803] pc : [<c0501800>]    lr : [<c0513800>]    psr: 60000013
[    1.224803] sp : ef05fda0  ip : ef05fdb0  fp : ef05fdac
[    1.236286] r10: c0d00618  r9 : ef037698  r8 : ef152800
[    1.241516] r7 : ef152810  r6 : ef037010  r5 : ef36c800  r4 : 00000000
[    1.248048] r3 : ef037698  r2 : 00000082  r1 : ef037698  r0 : 00000000
[    1.254581] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment
none
[    1.261721] Control: 10c5387d  Table: 8000404a  DAC: 00000051
[    1.267471] Process swapper/0 (pid: 1, stack limit = 0xef05e210)
[    1.273482] Stack: (0xef05fda0 to 0xef060000)
[    1.277851] fda0: ef05fddc ef05fdb0 c0513800 c0501800 00000002 ef037698
ef152810 ef152810
[    1.286037] fdc0: c0e3aab8 fffffdfb 00000000 00000000 ef05fdfc ef05fde0
c05280f8 c05135f8
[    1.294223] fde0: ef152810 c16637d8 00000000 c0e3aab8 ef05fe24 ef05fe00
c0526424 c05280b0
[    1.302409] fe00: ef152810 c0e3aab8 ef152844 00000000 00000000 c0d5f858
ef05fe44 ef05fe28
[    1.310594] fe20: c05265c0 c0526228 00000000 c0e3aab8 c05264f8 00000000
ef05fe6c ef05fe48
[    1.318780] fe40: c05246d4 c0526504 ef00aaa4 ef1338d0 ef00aad4 c0e3aab8
ef38b580 c0e3b5a0
[    1.326965] fe60: ef05fe7c ef05fe70 c0525ddc c052466c ef05fea4 ef05fe80
c0525988 c0525dc8
[    1.335151] fe80: c0c4c764 ef05fe90 c0e3aab8 c0d45548 c0d5f850 c0cf285c
ef05febc ef05fea8
[    1.343336] fea0: c0526f4c c0525804 ffffe000 c0d45548 ef05fecc ef05fec0
c052804c c0526ed8
[    1.351522] fec0: ef05fedc ef05fed0 c0d45560 c0528020 ef05ff4c ef05fee0
c0101934 c0d45554
[    1.359708] fee0: c0146c20 c0408180 efffcb00 c0a21f04 ef05ff4c ef05ff00
c0146f14 c0d00624
[    1.367893] ff00: 00000000 00000000 00000006 00000006 00000000 c0cf285c
c0c6d1cc 00000000
[    1.376079] ff20: c0e1932c 00000006 c0e79000 c0d71840 c0e79000 c0d5f850
c0cf285c 000000ed
[    1.384264] ff40: ef05ff94 ef05ff50 c0d00e74 c01018fc 00000006 00000006
00000000 c0d00618
[    1.392449] ff60: ca42e624 00000007 c098078c 00000000 c098078c 00000000
00000000 00000000
[    1.400635] ff80: 00000000 00000000 ef05ffac ef05ff98 c098079c c0d00d58
00000000 c098078c
[    1.408821] ffa0: 00000000 ef05ffb0 c0107df0 c0980798 00000000 00000000
00000000 00000000
[    1.417005] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000
[    1.425191] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
f1519808 97c10985
[    1.433369] Backtrace:
[    1.435832] [<c05017f4>] (drm_panel_attach) from [<c0513800>]
(mxsfb_probe+0x214/0x3f0)
[    1.443848] [<c05135ec>] (mxsfb_probe) from [<c05280f8>]
(platform_drv_probe+0x54/0xb8)
[    1.451861]  r9:00000000 r8:00000000 r7:fffffdfb r6:c0e3aab8 r5:ef152810
r4:ef152810
[    1.459620] [<c05280a4>] (platform_drv_probe) from [<c0526424>]
(driver_probe_device+0x208/0x2dc)
[    1.468498]  r7:c0e3aab8 r6:00000000 r5:c16637d8 r4:ef152810
[    1.474170] [<c052621c>] (driver_probe_device) from [<c05265c0>]
(__driver_attach+0xc8/0xcc)
[    1.482616]  r9:c0d5f858 r8:00000000 r7:00000000 r6:ef152844 r5:c0e3aab8
r4:ef152810
[    1.490371] [<c05264f8>] (__driver_attach) from [<c05246d4>]
(bus_for_each_dev+0x74/0xa8)
[    1.498554]  r7:00000000 r6:c05264f8 r5:c0e3aab8 r4:00000000
[    1.504225] [<c0524660>] (bus_for_each_dev) from [<c0525ddc>]
(driver_attach+0x20/0x28)
[    1.512234]  r6:c0e3b5a0 r5:ef38b580 r4:c0e3aab8
[    1.516862] [<c0525dbc>] (driver_attach) from [<c0525988>]
(bus_add_driver+0x190/0x218)
[    1.524877] [<c05257f8>] (bus_add_driver) from [<c0526f4c>]
(driver_register+0x80/0x100)
[    1.532974]  r7:c0cf285c r6:c0d5f850 r5:c0d45548 r4:c0e3aab8
[    1.538643] [<c0526ecc>] (driver_register) from [<c052804c>]
(__platform_driver_register+0x38/0x4c)
[    1.547693]  r5:c0d45548 r4:ffffe000
[    1.551285] [<c0528014>] (__platform_driver_register) from [<c0d45560>]
(mxsfb_platform_driver_init+0x18/0x20)
[    1.561298] [<c0d45548>] (mxsfb_platform_driver_init) from [<c0101934>]
(do_one_initcall+0x44/0x17c)
[    1.570442] [<c01018f0>] (do_one_initcall) from [<c0d00e74>]
(kernel_init_freeable+0x128/0x1ec)
[    1.579148]  r8:000000ed r7:c0cf285c r6:c0d5f850 r5:c0e79000 r4:c0d71840
[    1.585862] [<c0d00d4c>] (kernel_init_freeable) from [<c098079c>]
(kernel_init+0x10/0x11c)
[    1.594134]  r10:00000000 r9:00000000 r8:00000000 r7:00000000
r6:00000000 r5:c098078c
[    1.601967]  r4:00000000
[    1.604513] [<c098078c>] (kernel_init) from [<c0107df0>]
(ret_from_fork+0x14/0x24)
[    1.612087]  r5:c098078c r4:00000000
[    1.615672] Code: e89da800 e1a0c00d e92dd800 e24cb004 (e5903004)
[    1.621859] ---[ end trace 862e67af8f858054 ]---
[    1.626598] Kernel panic - not syncing: Attempted to kill init!
exitcode=0x0000000b
[    1.626598]
[    1.635754] ---[ end Kernel panic - not syncing: Attempted to kill init!
exitcode=0x0000000b
[    1.635754]
[    1.971026] random: fast init done

Thanks

Best Regards,
--
Breno Matheus Lima

[-- Attachment #1.2: Type: text/html, Size: 7139 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: drm: mxsfb: Kernel panic on 4.10.0-rc5
  2017-01-27 16:04 drm: mxsfb: Kernel panic on 4.10.0-rc5 Breno Matheus Lima
@ 2017-01-27 20:40 ` Marek Vasut
  2017-01-27 20:43   ` Marek Vasut
  0 siblings, 1 reply; 5+ messages in thread
From: Marek Vasut @ 2017-01-27 20:40 UTC (permalink / raw)
  To: Breno Matheus Lima, airlied; +Cc: Breno Matheus Lima, fabio.estevam, dri-devel

[-- Attachment #1: Type: text/plain, Size: 2096 bytes --]

On 01/27/2017 05:04 PM, Breno Matheus Lima wrote:
> Hi,

Hi,

> I'm trying to use kernel 4.10.0-rc5 and DRM_MXS driver on a i.MX6SX SabreSD
> Rev A, but it crashes during the boot, I'm also disabling the FB_MXS driver
> to avoid any conflict. By using the driver FB_MXS the board boots normally
> and the display is working as well.

OK

> I would like to know if is possible to use the DRM_MXS driver with the
> deprecated bindings as according to the documentation located at
> Documentation/devicetree/bindings/display/mxsfb.txt, or if is just possible
> to
> use the DRM driver with the new bindings.

No, the deprecated bindings are deprecated and DO NOT WORK with this
driver. Use the new of-graph stuff.

> Please find below the log:
> 
> [    1.076530] [drm] Initialized
> [    1.086305] etnaviv gpu-subsystem: bound 1800000.gpu (ops gpu_ops)
> [    1.092590] etnaviv-gpu 1800000.gpu: model: GC400, revision: 4645
> [    1.098703] etnaviv-gpu 1800000.gpu: Need to move linear window on
> MC1.0, disabling TS
> [    1.154691] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
> [    1.161425] [drm] No driver support for vblank timestamp query.
> [    1.167799] OF: graph: no port node found in /soc/aips-bus@02200000
> /spba-bus@02200000/lcdif@02220000
> [    1.177132] Unable to handle kernel NULL pointer dereference at virtual
> address 00000004

Try with this patch please:

diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c
b/drivers/gpu/drm/mxsfb/mxsfb_out.c
index fa8d17399407..b8e81422d4e2 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
@@ -112,6 +112,7 @@ static int mxsfb_attach_endpoint(struct drm_device *drm,

 int mxsfb_create_output(struct drm_device *drm)
 {
+       struct mxsfb_drm_private *mxsfb = drm->dev_private;
        struct device_node *ep_np = NULL;
        struct of_endpoint ep;
        int ret;
@@ -127,5 +128,8 @@ int mxsfb_create_output(struct drm_device *drm)
                }
        }

+       if (!mxsfb->panel)
+               return -EPROBE_DEFER;
+
        return 0;
 }

-- 
Best regards,
Marek Vasut

[-- Attachment #2: diff.diff --]
[-- Type: text/diff, Size: 602 bytes --]

diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c b/drivers/gpu/drm/mxsfb/mxsfb_out.c
index fa8d17399407..b8e81422d4e2 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
@@ -112,6 +112,7 @@ static int mxsfb_attach_endpoint(struct drm_device *drm,
 
 int mxsfb_create_output(struct drm_device *drm)
 {
+	struct mxsfb_drm_private *mxsfb = drm->dev_private;
 	struct device_node *ep_np = NULL;
 	struct of_endpoint ep;
 	int ret;
@@ -127,5 +128,8 @@ int mxsfb_create_output(struct drm_device *drm)
 		}
 	}
 
+	if (!mxsfb->panel)
+		return -EPROBE_DEFER;
+
 	return 0;
 }

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: drm: mxsfb: Kernel panic on 4.10.0-rc5
  2017-01-27 20:40 ` Marek Vasut
@ 2017-01-27 20:43   ` Marek Vasut
  2017-01-28 12:46     ` Breno Matheus Lima
  0 siblings, 1 reply; 5+ messages in thread
From: Marek Vasut @ 2017-01-27 20:43 UTC (permalink / raw)
  To: Breno Matheus Lima, airlied; +Cc: Breno Matheus Lima, fabio.estevam, dri-devel

On 01/27/2017 09:40 PM, Marek Vasut wrote:
> On 01/27/2017 05:04 PM, Breno Matheus Lima wrote:
>> Hi,
> 
> Hi,
> 
>> I'm trying to use kernel 4.10.0-rc5 and DRM_MXS driver on a i.MX6SX SabreSD
>> Rev A, but it crashes during the boot, I'm also disabling the FB_MXS driver
>> to avoid any conflict. By using the driver FB_MXS the board boots normally
>> and the display is working as well.
> 
> OK
> 
>> I would like to know if is possible to use the DRM_MXS driver with the
>> deprecated bindings as according to the documentation located at
>> Documentation/devicetree/bindings/display/mxsfb.txt, or if is just possible
>> to
>> use the DRM driver with the new bindings.
> 
> No, the deprecated bindings are deprecated and DO NOT WORK with this
> driver. Use the new of-graph stuff.
> 
>> Please find below the log:
>>
>> [    1.076530] [drm] Initialized
>> [    1.086305] etnaviv gpu-subsystem: bound 1800000.gpu (ops gpu_ops)
>> [    1.092590] etnaviv-gpu 1800000.gpu: model: GC400, revision: 4645
>> [    1.098703] etnaviv-gpu 1800000.gpu: Need to move linear window on
>> MC1.0, disabling TS
>> [    1.154691] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
>> [    1.161425] [drm] No driver support for vblank timestamp query.
>> [    1.167799] OF: graph: no port node found in /soc/aips-bus@02200000
>> /spba-bus@02200000/lcdif@02220000
>> [    1.177132] Unable to handle kernel NULL pointer dereference at virtual
>> address 00000004
> 
> Try with this patch please:
> 
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c
> b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> index fa8d17399407..b8e81422d4e2 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> @@ -112,6 +112,7 @@ static int mxsfb_attach_endpoint(struct drm_device *drm,
> 
>  int mxsfb_create_output(struct drm_device *drm)
>  {
> +       struct mxsfb_drm_private *mxsfb = drm->dev_private;
>         struct device_node *ep_np = NULL;
>         struct of_endpoint ep;
>         int ret;
> @@ -127,5 +128,8 @@ int mxsfb_create_output(struct drm_device *drm)
>                 }
>         }
> 
> +       if (!mxsfb->panel)
> +               return -EPROBE_DEFER;
> +
>         return 0;
>  }
> 
Rationale behind the patch:

IFF you use some odd bindings or your of-graph panel bindings are
missing from the DT , THEN the for_each_endpoint_of_node() body
is never executed, thus mxsfb->panel remains NULL and yet the
function returns 0/success . mxsfb_load() therefore doesn't detect
this failure and calls drm_panel_attach() with mxsfb->panel = NULL,
thus the crash.

-- 
Best regards,
Marek Vasut
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: drm: mxsfb: Kernel panic on 4.10.0-rc5
  2017-01-27 20:43   ` Marek Vasut
@ 2017-01-28 12:46     ` Breno Matheus Lima
  2017-01-28 16:19       ` Marek Vasut
  0 siblings, 1 reply; 5+ messages in thread
From: Breno Matheus Lima @ 2017-01-28 12:46 UTC (permalink / raw)
  To: Marek Vasut; +Cc: Breno Matheus Lima, fabio.estevam, dri-devel


[-- Attachment #1.1: Type: text/plain, Size: 2965 bytes --]

2017-01-27 18:43 GMT-02:00 Marek Vasut <marex@denx.de>:
>
> On 01/27/2017 09:40 PM, Marek Vasut wrote:
> > On 01/27/2017 05:04 PM, Breno Matheus Lima wrote:
> >> Hi,
> >
> > Hi,
> >
> >> I'm trying to use kernel 4.10.0-rc5 and DRM_MXS driver on a i.MX6SX
SabreSD
> >> Rev A, but it crashes during the boot, I'm also disabling the FB_MXS
driver
> >> to avoid any conflict. By using the driver FB_MXS the board boots
normally
> >> and the display is working as well.
> >
> > OK
> >
> >> I would like to know if is possible to use the DRM_MXS driver with the
> >> deprecated bindings as according to the documentation located at
> >> Documentation/devicetree/bindings/display/mxsfb.txt, or if is just
possible
> >> to
> >> use the DRM driver with the new bindings.
> >
> > No, the deprecated bindings are deprecated and DO NOT WORK with this
> > driver. Use the new of-graph stuff.
> >

Good to know

> >> Please find below the log:
> >>
> >> [    1.076530] [drm] Initialized
> >> [    1.086305] etnaviv gpu-subsystem: bound 1800000.gpu (ops gpu_ops)
> >> [    1.092590] etnaviv-gpu 1800000.gpu: model: GC400, revision: 4645
> >> [    1.098703] etnaviv-gpu 1800000.gpu: Need to move linear window on
> >> MC1.0, disabling TS
> >> [    1.154691] [drm] Supports vblank timestamp caching Rev 2
(21.10.2013).
> >> [    1.161425] [drm] No driver support for vblank timestamp query.
> >> [    1.167799] OF: graph: no port node found in /soc/aips-bus@02200000
> >> /spba-bus@02200000/lcdif@02220000
> >> [    1.177132] Unable to handle kernel NULL pointer dereference at
virtual
> >> address 00000004
> >
> > Try with this patch please:
> >
> > diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c
> > b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> > index fa8d17399407..b8e81422d4e2 100644
> > --- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
> > +++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
> > @@ -112,6 +112,7 @@ static int mxsfb_attach_endpoint(struct drm_device
*drm,
> >
> >  int mxsfb_create_output(struct drm_device *drm)
> >  {
> > +       struct mxsfb_drm_private *mxsfb = drm->dev_private;
> >         struct device_node *ep_np = NULL;
> >         struct of_endpoint ep;
> >         int ret;
> > @@ -127,5 +128,8 @@ int mxsfb_create_output(struct drm_device *drm)
> >                 }
> >         }
> >
> > +       if (!mxsfb->panel)
> > +               return -EPROBE_DEFER;
> > +
> >         return 0;
> >  }
> >
> Rationale behind the patch:
>
> IFF you use some odd bindings or your of-graph panel bindings are
> missing from the DT , THEN the for_each_endpoint_of_node() body
> is never executed, thus mxsfb->panel remains NULL and yet the
> function returns 0/success . mxsfb_load() therefore doesn't detect
> this failure and calls drm_panel_attach() with mxsfb->panel = NULL,
> thus the crash.
>

Thanks for the explanation, I'm going to try with this patch and figure out
how to implement it on imx6sx-sdb.dtsi.

> --
> Best regards,
> Marek Vasut

Best Regards,
Breno Matheus Lima

[-- Attachment #1.2: Type: text/html, Size: 3843 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: drm: mxsfb: Kernel panic on 4.10.0-rc5
  2017-01-28 12:46     ` Breno Matheus Lima
@ 2017-01-28 16:19       ` Marek Vasut
  0 siblings, 0 replies; 5+ messages in thread
From: Marek Vasut @ 2017-01-28 16:19 UTC (permalink / raw)
  To: Breno Matheus Lima; +Cc: Breno Matheus Lima, fabio.estevam, dri-devel

On 01/28/2017 01:46 PM, Breno Matheus Lima wrote:
> 2017-01-27 18:43 GMT-02:00 Marek Vasut <marex@denx.de>:
>>
>> On 01/27/2017 09:40 PM, Marek Vasut wrote:
>>> On 01/27/2017 05:04 PM, Breno Matheus Lima wrote:
>>>> Hi,
>>>
>>> Hi,
>>>
>>>> I'm trying to use kernel 4.10.0-rc5 and DRM_MXS driver on a i.MX6SX
> SabreSD
>>>> Rev A, but it crashes during the boot, I'm also disabling the FB_MXS
> driver
>>>> to avoid any conflict. By using the driver FB_MXS the board boots
> normally
>>>> and the display is working as well.
>>>
>>> OK
>>>
>>>> I would like to know if is possible to use the DRM_MXS driver with the
>>>> deprecated bindings as according to the documentation located at
>>>> Documentation/devicetree/bindings/display/mxsfb.txt, or if is just
> possible
>>>> to
>>>> use the DRM driver with the new bindings.
>>>
>>> No, the deprecated bindings are deprecated and DO NOT WORK with this
>>> driver. Use the new of-graph stuff.
>>>
> 
> Good to know
> 
>>>> Please find below the log:
>>>>
>>>> [    1.076530] [drm] Initialized
>>>> [    1.086305] etnaviv gpu-subsystem: bound 1800000.gpu (ops gpu_ops)
>>>> [    1.092590] etnaviv-gpu 1800000.gpu: model: GC400, revision: 4645
>>>> [    1.098703] etnaviv-gpu 1800000.gpu: Need to move linear window on
>>>> MC1.0, disabling TS
>>>> [    1.154691] [drm] Supports vblank timestamp caching Rev 2
> (21.10.2013).
>>>> [    1.161425] [drm] No driver support for vblank timestamp query.
>>>> [    1.167799] OF: graph: no port node found in /soc/aips-bus@02200000
>>>> /spba-bus@02200000/lcdif@02220000
>>>> [    1.177132] Unable to handle kernel NULL pointer dereference at
> virtual
>>>> address 00000004
>>>
>>> Try with this patch please:
>>>
>>> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_out.c
>>> b/drivers/gpu/drm/mxsfb/mxsfb_out.c
>>> index fa8d17399407..b8e81422d4e2 100644
>>> --- a/drivers/gpu/drm/mxsfb/mxsfb_out.c
>>> +++ b/drivers/gpu/drm/mxsfb/mxsfb_out.c
>>> @@ -112,6 +112,7 @@ static int mxsfb_attach_endpoint(struct drm_device
> *drm,
>>>
>>>  int mxsfb_create_output(struct drm_device *drm)
>>>  {
>>> +       struct mxsfb_drm_private *mxsfb = drm->dev_private;
>>>         struct device_node *ep_np = NULL;
>>>         struct of_endpoint ep;
>>>         int ret;
>>> @@ -127,5 +128,8 @@ int mxsfb_create_output(struct drm_device *drm)
>>>                 }
>>>         }
>>>
>>> +       if (!mxsfb->panel)
>>> +               return -EPROBE_DEFER;
>>> +
>>>         return 0;
>>>  }
>>>
>> Rationale behind the patch:
>>
>> IFF you use some odd bindings or your of-graph panel bindings are
>> missing from the DT , THEN the for_each_endpoint_of_node() body
>> is never executed, thus mxsfb->panel remains NULL and yet the
>> function returns 0/success . mxsfb_load() therefore doesn't detect
>> this failure and calls drm_panel_attach() with mxsfb->panel = NULL,
>> thus the crash.
>>
> 
> Thanks for the explanation, I'm going to try with this patch and figure out
> how to implement it on imx6sx-sdb.dtsi.

patch -Np1 -i file.patch

Then rebuild the kernel, boot, see if it still crashes.

-- 
Best regards,
Marek Vasut
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-01-28 16:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-27 16:04 drm: mxsfb: Kernel panic on 4.10.0-rc5 Breno Matheus Lima
2017-01-27 20:40 ` Marek Vasut
2017-01-27 20:43   ` Marek Vasut
2017-01-28 12:46     ` Breno Matheus Lima
2017-01-28 16:19       ` Marek Vasut

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.