<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/gpu/drm/bridge/analogix, branch v4.9.87</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>drm/bridge: analogix dp: Fix runtime PM state on driver bind</title>
<updated>2017-03-30T07:41:28+00:00</updated>
<author>
<name>Marek Szyprowski</name>
<email>m.szyprowski@samsung.com</email>
</author>
<published>2016-12-30T09:57:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7b3c8b2a2e63f2ad0a16cda77b7698004640ad1a'/>
<id>7b3c8b2a2e63f2ad0a16cda77b7698004640ad1a</id>
<content type='text'>
commit f0a8b49c03d22a511a601dc54b2a3425a41e35fa upstream.

Analogix_dp_bind() can be called from component framework, which doesn't
guarantee proper runtime PM state of the device during bind operation,
so ensure that device is runtime active before doing any register access.
This ensures that the power domain, to which DP module belongs, is turned
on. While at it, also fix the unbalanced call to phy_power_on() in
analogix_dp_bind() function.

This patch solves the following kernel oops on Samsung Exynos5250 Snow
board:

Unhandled fault: imprecise external abort (0x406) at 0x00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: : 406 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 75 Comm: kworker/0:2 Not tainted 4.9.0 #1046
Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
Workqueue: events deferred_probe_work_func
task: ee272300 task.stack: ee312000
PC is at analogix_dp_enable_sw_function+0x18/0x2c
LR is at analogix_dp_init_dp+0x2c/0x50
...
[&lt;c03fcb38&gt;] (analogix_dp_enable_sw_function) from [&lt;c03fa9c4&gt;] (analogix_dp_init_dp+0x2c/0x50)
[&lt;c03fa9c4&gt;] (analogix_dp_init_dp) from [&lt;c03fab6c&gt;] (analogix_dp_bind+0x184/0x42c)
[&lt;c03fab6c&gt;] (analogix_dp_bind) from [&lt;c03fdb84&gt;] (component_bind_all+0xf0/0x218)
[&lt;c03fdb84&gt;] (component_bind_all) from [&lt;c03ed64c&gt;] (exynos_drm_load+0x134/0x200)
[&lt;c03ed64c&gt;] (exynos_drm_load) from [&lt;c03d5058&gt;] (drm_dev_register+0xa0/0xd0)
[&lt;c03d5058&gt;] (drm_dev_register) from [&lt;c03d66b8&gt;] (drm_platform_init+0x58/0xb0)
[&lt;c03d66b8&gt;] (drm_platform_init) from [&lt;c03fe0c4&gt;] (try_to_bring_up_master+0x14c/0x188)
[&lt;c03fe0c4&gt;] (try_to_bring_up_master) from [&lt;c03fe188&gt;] (component_add+0x88/0x138)
[&lt;c03fe188&gt;] (component_add) from [&lt;c0403a38&gt;] (platform_drv_probe+0x50/0xb0)
[&lt;c0403a38&gt;] (platform_drv_probe) from [&lt;c0402470&gt;] (driver_probe_device+0x1f0/0x2a8)
[&lt;c0402470&gt;] (driver_probe_device) from [&lt;c0400a54&gt;] (bus_for_each_drv+0x44/0x8c)
[&lt;c0400a54&gt;] (bus_for_each_drv) from [&lt;c04021f8&gt;] (__device_attach+0x9c/0x100)
[&lt;c04021f8&gt;] (__device_attach) from [&lt;c04018e8&gt;] (bus_probe_device+0x84/0x8c)
[&lt;c04018e8&gt;] (bus_probe_device) from [&lt;c0401d1c&gt;] (deferred_probe_work_func+0x60/0x8c)
[&lt;c0401d1c&gt;] (deferred_probe_work_func) from [&lt;c012fc14&gt;] (process_one_work+0x120/0x318)
[&lt;c012fc14&gt;] (process_one_work) from [&lt;c012fe34&gt;] (process_scheduled_works+0x28/0x38)
[&lt;c012fe34&gt;] (process_scheduled_works) from [&lt;c0130048&gt;] (worker_thread+0x204/0x4ac)
[&lt;c0130048&gt;] (worker_thread) from [&lt;c01352c4&gt;] (kthread+0xd8/0xf4)
[&lt;c01352c4&gt;] (kthread) from [&lt;c0107978&gt;] (ret_from_fork+0x14/0x3c)
Code: e59035f0 e5935018 f57ff04f e3c55001 (f57ff04e)
---[ end trace 3d1d0d87796de344 ]---

Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Signed-off-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1483091866-1088-1-git-send-email-m.szyprowski@samsung.com
Cc: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit f0a8b49c03d22a511a601dc54b2a3425a41e35fa upstream.

