<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/gpu/drm/bridge/analogix, branch linux-4.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.17.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.17.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2018-03-14T11:24:50Z</updated>
<entry>
<title>drm/bridge: analogix_dp: Only wait for panel ACK on PSR entry</title>
<updated>2018-03-14T11:24:50Z</updated>
<author>
<name>zain wang</name>
<email>wzz@rock-chips.com</email>
</author>
<published>2018-03-09T22:22:57Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=ce31ddd5c40c0662ffb9957b868fbd58f6eac5b3'/>
<id>urn:sha1:ce31ddd5c40c0662ffb9957b868fbd58f6eac5b3</id>
<content type='text'>
We currently wait for the panel to mirror our intended PSR state
before continuing on both PSR enter and PSR exit. This is really
only important to do when we're entering PSR, since we want to
be sure the last frame we pushed is being served from the panel's
internal fb before shutting down the soc blocks (vop/analogix).

This patch changes the behavior such that we only wait for the
panel to complete the PSR transition when we're entering PSR, and
to skip verification when we're exiting.

Cc: Stéphane Marchesin &lt;marcheu@chromium.org&gt;
Cc: Sonny Rao &lt;sonnyrao@chromium.org&gt;
Signed-off-by: zain wang &lt;wzz@rock-chips.com&gt;
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: Thierry Escande &lt;thierry.escande@collabora.com&gt;
Signed-off-by: Enric Balletbo i Serra &lt;enric.balletbo@collabora.com&gt;
Tested-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Reviewed-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180309222327.18689-7-enric.balletbo@collabora.com
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: add fast link train for eDP</title>
<updated>2018-03-14T10:29:31Z</updated>
<author>
<name>zain wang</name>
<email>wzz@rock-chips.com</email>
</author>
<published>2018-03-09T22:22:56Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f9d5680596f2dac390918e6aec3e174db03633a3'/>
<id>urn:sha1:f9d5680596f2dac390918e6aec3e174db03633a3</id>
<content type='text'>
We would meet a short black screen when exit PSR with the full link
training, In this case, we should use fast link train instead of full
link training.

Signed-off-by: zain wang &lt;wzz@rock-chips.com&gt;
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: Thierry Escande &lt;thierry.escande@collabora.com&gt;
Signed-off-by: Enric Balletbo i Serra &lt;enric.balletbo@collabora.com&gt;
Tested-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Reviewed-by: Archit Taneja &lt;architt@codeaurora.org&gt;
[dropped header reordering]
Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180309222327.18689-6-enric.balletbo@collabora.com
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: Don't change psr while bridge is disabled</title>
<updated>2018-03-14T10:29:31Z</updated>
<author>
<name>zain wang</name>
<email>wzz@rock-chips.com</email>
</author>
<published>2018-03-09T22:22:54Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=243e398aab8dc0ba966dbcfef189b5a616e74a78'/>
<id>urn:sha1:243e398aab8dc0ba966dbcfef189b5a616e74a78</id>
<content type='text'>
There is a race between AUX CH bring-up and enabling bridge which will
cause link training to fail. To avoid hitting it, don't change psr state
while enabling the bridge.

Cc: Tomeu Vizoso &lt;tomeu.vizoso@collabora.com&gt;
Cc: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: zain wang &lt;wzz@rock-chips.com&gt;
Signed-off-by: Caesar Wang &lt;wxt@rock-chips.com&gt;
[seanpaul fixed up the commit message a bit and renamed *_supported to *_enabled]
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: Thierry Escande &lt;thierry.escande@collabora.com&gt;
Signed-off-by: Enric Balletbo i Serra &lt;enric.balletbo@collabora.com&gt;
Tested-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Reviewed-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180309222327.18689-4-enric.balletbo@collabora.com
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: detect Sink PSR state after configuring the PSR</title>
<updated>2018-03-14T10:29:30Z</updated>
<author>
<name>Yakir Yang</name>
<email>ykk@rock-chips.com</email>
</author>
<published>2018-03-09T22:22:52Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=1d38e421bebd6ca24283dd88c4416378ee89825e'/>
<id>urn:sha1:1d38e421bebd6ca24283dd88c4416378ee89825e</id>
<content type='text'>
Make sure the request PSR state takes effect in analogix_dp_send_psr_spd()
function, or print the sink PSR error state if we failed to apply the
requested PSR setting.

