[GIT PULL] drm/tegra: Changes for v4.17-rc1
Marcel Ziswiler
marcel.ziswiler at toradex.com
Mon Mar 19 14:32:08 UTC 2018
Hi Thierry
On Mon, 2018-03-19 at 10:59 +0100, Thierry Reding wrote:
> Hi Dave,
>
> The following changes since commit
> 7928b2cbe55b2a410a0f5c1f154610059c57b1b2:
>
> Linux 4.16-rc1 (2018-02-11 15:04:29 -0800)
>
> are available in the Git repository at:
>
> git://anongit.freedesktop.org/tegra/linux tags/drm/tegra/for-4.17-
> rc1
>
> for you to fetch changes up to
> 27e92f1f1600c214bf649daddb9b88b68330a8d1:
>
> drm/tegra: prime: Implement ->{begin,end}_cpu_access() (2018-03-17
> 00:04:20 +0100)
>
> Apologies for the delay. I originally wanted to send this out on
> Friday
> but then ran into a pair of bugs that I thought might be caused by
> this
> branch. Turns out that they were both already broken in v4.16-rc1 and
> I
> just hadn't tested for the corner case, so I caught them only very
> late
> in the release cycle.
>
> Anyway, the fixes for that are on the drm/tegra/fixes branch for
> which
> I sent an updated pull request earlier. The stuff here's fairly
> trivial
> and incremental improvements.
Both linux-next as of Friday and today as well as your
tags/drm/tegra/for-4.17-rc1 fail for me on TK1 as follows:
[ 3.609146] +V1.05_AVDD_HDMI_PLL: supplied by +V1.05
[ 3.614294] +V3.3_AVDD_HDMI: supplied by +V1.05
[ 3.622078] ------------[ cut here ]------------
[ 3.626719] WARNING: CPU: 2 PID: 87 at
/run/media/zim/Build/Sources/linux-
tegra.git/drivers/gpu/drm/drm_fourcc.c:204 drm_format_info+0x48/0x50
[ 3.639588] Modules linked in:
[ 3.642673] CPU: 2 PID: 87 Comm: kworker/2:1 Not tainted 4.16.0-rc1
#2
[ 3.649213] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[ 3.655495] Workqueue: events deferred_probe_work_func
[ 3.660672] [<c01117e4>] (unwind_backtrace) from [<c010c9fc>]
(show_stack+0x10/0x14)
[ 3.668430] [<c010c9fc>] (show_stack) from [<c09d39d8>]
(dump_stack+0x8c/0xa0)
[ 3.675684] [<c09d39d8>] (dump_stack) from [<c0122b50>]
(__warn+0xe0/0xf8)
[ 3.682587] [<c0122b50>] (__warn) from [<c0122c80>]
(warn_slowpath_null+0x40/0x48)
[ 3.690189] [<c0122c80>] (warn_slowpath_null) from [<c0505438>]
(drm_format_info+0x48/0x50)
[ 3.698551] [<c0505438>] (drm_format_info) from [<c0529fd0>]
(tegra_plane_format_mod_supported+0x14/0x30)
[ 3.708150] [<c0529fd0>] (tegra_plane_format_mod_supported) from
[<c05186cc>] (drm_universal_plane_init+0x2ec/0x59c)
[ 3.718703] [<c05186cc>] (drm_universal_plane_init) from
[<c052c36c>] (tegra_dc_init+0x1b8/0x510)
[ 3.727611] [<c052c36c>] (tegra_dc_init) from [<c04d8b5c>]
(host1x_device_init+0x44/0xd0)
[ 3.735821] [<c04d8b5c>] (host1x_device_init) from [<c0523ef4>]
(tegra_drm_load+0x228/0x308)
[ 3.744291] [<c0523ef4>] (tegra_drm_load) from [<c0501024>]
(drm_dev_register+0x138/0x1d0)
[ 3.752588] [<c0501024>] (drm_dev_register) from [<c0523a30>]
(host1x_drm_probe+0x34/0x58)
[ 3.760883] [<c0523a30>] (host1x_drm_probe) from [<c05570f8>]
(driver_probe_device+0x254/0x32c)
[ 3.769612] [<c05570f8>] (driver_probe_device) from [<c0555578>]
(bus_for_each_drv+0x58/0xb8)
[ 3.778145] [<c0555578>] (bus_for_each_drv) from [<c0556dc0>]
(__device_attach+0xd0/0x138)
[ 3.786436] [<c0556dc0>] (__device_attach) from [<c05562f4>]
(bus_probe_device+0x84/0x8c)
[ 3.794645] [<c05562f4>] (bus_probe_device) from [<c05545cc>]
(device_add+0x3b4/0x5b8)
[ 3.802599] [<c05545cc>] (device_add) from [<c04d908c>]
(host1x_subdev_register+0xac/0xd4)
[ 3.810897] [<c04d908c>] (host1x_subdev_register) from [<c04d958c>]
(host1x_client_register+0x108/0x128)
[ 3.820412] [<c04d958c>] (host1x_client_register) from [<c05380d0>]
(tegra_hdmi_probe+0x1e4/0x2d0)
[ 3.829406] [<c05380d0>] (tegra_hdmi_probe) from [<c0558d00>]
(platform_drv_probe+0x50/0xac)
[ 3.837855] [<c0558d00>] (platform_drv_probe) from [<c05570f8>]
(driver_probe_device+0x254/0x32c)
[ 3.846756] [<c05570f8>] (driver_probe_device) from [<c0555578>]
(bus_for_each_drv+0x58/0xb8)
[ 3.855309] [<c0555578>] (bus_for_each_drv) from [<c0556dc0>]
(__device_attach+0xd0/0x138)
[ 3.863603] [<c0556dc0>] (__device_attach) from [<c05562f4>]
(bus_probe_device+0x84/0x8c)
[ 3.871809] [<c05562f4>] (bus_probe_device) from [<c0556780>]
(deferred_probe_work_func+0x4c/0x148)
[ 3.880885] [<c0556780>] (deferred_probe_work_func) from
[<c013c6e0>] (process_one_work+0x1ec/0x55c)
[ 3.890047] [<c013c6e0>] (process_one_work) from [<c013d830>]
(worker_thread+0x29c/0x598)
[ 3.898237] [<c013d830>] (worker_thread) from [<c0142414>]
(kthread+0x14c/0x154)
[ 3.905662] [<c0142414>] (kthread) from [<c01010e8>]
(ret_from_fork+0x14/0x2c)
[ 3.912901] Exception stack(0xee2b1fb0 to 0xee2b1ff8)
[ 3.917958] 1fa0: 00000000
00000000 00000000 00000000
[ 3.926153] 1fc0: 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000
[ 3.934348] 1fe0: 00000000 00000000 00000000 00000000 00000013
00000000
[ 3.941050] ---[ end trace f2913c9fb893aca6 ]---
...
[ 4.594476] Unable to handle kernel NULL pointer dereference at
virtual address 00000005
[ 4.602584] pgd = b237c3d6
[ 4.605293] [00000005] *pgd=00000000
[ 4.608895] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
[ 4.614209] Modules linked in:
[ 4.617274] CPU: 2 PID: 87 Comm: kworker/2:1 Tainted:
G W 4.16.0-rc1 #2
[ 4.625105] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[ 4.631376] Workqueue: events deferred_probe_work_func
[ 4.636525] PC is at tegra_plane_format_mod_supported+0x18/0x30
[ 4.642448] LR is at warn_slowpath_null+0x40/0x48
[ 4.647153] pc : [<c0529fd4>] lr : [<c0122c80>] psr: 20000113
[ 4.653419] sp : ee2b1be0 ip : 00000000 fp : 00000001
[ 4.658644] r10: 00000001 r9 : 00000008 r8 : c0e04c48
[ 4.663870] r7 : c0529fbc r6 : eda9bac4 r5 : 03000000 r4 :
00000010
[ 4.670396] r3 : 03000010 r2 : 00000200 r1 : c0ec2540 r0 :
00000000
[ 4.676925] Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA
ARM Segment none
[ 4.684060] Control: 10c5387d Table: 8000406a DAC: 00000051
[ 4.689806] Process kworker/2:1 (pid: 87, stack limit = 0x62aacce7)
[ 4.696072] Stack: (0xee2b1be0 to 0xee2b2000)
...
[ 4.970477] [<c0529fd4>] (tegra_plane_format_mod_supported) from
[<c05186cc>] (drm_universal_plane_init+0x2ec/0x59c)
[ 4.981009] [<c05186cc>] (drm_universal_plane_init) from
[<c052c36c>] (tegra_dc_init+0x1b8/0x510)
[ 4.989891] [<c052c36c>] (tegra_dc_init) from [<c04d8b5c>]
(host1x_device_init+0x44/0xd0)
[ 4.998076] [<c04d8b5c>] (host1x_device_init) from [<c0523ef4>]
(tegra_drm_load+0x228/0x308)
[ 5.006523] [<c0523ef4>] (tegra_drm_load) from [<c0501024>]
(drm_dev_register+0x138/0x1d0)
[ 5.014795] [<c0501024>] (drm_dev_register) from [<c0523a30>]
(host1x_drm_probe+0x34/0x58)
[ 5.023067] [<c0523a30>] (host1x_drm_probe) from [<c05570f8>]
(driver_probe_device+0x254/0x32c)
[ 5.031773] [<c05570f8>] (driver_probe_device) from [<c0555578>]
(bus_for_each_drv+0x58/0xb8)
[ 5.040303] [<c0555578>] (bus_for_each_drv) from [<c0556dc0>]
(__device_attach+0xd0/0x138)
[ 5.048572] [<c0556dc0>] (__device_attach) from [<c05562f4>]
(bus_probe_device+0x84/0x8c)
[ 5.056761] [<c05562f4>] (bus_probe_device) from [<c05545cc>]
(device_add+0x3b4/0x5b8)
[ 5.064688] [<c05545cc>] (device_add) from [<c04d908c>]
(host1x_subdev_register+0xac/0xd4)
[ 5.072962] [<c04d908c>] (host1x_subdev_register) from [<c04d958c>]
(host1x_client_register+0x108/0x128)
[ 5.082450] [<c04d958c>] (host1x_client_register) from [<c05380d0>]
(tegra_hdmi_probe+0x1e4/0x2d0)
[ 5.091418] [<c05380d0>] (tegra_hdmi_probe) from [<c0558d00>]
(platform_drv_probe+0x50/0xac)
[ 5.099862] [<c0558d00>] (platform_drv_probe) from [<c05570f8>]
(driver_probe_device+0x254/0x32c)
[ 5.108739] [<c05570f8>] (driver_probe_device) from [<c0555578>]
(bus_for_each_drv+0x58/0xb8)
[ 5.117268] [<c0555578>] (bus_for_each_drv) from [<c0556dc0>]
(__device_attach+0xd0/0x138)
[ 5.125537] [<c0556dc0>] (__device_attach) from [<c05562f4>]
(bus_probe_device+0x84/0x8c)
[ 5.133720] [<c05562f4>] (bus_probe_device) from [<c0556780>]
(deferred_probe_work_func+0x4c/0x148)
[ 5.142774] [<c0556780>] (deferred_probe_work_func) from
[<c013c6e0>] (process_one_work+0x1ec/0x55c)
[ 5.151913] [<c013c6e0>] (process_one_work) from [<c013d830>]
(worker_thread+0x29c/0x598)
[ 5.160100] [<c013d830>] (worker_thread) from [<c0142414>]
(kthread+0x14c/0x154)
[ 5.167504] [<c0142414>] (kthread) from [<c01010e8>]
(ret_from_fork+0x14/0x2c)
[ 5.174727] Exception stack(0xee2b1fb0 to 0xee2b1ff8)
[ 5.179784] 1fa0: 00000000
00000000 00000000 00000000
[ 5.187965] 1fc0: 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000
[ 5.196147] 1fe0: 00000000 00000000 00000000 00000000 00000013
00000000
[ 5.202768] Code: e1a04002 e1a05003 ebff6d07 e1943005 (15d00005)
[ 5.208926] ---[ end trace f2913c9fb893aca9 ]---
Is this something your drm/tegra/fixes address or do you know what
might be the issue?
> Thanks,
> Thierry
Cheers
Marcel
> ----------------------------------------------------------------
> drm/tegra: Changes for v4.17-rc1
>
> This fixes mmap() for fbdev devices by providing a custom
> implementation
> based on the KMS variant. This is a fairly exotic case these days,
> hence
> why it is not flagged for stable.
>
> There is also support for dedicating one of the overlay planes to
> serve
> as a hardware cursor on older Tegra that did support hardware cursors
> but not RGBA formats for it.
>
> Planes will now also export the IN_FORMATS property by supporting the
> various block-linear tiling modifiers for RGBA pixel formats.
>
> Other than that, there's a bit of cleanup of DMA API abuse, use of
> the
> private object infrastructure for global state (rather than
> subclassing
> atomic state objects) and an implementation of
> ->{begin,end}_cpu_access
> callbacks for PRIME exported buffers, which allow users to perform
> cache
> maintenance on these buffers.
>
> ----------------------------------------------------------------
> Dmitry Osipenko (2):
> drm/tegra: plane: Make tegra_plane_get_overlap_index() static
> drm/tegra: dc: Dedicate overlay plane to cursor on older
> Tegra's
>
> Thierry Reding (8):
> drm/tegra: gem: Reshuffle declarations
> drm/tegra: gem: Make __tegra_gem_mmap() available more widely
> drm/tegra: fb: Implement ->fb_mmap() callback
> drm/tegra: plane: Support format modifiers
> drm/tegra: fb: Properly support linear modifier
> drm/tegra: hub: Use private object for global state
> drm/tegra: gem: Map pages via the DMA API
> drm/tegra: prime: Implement ->{begin,end}_cpu_access()
>
> drivers/gpu/drm/tegra/dc.c | 82 ++++++++++++++++-----------
> drivers/gpu/drm/tegra/dc.h | 1 +
> drivers/gpu/drm/tegra/drm.c | 36 ++----------
> drivers/gpu/drm/tegra/drm.h | 14 -----
> drivers/gpu/drm/tegra/fb.c | 25 ++++++++-
> drivers/gpu/drm/tegra/gem.c | 69 ++++++++++++++++-------
> drivers/gpu/drm/tegra/gem.h | 5 +-
> drivers/gpu/drm/tegra/hub.c | 125
> +++++++++++++++++++++++++++++++++++++++---
> drivers/gpu/drm/tegra/hub.h | 17 ++++++
> drivers/gpu/drm/tegra/plane.c | 20 ++++++-
> 10 files changed, 280 insertions(+), 114 deletions(-)
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
More information about the dri-devel
mailing list