Analogix_dp_bind() can be called from component framework, which doesn't
guarantee proper runtime PM state of the device during bind operation,
so ensure that device is runtime active before doing any register access.
This ensures that the power domain, to which DP module belongs, is turned
on. While at it, also fix the unbalanced call to phy_power_on() in
analogix_dp_bind() function.

This patch solves the following kernel oops on Samsung Exynos5250 Snow
board:

Unhandled fault: imprecise external abort (0x406) at 0x00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: : 406 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 75 Comm: kworker/0:2 Not tainted 4.9.0 #1046
Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
Workqueue: events deferred_probe_work_func
task: ee272300 task.stack: ee312000
PC is at analogix_dp_enable_sw_function+0x18/0x2c
LR is at analogix_dp_init_dp+0x2c/0x50
...
[&lt;c03fcb38&gt;] (analogix_dp_enable_sw_function) from [&lt;c03fa9c4&gt;] (analogix_dp_init_dp+0x2c/0x50)
[&lt;c03fa9c4&gt;] (analogix_dp_init_dp) from [&lt;c03fab6c&gt;] (analogix_dp_bind+0x184/0x42c)
[&lt;c03fab6c&gt;] (analogix_dp_bind) from [&lt;c03fdb84&gt;] (component_bind_all+0xf0/0x218)
[&lt;c03fdb84&gt;] (component_bind_all) from [&lt;c03ed64c&gt;] (exynos_drm_load+0x134/0x200)
[&lt;c03ed64c&gt;] (exynos_drm_load) from [&lt;c03d5058&gt;] (drm_dev_register+0xa0/0xd0)
[&lt;c03d5058&gt;] (drm_dev_register) from [&lt;c03d66b8&gt;] (drm_platform_init+0x58/0xb0)
[&lt;c03d66b8&gt;] (drm_platform_init) from [&lt;c03fe0c4&gt;] (try_to_bring_up_master+0x14c/0x188)
[&lt;c03fe0c4&gt;] (try_to_bring_up_master) from [&lt;c03fe188&gt;] (component_add+0x88/0x138)
[&lt;c03fe188&gt;] (component_add) from [&lt;c0403a38&gt;] (platform_drv_probe+0x50/0xb0)
[&lt;c0403a38&gt;] (platform_drv_probe) from [&lt;c0402470&gt;] (driver_probe_device+0x1f0/0x2a8)
[&lt;c0402470&gt;] (driver_probe_device) from [&lt;c0400a54&gt;] (bus_for_each_drv+0x44/0x8c)
[&lt;c0400a54&gt;] (bus_for_each_drv) from [&lt;c04021f8&gt;] (__device_attach+0x9c/0x100)
[&lt;c04021f8&gt;] (__device_attach) from [&lt;c04018e8&gt;] (bus_probe_device+0x84/0x8c)
[&lt;c04018e8&gt;] (bus_probe_device) from [&lt;c0401d1c&gt;] (deferred_probe_work_func+0x60/0x8c)
[&lt;c0401d1c&gt;] (deferred_probe_work_func) from [&lt;c012fc14&gt;] (process_one_work+0x120/0x318)
[&lt;c012fc14&gt;] (process_one_work) from [&lt;c012fe34&gt;] (process_scheduled_works+0x28/0x38)
[&lt;c012fe34&gt;] (process_scheduled_works) from [&lt;c0130048&gt;] (worker_thread+0x204/0x4ac)
[&lt;c0130048&gt;] (worker_thread) from [&lt;c01352c4&gt;] (kthread+0xd8/0xf4)
[&lt;c01352c4&gt;] (kthread) from [&lt;c0107978&gt;] (ret_from_fork+0x14/0x3c)
Code: e59035f0 e5935018 f57ff04f e3c55001 (f57ff04e)
---[ end trace 3d1d0d87796de344 ]---

Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Signed-off-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1483091866-1088-1-git-send-email-m.szyprowski@samsung.com
Cc: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>drm/bridge: Drop drm_connector_unregister and call drm_connector_cleanup directly</title>
<updated>2016-10-10T09:19:42+00:00</updated>
<author>
<name>Marek Vasut</name>
<email>marex@denx.de</email>
</author>
<published>2016-10-05T14:31:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fdd8326a016a70f0ec96f5bb3011a5183961df2e'/>
<id>fdd8326a016a70f0ec96f5bb3011a5183961df2e</id>
<content type='text'>
Drop unneeded drm_connector_unregister() and remove the unnecessary
wrapper functions around drm_connector_cleanup().