Cc: 征增 王 &lt;wzz@rock-chips.com&gt;
Cc: Stéphane Marchesin &lt;marcheu@chromium.org&gt;
Signed-off-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
[seanpaul changed timeout loop to a readx poll]
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: Thierry Escande &lt;thierry.escande@collabora.com&gt;
Signed-off-by: Enric Balletbo i Serra &lt;enric.balletbo@collabora.com&gt;
Tested-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Reviewed-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180309222327.18689-2-enric.balletbo@collabora.com
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: Don't create useless connectors</title>
<updated>2018-03-07T15:18:00Z</updated>
<author>
<name>Marek Szyprowski</name>
<email>m.szyprowski@samsung.com</email>
</author>
<published>2018-03-05T08:57:41Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2e9b3e74b4a184f657995cf28963f72531c7a420'/>
<id>urn:sha1:2e9b3e74b4a184f657995cf28963f72531c7a420</id>
<content type='text'>
If there is another bridge after analogix_dp, then the connector object
should not be created. This fixes following timeouts on Exynos5420-based
Chromebook2 Peach-PIT board during boot:

exynos-dp 145b0000.dp-controller: AUX CH cmd reply timeout!
exynos-dp 145b0000.dp-controller: AUX CH enable timeout!
exynos-dp 145b0000.dp-controller: AUX CH enable timeout!
exynos-dp 145b0000.dp-controller: AUX CH enable timeout!
exynos-dp 145b0000.dp-controller: AUX CH enable timeout!

Signed-off-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Tested-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Signed-off-by: Andrzej Hajda &lt;a.hajda@samsung.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180305085741.18896-4-m.szyprowski@samsung.com
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: Postpone enabling runtime power management</title>
<updated>2018-03-07T15:17:58Z</updated>
<author>
<name>Marek Szyprowski</name>
<email>m.szyprowski@samsung.com</email>
</author>
<published>2018-03-05T08:57:40Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f25c83581583eca9b1c1e6fd2914c7f8a1be22de'/>
<id>urn:sha1:f25c83581583eca9b1c1e6fd2914c7f8a1be22de</id>
<content type='text'>
Enabling runtime power management early in analogix_dp_bind() causes following
kernel NULL pointer dereference:

