- 20 Sep, 2021 1 commit
-
-
Rob Clark authored
Switch to the documented order dsi-host vs bridge probe. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
- 17 Sep, 2021 22 commits
-
-
Rob Clark authored
Fixes: [ 6.775705] usb 1-1: Manufacturer: Generic [ 6.825029] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000510 [ 6.825049] Mem abort info: [ 6.825053] ESR = 0x96000005 [ 6.825059] EC = 0x25: DABT (current EL), IL = 32 bits [ 6.825064] SET = 0, FnV = 0 [ 6.825068] EA = 0, S1PTW = 0 [ 6.825073] FSC = 0x05: level 1 translation fault [ 6.825078] Data abort info: [ 6.825083] ISV = 0, ISS = 0x00000005 [ 6.825087] CM = 0, WnR = 0 [ 6.825092] [0000000000000510] user address but active_mm is swapper [ 6.825120] Internal error: Oops: 96000005 [#1] PREEMPT SMP [ 6.825124] Modules linked in: [ 6.825128] CPU: 7 PID: 7 Comm: kworker/u16:0 Tainted: G W 5.14.0-rc3-debug+ #21 [ 6.825131] Hardware name: Google Lazor (rev1 - 2) with LTE (DT) [ 6.825134] Workqueue: events_unbound deferred_probe_work_func [ 6.825147] pstate: 60400009 (nZCv daif +PAN -UAO -TCO BTYPE=--) [ 6.825150] pc : ti_sn_bridge_enable+0xb0/0x7d4 [ 6.825157] lr : ti_sn_bridge_enable+0x58/0x7d4 [ 6.825160] sp : ffffffc01008b220 [ 6.825161] x29: ffffffc01008b220 x28: ffffff8088068900 x27: 0000000000000038 [ 6.825166] x26: ffffffd7fe1c9700 x25: 0000000000000028 x24: ffffffd7fda0aed8 [ 6.825170] x23: ffffffd7fd6d5c18 x22: ffffff8086aa2080 x21: ffffff8086aa0080 [ 6.825174] x20: ffffff8086aa0f90 x19: ffffff8086aa0168 x18: 0000000000004000 [ 6.825178] x17: 004800a501260460 x16: 0000000000000000 x15: 00000000000f423f [ 6.825182] x14: ffffff80852920d0 x13: ffffff81fef85580 x12: ffffffd7fdf43000 [ 6.825186] x11: 0000000000000001 x10: 0000000000001410 x9 : ffffffd7fd067e60 [ 6.825190] x8 : ffffff8086aa0f90 x7 : 0000000000000001 x6 : 0000000000000001 [ 6.825194] x5 : ffffffd7fd9a9876 x4 : 0000000000000000 x3 : 0000000000000004 [ 6.825198] x2 : 0000000000000018 x1 : 0000000000000010 x0 : 0000000000000000 [ 6.825202] Call trace: [ 6.825204] ti_sn_bridge_enable+0xb0/0x7d4 [ 6.825207] drm_atomic_bridge_chain_enable+0x88/0xac [ 6.825212] drm_atomic_helper_commit_modeset_enables+0x1ac/0x22c [ 6.825216] msm_atomic_commit_tail+0x1d0/0x3e4 [ 6.825219] commit_tail+0x80/0x108 [ 6.825223] drm_atomic_helper_commit+0x144/0x148 [ 6.825225] drm_atomic_commit+0x58/0x68 [ 6.825227] drm_client_modeset_commit_atomic+0x1a8/0x248 [ 6.825230] drm_client_modeset_commit_locked+0x5c/0x184 [ 6.825233] drm_client_modeset_commit+0x3c/0x64 [ 6.825235] __drm_fb_helper_restore_fbdev_mode_unlocked+0x9c/0xb0 [ 6.825239] drm_fb_helper_set_par+0x74/0x80 [ 6.825241] fbcon_init+0x368/0x404 [ 6.825246] visual_init+0xb8/0x10c [ 6.825248] do_bind_con_driver.isra.0+0x280/0x2c8 [ 6.825250] do_take_over_console+0x18c/0x1d4 [ 6.825253] do_fbcon_takeover+0x74/0xe0 [ 6.825255] fbcon_fb_registered+0xf0/0xf4 [ 6.825259] register_framebuffer+0x230/0x2c4 [ 6.825261] __drm_fb_helper_initial_config_and_unlock+0x3f4/0x4d4 [ 6.825264] drm_fb_helper_initial_config+0x48/0x60 [ 6.825268] msm_fbdev_init+0xc0/0xec [ 6.825271] msm_drm_bind+0x600/0x64c [ 6.825274] try_to_bring_up_master+0x88/0x1a0 [ 6.825277] __component_add+0xec/0x13c [ 6.825278] component_add+0x20/0x2c [ 6.825280] dsi_dev_attach+0x2c/0x38 [ 6.825284] dsi_host_attach+0xd0/0x128 [ 6.825285] mipi_dsi_attach+0x34/0x48 [ 6.825289] devm_mipi_dsi_attach+0x30/0x74 [ 6.825291] ti_sn_bridge_probe+0x2b8/0x2fc [ 6.825294] auxiliary_bus_probe+0x80/0x98 [ 6.825297] really_probe+0x184/0x2d4 [ 6.825299] __driver_probe_device+0xc8/0xe0 [ 6.825301] driver_probe_device+0x48/0xcc [ 6.825304] __device_attach_driver+0xb4/0xcc [ 6.825306] bus_for_each_drv+0xa4/0xcc [ 6.825309] __device_attach+0xd4/0x140 [ 6.825311] device_initial_probe+0x20/0x2c [ 6.825313] bus_probe_device+0x3c/0xa4 [ 6.825316] deferred_probe_work_func+0xc0/0xd8 [ 6.825319] process_one_work+0x2e4/0x480 [ 6.825324] process_scheduled_works+0x4c/0x50 [ 6.825326] worker_thread+0x1f8/0x288 [ 6.825329] kthread+0x114/0x124 [ 6.825332] ret_from_fork+0x10/0x18 [ 6.825336] Code: 1a80d021 b91f7261 f94f7a60 52800201 (b9451000) [ 6.825339] ---[ end trace 5b050456cdff8019 ]--- [ 6.828537] Kernel panic - not syncing: Oops: Fatal exception [ 6.828546] SMP: stopping secondary CPUs [ 6.828676] Kernel Offset: 0x17eca00000 from 0xffffffc010000000 [ 6.828678] PHYS_OFFSET: 0x80000000 [ 6.828679] CPU features: 0x1000c2c1,a3100e42 [ 6.828682] Memory Limit: none [ 7.244275] ---[ end Kernel panic - not syncing: Oops: Fatal exception ]---
-
In order to avoid any probe ordering issue, the best practice is to move the secondary MIPI-DSI device registration and attachment to the MIPI-DSI host at probe time. Let's do this. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
Let's switch to the new devm MIPI-DSI function to register and attach our secondary device. This also avoids leaking the device when we detach the bridge. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
In order to avoid any probe ordering issue, the best practice is to move the secondary MIPI-DSI device registration and attachment to the MIPI-DSI host at probe time. Let's do this. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
Let's switch to the new devm MIPI-DSI function to register and attach our secondary device. This also avoids leaking the device when we detach the bridge. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
In order to avoid any probe ordering issue, the best practice is to move the secondary MIPI-DSI device registration and attachment to the MIPI-DSI host at probe time. Let's do this. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
Let's switch to the new devm MIPI-DSI function to register and attach our secondary device. This also avoids leaking the device when we detach the bridge but don't remove its driver. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
Let's switch to the new devm MIPI-DSI function to register and attach our secondary device. This also avoids leaking the device on removal. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
In order to avoid any probe ordering issue, the best practice is to move the secondary MIPI-DSI device registration and attachment to the MIPI-DSI host at probe time. Let's do this. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
Let's switch to the new devm MIPI-DSI function to register and attach our secondary device. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
In order to avoid any probe ordering issue, the best practice is to move the secondary MIPI-DSI device registration and attachment to the MIPI-DSI host at probe time. Let's do this. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
Let's switch to the new devm MIPI-DSI function to register and attach our secondary device. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
In order to avoid any probe ordering issue, the best practice is to move the secondary MIPI-DSI device registration and attachment to the MIPI-DSI host at probe time. Let's do this. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
Let's switch to the new devm MIPI-DSI function to register and attach our secondary device. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
In order to avoid any probe ordering issue, the best practice is to move the secondary MIPI-DSI device registration and attachment to the MIPI-DSI host at probe time. Let's do this. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
Let's switch to the new devm MIPI-DSI function to register and attach our secondary device. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
In order to avoid any probe ordering issue, the best practice is to move the secondary MIPI-DSI device registration and attachment to the MIPI-DSI host at probe time. Let's do this. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
Let's switch to the new devm MIPI-DSI function to register and attach our secondary device. This also avoids leaking the device when we detach the bridge. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
MIPI-DSI devices need to call mipi_dsi_attach() when their probe is done to attach against their host. However, at removal or when an error occurs, that attachment needs to be undone through a call to mipi_dsi_detach(). Let's create a device-managed variant of the attachment function that will automatically detach the device at unbind. Reviewed-by:
Andrzej Hajda <a.hajda@samsung.com> Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
Devices that take their data through the MIPI-DSI bus but are controlled through a secondary bus like I2C have to register a secondary device on the MIPI-DSI bus through the mipi_dsi_device_register_full() function. At removal or when an error occurs, that device needs to be removed through a call to mipi_dsi_device_unregister(). Let's create a device-managed variant of the registration function that will automatically unregister the device at unbind. Reviewed-by:
Andrzej Hajda <a.hajda@samsung.com> Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
Interactions between bridges, panels, MIPI-DSI host and the component framework are not trivial and can lead to probing issues when implementing a display driver. Let's document the various cases we need too consider, and the solution to support all the cases. Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
The bridge documentation overview is quite packed already, and we'll add some more documentation that isn't part of an overview at all. Let's add some sections to the documentation to separate each bits. Reviewed-by:
Andrzej Hajda <a.hajda@samsung.com> Reviewed-by:
Sam Ravnborg <sam@ravnborg.org> Signed-off-by:
Maxime Ripard <maxime@cerno.tech>
-
- 04 Sep, 2021 1 commit
-
-
Rob Clark authored
These are mainly used internally in mesa, although I believe the display should be able to scan out the TILED3 format. Currently we define this modifier internally in mesa for use with modifier based allocation. But we can get rid of that hack if we define the modfiers properly. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
- 03 Sep, 2021 10 commits
-
-
Rob Clark authored
This consists of simply storing the most recent deadline, and adding an ioctl to retrieve the deadline. This can be used in conjunction with the SET_DEADLINE ioctl on a fence fd for testing. Ie. create various sw_sync fences, merge them into a fence-array, set deadline on the fence-array and confirm that it is propagated properly to each fence. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
The initial purpose is for igt tests, but this would also be useful for compositors that wait until close to vblank deadline to make decisions about which frame to show. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
As the finished fence is the one that is exposed to userspace, and therefore the one that other operations, like atomic update, would block on, we need to propagate the deadline from from the finished fence to the actual hw fence. v2: Split into drm_sched_fence_set_parent() (ckoenig) Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
For an atomic commit updating a single CRTC (ie. a pageflip) calculate the next vblank time, and inform the fence(s) of that deadline. v2: Comment typo fix (danvet) Signed-off-by:
Rob Clark <robdclark@chromium.org> Reviewed-by:
Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
Add a way to hint to the fence signaler of an upcoming deadline, such as vblank, which the fence waiter would prefer not to miss. This is to aid the fence signaler in making power management decisions, like boosting frequency as the deadline approaches and awareness of missing deadlines so that can be factored in to the frequency scaling. v2: Drop dma_fence::deadline and related logic to filter duplicate deadlines, to avoid increasing dma_fence size. The fence-context implementation will need similar logic to track deadlines of all the fences on the same timeline. [ckoenig] Signed-off-by:
Rob Clark <robdclark@chromium.org> Reviewed-by:
Christian König <christian.koenig@amd.com> Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
-
- 01 Sep, 2021 5 commits
-
-
Rob Clark authored
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
drm_atomic_helper_dirtyfb() will end up stalling for vblank on "video mode" type displays, which is pointless and unnecessary. Add an optional helper vfunc to determine if a plane is attached to a CRTC that actually needs dirtyfb, and skip over them. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
-
Rob Clark authored
-
- 31 Aug, 2021 1 commit
-
-
Add DP device node on sc7180. Signed-off-by:
Kuogee Hsieh <khsieh@codeaurora.org> Reviewed-by:
Bjorn Andersson <bjorn.andersson@linaro.org> Link: https://lore.kernel.org/r/1622758940-13485-1-git-send-email-khsieh@codeaurora.org Signed-off-by:
Bjorn Andersson <bjorn.andersson@linaro.org> (cherry picked from commit f1b7e897)
-