Signed-off-by: Marek Vasut &lt;marex@denx.de&gt;
Cc: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20161005143133.5549-1-marex@denx.de
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Drop unneeded drm_connector_unregister() and remove the unnecessary
wrapper functions around drm_connector_cleanup().

Signed-off-by: Marek Vasut &lt;marex@denx.de&gt;
Cc: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20161005143133.5549-1-marex@denx.de
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: Add analogix_dp_psr_supported</title>
<updated>2016-10-04T06:23:16+00:00</updated>
<author>
<name>Tomeu Vizoso</name>
<email>tomeu.vizoso@collabora.com</email>
</author>
<published>2016-09-23T14:06:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=561b069008dcf1b2909aebb7a904a32c7d802a93'/>
<id>561b069008dcf1b2909aebb7a904a32c7d802a93</id>
<content type='text'>
So users know whether PSR should be enabled or not.

Cc: Yakir Yang &lt;ykk@rock-chips.com&gt;

Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: Tomeu Vizoso &lt;tomeu.vizoso@collabora.com&gt;
Signed-off-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1474639600-30090-1-git-send-email-tomeu.vizoso@collabora.com
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
So users know whether PSR should be enabled or not.

Cc: Yakir Yang &lt;ykk@rock-chips.com&gt;

Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: Tomeu Vizoso &lt;tomeu.vizoso@collabora.com&gt;
Signed-off-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1474639600-30090-1-git-send-email-tomeu.vizoso@collabora.com
</pre>
</div>
</content>
</entry>
<entry>
<title>drm: bridge: analogix/dp: mark symbols static where possible</title>
<updated>2016-09-25T20:59:02+00:00</updated>
<author>
<name>Baoyou Xie</name>
<email>baoyou.xie@linaro.org</email>
</author>
<published>2016-09-25T07:32:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=089cfdd9b0ec1b21d3356d2e057f69b89d46ae66'/>
<id>089cfdd9b0ec1b21d3356d2e057f69b89d46ae66</id>
<content type='text'>
We get 2 warnings when building kernel with W=1:
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c:1053:5: warning: no previous prototype for 'analogix_dp_get_modes' [-Wmissing-prototypes]
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c:1097:1: warning: no previous prototype for 'analogix_dp_detect' [-Wmissing-prototypes]

In fact, both functions are only used in the file in which they are
declared and don't need a declaration, but can be made static.
So this patch marks both functions with 'static'.