Unable to handle kernel NULL pointer dereference at virtual address 000007d8
pgd = 28ffa2e4
[000007d8] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 6 PID: 69 Comm: kworker/6:1 Not tainted 4.16.0-rc1-00062-ge25751974ba8 #3622
Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
Workqueue: events deferred_probe_work_func
PC is at analogix_dp_resume+0x8/0xc0
LR is at pm_generic_runtime_resume+0x2c/0x38
pc : [&lt;c0531b98&gt;]    lr : [&lt;c0543fec&gt;] psr: a0000113
sp : ee13fbd8  ip : 0000001a  fp : 00000001
r10: ee0eb080  r9 : c0552bd8  r8 : c0fb1d98
r7 : eebb1010  r6 : eeae9808  r5 : 00000000  r4 : d4850415
r3 : ee0ed010  r2 : b2d05e00  r1 : 00000000  r0 : 00000000
Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM Segment none
Control: 10c5387d  Table: 2000406a  DAC: 00000051
Process kworker/6:1 (pid: 69, stack limit = 0x913205b4)
Stack: (0xee13fbd8 to 0xee140000)
...
[&lt;c0531b98&gt;] (analogix_dp_resume) from [&lt;c0543fec&gt;] (pm_generic_runtime_resume+0x2c/0x38)
[&lt;c0543fec&gt;] (pm_generic_runtime_resume) from [&lt;c054ffb4&gt;] (__genpd_runtime_resume+0x2c/0x8c)
[&lt;c054ffb4&gt;] (__genpd_runtime_resume) from [&lt;c0552d24&gt;] (genpd_runtime_resume+0x14c/0x258)
[&lt;c0552d24&gt;] (genpd_runtime_resume) from [&lt;c0547798&gt;] (__rpm_callback+0x134/0x214)
[&lt;c0547798&gt;] (__rpm_callback) from [&lt;c0547898&gt;] (rpm_callback+0x20/0x80)
[&lt;c0547898&gt;] (rpm_callback) from [&lt;c0546ff4&gt;] (rpm_resume+0x3a0/0x734)
[&lt;c0546ff4&gt;] (rpm_resume) from [&lt;c05475ec&gt;] (__pm_runtime_resume+0x64/0x9c)
[&lt;c05475ec&gt;] (__pm_runtime_resume) from [&lt;c053b95c&gt;] (__device_attach+0x8c/0x134)
[&lt;c053b95c&gt;] (__device_attach) from [&lt;c053ad08&gt;] (bus_probe_device+0x88/0x90)
[&lt;c053ad08&gt;] (bus_probe_device) from [&lt;c05390d0&gt;] (device_add+0x3a8/0x580)
[&lt;c05390d0&gt;] (device_add) from [&lt;c06764c4&gt;] (i2c_register_adapter+0xd4/0x3ec)
[&lt;c06764c4&gt;] (i2c_register_adapter) from [&lt;c05321c8&gt;] (analogix_dp_bind+0x2a0/0x410)
[&lt;c05321c8&gt;] (analogix_dp_bind) from [&lt;c0528e90&gt;] (exynos_dp_bind+0x9c/0x12c)
[&lt;c0528e90&gt;] (exynos_dp_bind) from [&lt;c0535bc4&gt;] (component_bind_all+0xfc/0x258)
[&lt;c0535bc4&gt;] (component_bind_all) from [&lt;c0522ee8&gt;] (exynos_drm_bind+0x15c/0x28c)
[&lt;c0522ee8&gt;] (exynos_drm_bind) from [&lt;c0536378&gt;] (try_to_bring_up_master+0x1b8/0x29c)
[&lt;c0536378&gt;] (try_to_bring_up_master) from [&lt;c05364fc&gt;] (component_add+0xa0/0x170)
[&lt;c05364fc&gt;] (component_add) from [&lt;c0528fe4&gt;] (exynos_dp_probe+0x64/0xb8)
[&lt;c0528fe4&gt;] (exynos_dp_probe) from [&lt;c053debc&gt;] (platform_drv_probe+0x50/0xb0)
[&lt;c053debc&gt;] (platform_drv_probe) from [&lt;c053bd18&gt;] (driver_probe_device+0x2b8/0x4a0)
[&lt;c053bd18&gt;] (driver_probe_device) from [&lt;c0539e4c&gt;] (bus_for_each_drv+0x44/0x8c)
[&lt;c0539e4c&gt;] (bus_for_each_drv) from [&lt;c053b970&gt;] (__device_attach+0xa0/0x134)
[&lt;c053b970&gt;] (__device_attach) from [&lt;c053ad08&gt;] (bus_probe_device+0x88/0x90)
[&lt;c053ad08&gt;] (bus_probe_device) from [&lt;c053b258&gt;] (deferred_probe_work_func+0x3c/0x168)
[&lt;c053b258&gt;] (deferred_probe_work_func) from [&lt;c014352c&gt;] (process_one_work+0x1d0/0x7bc)
[&lt;c014352c&gt;] (process_one_work) from [&lt;c0143b84&gt;] (worker_thread+0x34/0x4dc)
[&lt;c0143b84&gt;] (worker_thread) from [&lt;c014a30c&gt;] (kthread+0x128/0x164)
[&lt;c014a30c&gt;] (kthread) from [&lt;c01010b4&gt;] (ret_from_fork+0x14/0x20)
Exception stack(0xee13ffb0 to 0xee13fff8)
ffa0:                                     00000000 00000000 00000000 00000000
ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
Code: e2800e37 eafee601 e92d4070 e1a05000 (e59067d8)
---[ end trace bf6046013df7cab2 ]---

This oops happens, because analogix_dp_bind() calls drm_dp_aux_register()
which registers i2c adapter. I2C core tries to runtime get i2c host
device during registration. This ends in analogix_dp_resume(), but dp
context is NULL there. dp context is set in exynos_dp_bind() after
executing analogix_dp_bind(). Fix this issue by postponing enabling runtime
power management after drm_dp_aux_register().

Signed-off-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Tested-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Reviewed-by: Heiko Stuebner &lt;heiko@sntech.de&gt;