Signed-off-by: Baoyou Xie &lt;baoyou.xie@linaro.org&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1474788764-6069-1-git-send-email-baoyou.xie@linaro.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We get 2 warnings when building kernel with W=1:
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c:1053:5: warning: no previous prototype for 'analogix_dp_get_modes' [-Wmissing-prototypes]
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c:1097:1: warning: no previous prototype for 'analogix_dp_detect' [-Wmissing-prototypes]

In fact, both functions are only used in the file in which they are
declared and don't need a declaration, but can be made static.
So this patch marks both functions with 'static'.

Signed-off-by: Baoyou Xie &lt;baoyou.xie@linaro.org&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1474788764-6069-1-git-send-email-baoyou.xie@linaro.org
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: Improve panel on time</title>
<updated>2016-09-24T06:26:35+00:00</updated>
<author>
<name>Sean Paul</name>
<email>seanpaul@chromium.org</email>
</author>
<published>2016-09-07T11:23:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f2600d08d4e8d211262b143e71d3a08f320e1e17'/>
<id>f2600d08d4e8d211262b143e71d3a08f320e1e17</id>
<content type='text'>
In order to reduce the time required to turn on the panel, this patch
makes 2 assumptions:
1- In detect(): if there's a panel, we're connected.
2- In get_modes(): if there's a panel, let the panel driver decide if
   it should prepare/unprepare in order to get the modes.

The first is straightforward, and shouldn't need further explanation. The
second should eliminate the prepare/unprepare delays from get_modes() in
most cases, since panels generally hardcode their modes in the driver as
opposed to reading EDID. If a panel does need to read EDID, it should be
responsible for ensuring it's in a state in which it can.

Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In order to reduce the time required to turn on the panel, this patch
makes 2 assumptions:
1- In detect(): if there's a panel, we're connected.
2- In get_modes(): if there's a panel, let the panel driver decide if
   it should prepare/unprepare in order to get the modes.

The first is straightforward, and shouldn't need further explanation. The
second should eliminate the prepare/unprepare delays from get_modes() in
most cases, since panels generally hardcode their modes in the driver as
opposed to reading EDID. If a panel does need to read EDID, it should be
responsible for ensuring it's in a state in which it can.

Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: Don't read EDID if panel present</title>
<updated>2016-09-24T06:26:34+00:00</updated>
<author>
<name>Sean Paul</name>
<email>seanpaul@chromium.org</email>
</author>
<published>2016-08-24T14:58:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8c77e2c2a48b5d52114fb179c3d7c21fd02be64d'/>
<id>8c77e2c2a48b5d52114fb179c3d7c21fd02be64d</id>
<content type='text'>
If there's a panel connected to the analogix_dp bridge, rely on
the panel driver for modes, rather than reading EDID *and* calling
get_modes() on the panel.

This allows panels with a valid EDID to read it in the panel driver
(e.g. simple_panel), and panels with invalid EDID to homebrew modes
in their get_modes implementation.

Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If there's a panel connected to the analogix_dp bridge, rely on
the panel driver for modes, rather than reading EDID *and* calling
get_modes() on the panel.

This allows panels with a valid EDID to read it in the panel driver
(e.g. simple_panel), and panels with invalid EDID to homebrew modes
in their get_modes implementation.

Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: Remove duplicated code</title>
<updated>2016-09-24T06:26:34+00:00</updated>
<author>
<name>Tomeu Vizoso</name>
<email>tomeu.vizoso@collabora.com</email>
</author>
<published>2016-08-24T14:54:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0d97ad03f4220ca84f700c5fea988859ea0c3b98'/>
<id>0d97ad03f4220ca84f700c5fea988859ea0c3b98</id>
<content type='text'>
Remove code for reading the EDID and DPCD fields and use the helpers
instead.

Besides the obvious code reduction, other helpers are being added to the
core that could be used in this driver and will be good to be able to
use them instead of duplicating them.

Signed-off-by: Tomeu Vizoso &lt;tomeu.vizoso@collabora.com&gt;
Tested-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Cc: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Cc: Mika Kahola &lt;mika.kahola@intel.com&gt;
Cc: Yakir Yang &lt;ykk@rock-chips.com&gt;
Cc: Daniel Vetter &lt;daniel.vetter@intel.com&gt;
Cc: Archit Taneja &lt;architt@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove code for reading the EDID and DPCD fields and use the helpers
instead.

Besides the obvious code reduction, other helpers are being added to the
core that could be used in this driver and will be good to be able to
use them instead of duplicating them.

Signed-off-by: Tomeu Vizoso &lt;tomeu.vizoso@collabora.com&gt;
Tested-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Cc: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Cc: Mika Kahola &lt;mika.kahola@intel.com&gt;
Cc: Yakir Yang &lt;ykk@rock-chips.com&gt;
Cc: Daniel Vetter &lt;daniel.vetter@intel.com&gt;
Cc: Archit Taneja &lt;architt@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: squash lines for simple wrapper functions</title>
<updated>2016-09-15T14:41:39+00:00</updated>
<author>
<name>Masahiro Yamada</name>
<email>yamada.masahiro@socionext.com</email>
</author>
<published>2016-09-14T14:39:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=03d6356d45fa1efefcde517462aca17db073f9c5'/>
<id>03d6356d45fa1efefcde517462aca17db073f9c5</id>
<content type='text'>
Remove unneeded variables and assignments.

Reviewed-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Masahiro Yamada &lt;yamada.masahiro@socionext.com&gt;
[seanpaul added analogix prefix to subject]
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1473863952-7658-4-git-send-email-yamada.masahiro@socionext.com
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove unneeded variables and assignments.

Reviewed-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Masahiro Yamada &lt;yamada.masahiro@socionext.com&gt;
[seanpaul added analogix prefix to subject]
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1473863952-7658-4-git-send-email-yamada.masahiro@socionext.com
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: add the PSR function support</title>
<updated>2016-08-23T15:44:33+00:00</updated>
<author>
<name>Yakir Yang</name>
<email>ykk@rock-chips.com</email>
</author>
<published>2016-07-24T06:57:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5b3f84f222b6bb955c5a473ddff707e252be71b4'/>
<id>5b3f84f222b6bb955c5a473ddff707e252be71b4</id>
<content type='text'>
The full name of PSR is Panel Self Refresh, panel device could refresh
itself with the hardware framebuffer in panel, this would make lots of
sense to save the power consumption.

This patch have exported two symbols for platform driver to implement
the PSR function in hardware side:
- analogix_dp_active_psr()
- analogix_dp_inactive_psr()

Reviewed-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The full name of PSR is Panel Self Refresh, panel device could refresh
itself with the hardware framebuffer in panel, this would make lots of
sense to save the power consumption.

This patch have exported two symbols for platform driver to implement
the PSR function in hardware side:
- analogix_dp_active_psr()
- analogix_dp_inactive_psr()

Reviewed-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/bridge: analogix_dp: Ensure the panel is properly prepared/unprepared</title>
<updated>2016-08-23T15:44:31+00:00</updated>
<author>
<name>Sean Paul</name>
<email>seanpaul@chromium.org</email>
</author>
<published>2016-08-08T18:53:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0b8b059a75b08f85e3db843aa33461a6e0d3bb09'/>
<id>0b8b059a75b08f85e3db843aa33461a6e0d3bb09</id>
<content type='text'>
Instead of just preparing the panel on bind, actually prepare/unprepare
during modeset/disable. The panel must be prepared in order to read hpd
status and edid, so we need to keep state around the prepares in order
to ensure we don't accidentally turn the panel off at the wrong time.

Reviewed-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
Tested-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
Reviewed-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of just preparing the panel on bind, actually prepare/unprepare
during modeset/disable. The panel must be prepared in order to read hpd
status and edid, so we need to keep state around the prepares in order
to ensure we don't accidentally turn the panel off at the wrong time.

Reviewed-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
Tested-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
Reviewed-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