Signed-off-by: Andrzej Hajda &lt;a.hajda@samsung.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180305085741.18896-3-m.szyprowski@samsung.com
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: Don't power bridge in analogix_dp_bind</title>
<updated>2018-03-07T15:17:56Z</updated>
<author>
<name>zain wang</name>
<email>wzz@rock-chips.com</email>
</author>
<published>2018-03-05T08:57:39Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=ea2a14da0f191e93c0924acb4ab8a9009e33de81'/>
<id>urn:sha1:ea2a14da0f191e93c0924acb4ab8a9009e33de81</id>
<content type='text'>
The bridge does not need to be powered in analogix_dp_bind(), so
remove the calls to pm_runtime_get()/phy_power_on()/analogix_dp_init_dp()
as well as their power-off counterparts.

Cc: Stéphane Marchesin &lt;marcheu@chromium.org&gt;
Signed-off-by: zain wang &lt;wzz@rock-chips.com&gt;
Signed-off-by: Caesar Wang &lt;wxt@rock-chips.com&gt;
[the patch originally just removed the power_on portion, seanpaul removed
the power off code as well as improved the commit message]
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: Thierry Escande &lt;thierry.escande@collabora.com&gt;
Signed-off-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Tested-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Reviewed-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Signed-off-by: Andrzej Hajda &lt;a.hajda@samsung.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180305085741.18896-2-m.szyprowski@samsung.com
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: Fix connector and encoder cleanup</title>
<updated>2018-03-01T14:50:50Z</updated>
<author>
<name>Jeffy Chen</name>
<email>jeffy.chen@rock-chips.com</email>
</author>
<published>2018-01-10T16:23:42Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=7fe201cd55bb3527c4b7152fc099a3c5fb9054c3'/>
<id>urn:sha1:7fe201cd55bb3527c4b7152fc099a3c5fb9054c3</id>
<content type='text'>
Since we are initing connector in the core driver and encoder in the
plat driver, let's clean them up in the right places.

Signed-off-by: Jeffy Chen &lt;jeffy.chen@rock-chips.com&gt;
Signed-off-by: Thierry Escande &lt;thierry.escande@collabora.com&gt;
Reviewed-by: Andrzej Hajda &lt;a.hajda@samsung.com&gt;
Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180110162348.22765-3-thierry.escande@collabora.com
</content>
</entry>
<entry>
<title>drm/bridge: analogix: Do not use device's drvdata</title>
<updated>2018-03-01T14:43:26Z</updated>
<author>
<name>Jeffy Chen</name>
<email>jeffy.chen@rock-chips.com</email>
</author>
<published>2018-01-10T16:23:41Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=6b2d8fd98d051f8697c45f96249dca73842a2362'/>
<id>urn:sha1:6b2d8fd98d051f8697c45f96249dca73842a2362</id>
<content type='text'>
The driver that instantiates the bridge should own the drvdata, as all
driver model callbacks (probe, remove, shutdown, PM ops, etc.) are also
owned by its driver struct. Moreover, storing two different pointer
types in driver data depending on driver initialization status is barely
a good practice and in fact has led to many bugs in this driver.

Let's clean up this mess and change Analogix entry points to simply
accept some opaque struct pointer, adjusting their users at the same
time to avoid breaking the compilation.

Signed-off-by: Tomasz Figa &lt;tfiga@chromium.org&gt;
Signed-off-by: Jeffy Chen &lt;jeffy.chen@rock-chips.com&gt;
Signed-off-by: Thierry Escande &lt;thierry.escande@collabora.com&gt;
Reviewed-by: Andrzej Hajda &lt;a.hajda@samsung.com&gt;
Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Acked-by: Jingoo Han &lt;jingoohan1@gmail.com&gt;
Acked-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20180110162348.22765-2-thierry.escande@collabora.com
</content>
</entry>
<entry>
<title>Merge airlied/drm-next into drm-misc-next</title>
<updated>2018-01-19T17:32:05Z</updated>
<author>
<name>Sean Paul</name>
<email>seanpaul@chromium.org</email>
</author>
<published>2018-01-19T17:32:05Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=54156da8937c9f5f84b4215e239a61ecc7c29275'/>
<id>urn:sha1:54156da8937c9f5f84b4215e239a61ecc7c29275</id>
<content type='text'>
It's been a while since we've backmerged drm-next. Dave just brought
back 4.15-rc8, so now's a good time to freshen things up around here.

Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
</content>
</entry>
</feed>
