<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/gpu/drm/bridge, branch v4.7</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.7</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.7'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2016-05-12T09:32:14Z</updated>
<entry>
<title>drm/bridge: Add Analogix anx78xx support</title>
<updated>2016-05-12T09:32:14Z</updated>
<author>
<name>Enric Balletbo i Serra</name>
<email>enric.balletbo@collabora.com</email>
</author>
<published>2016-05-02T07:54:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0647e7dd3f7ab2e0490691eae185ab0c49fc266f'/>
<id>urn:sha1:0647e7dd3f7ab2e0490691eae185ab0c49fc266f</id>
<content type='text'>
Although there are other chips from the same family that can reuse this
driver, at the moment we only tested ANX7814 chip.

The ANX7814 is an ultra-low power Full-HD (1080p60) SlimPort transmitter
designed for portable devices. This driver adds initial support for HDMI
to DP pass-through mode.

Signed-off-by: Enric Balletbo i Serra &lt;enric.balletbo@collabora.com&gt;
Tested-by: Nicolas Boichat &lt;drinkcat@chromium.org&gt;
Reviewed-by: Nicolas Boichat &lt;drinkcat@chromium.org&gt;
Cc: Emil Velikov &lt;emil.l.velikov@gmail.com&gt;
Cc: Rob Herring &lt;robh@kernel.org&gt;
Cc: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Cc: Daniel Kurtz &lt;djkurtz@chromium.org&gt;
Cc: Nicolas Boichat &lt;drinkcat@chromium.org&gt;
Cc: Thierry Reding &lt;treding@nvidia.com&gt;
[treding@nvidia.com: coding style, propagate regulator_get() errors]
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'drm-next-analogix-dp-v2' of github.com:yakir-Yang/linux into drm-next</title>
<updated>2016-04-05T23:57:33Z</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2016-04-05T23:57:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d00b39c17573ece6f5fb1385314877d29f540db8'/>
<id>urn:sha1:d00b39c17573ece6f5fb1385314877d29f540db8</id>
<content type='text'>
This pull request want to land the analogix_dp driver into drm/bridge directory,
which reused the Exynos DP code, and add Rockchip DP support. And those
patches have been:

* 'drm-next-analogix-dp-v2' of github.com:yakir-Yang/linux:
  drm: bridge: analogix/dp: Fix the possible dead lock in bridge disable time
  drm: bridge: analogix/dp: add panel prepare/unprepare in suspend/resume time
  drm: bridge: analogix/dp: add edid modes parse in get_modes method
  drm: bridge: analogix/dp: move hpd detect to connector detect function
  drm: bridge: analogix/dp: try force hpd after plug in lookup failed
  drm: bridge: analogix/dp: add max link rate and lane count limit for RK3288
  drm: bridge: analogix/dp: add some rk3288 special registers setting
  dt-bindings: add document for rockchip variant of analogix_dp
  drm: rockchip: dp: add rockchip platform dp driver
  ARM: dts: exynos/dp: remove some properties that deprecated by analogix_dp driver
  dt-bindings: add document for analogix display port driver
  drm: bridge: analogix/dp: dynamic parse sync_pol &amp; interlace &amp; dynamic_range
  drm: bridge: analogix/dp: remove duplicate configuration of link rate and link count
  drm: bridge: analogix/dp: fix some obvious code style
  drm: bridge: analogix/dp: rename register constants
  drm/exynos: dp: rename implementation specific driver part
  drm: bridge: analogix/dp: split exynos dp driver to bridge directory
</content>
</entry>
<entry>
<title>drm: bridge: analogix/dp: Fix the possible dead lock in bridge disable time</title>
<updated>2016-04-05T02:13:10Z</updated>
<author>
<name>Yakir Yang</name>
<email>ykk@rock-chips.com</email>
</author>
<published>2016-02-15T11:11:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7b4b7a8db439dca4342a0424b3d99d878a4e5a12'/>
<id>urn:sha1:7b4b7a8db439dca4342a0424b3d99d878a4e5a12</id>
<content type='text'>
It may caused a dead lock if we flush the hpd work in bridge disable time.

The normal flow would like:
  IN --&gt; DRM IOCTL
        1. Acquire crtc_ww_class_mutex (DRM IOCTL)
  IN --&gt; analogix_dp_bridge
        2. Acquire hpd work lock (Flush hpd work)
        3. HPD work already in idle, no need to run the work function.
  OUT &lt;-- analogix_dp_bridge
  OUT &lt;-- DRM IOCTL

The dead lock flow would like:
  IN --&gt; DRM IOCTL
        1. Acquire crtc_ww_class_mutex (DRM IOCTL)
  IN --&gt; analogix_dp_bridge
        2. Acquire hpd work lock (Flush hpd work)
  IN --&gt; analogix_dp_hotplug
  IN --&gt; drm_helper_hpd_irq_event
        3. Acquire mode_config lock (This lock already have been acquired in previous step 1)
** Dead Lock Now **

It's wrong to flush the hpd work in bridge-&gt;disable time, I guess the
original code just want to ensure the delay work must be finish before
encoder disabled.

The flush work in bridge disable time is try to ensure the HPD event
won't be missed before display card disabled, actually we can take a
fast respond way(interrupt thread) to update DRM HPD event to fix the
delay update and possible dead lock.

Tested-by: Caesar Wang &lt;wxt@rock-chips.com&gt;
Tested-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Tested-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Tested-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
</content>
</entry>
<entry>
<title>drm: bridge: analogix/dp: add panel prepare/unprepare in suspend/resume time</title>
<updated>2016-04-05T02:13:10Z</updated>
<author>
<name>Yakir Yang</name>
<email>ykk@rock-chips.com</email>
</author>
<published>2016-02-15T11:11:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=211f276ed3d96e964d2d1106a198c7f4a4b3f4c0'/>
<id>urn:sha1:211f276ed3d96e964d2d1106a198c7f4a4b3f4c0</id>
<content type='text'>
Turn off the panel power in suspend time would help to reduce
power waste.

Tested-by: Caesar Wang &lt;wxt@rock-chips.com&gt;
Tested-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Tested-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Tested-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
</content>
</entry>
<entry>
<title>drm: bridge: analogix/dp: add edid modes parse in get_modes method</title>
<updated>2016-04-05T02:13:09Z</updated>
<author>
<name>Yakir Yang</name>
<email>ykk@rock-chips.com</email>
</author>
<published>2016-02-15T11:11:29Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=398a39953493e859d22ac4bece0f4542a3797053'/>
<id>urn:sha1:398a39953493e859d22ac4bece0f4542a3797053</id>
<content type='text'>
Display Port monitor could support kinds of mode which indicate
in monitor edid, not just one single display resolution which
defined in panel or devivetree property display timing.

Note: Gustavo Padovan try to remove the controller and phy
power on function in bind time at bellow commit:
	drm/exynos: do not start enabling DP at bind() phase

But for now driver need to read edid message in .get_modes()
function, so controller must be inited in bind time, so we
need to add controller init back.

Tested-by: Caesar Wang &lt;wxt@rock-chips.com&gt;
Tested-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Tested-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Tested-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
</content>
</entry>
<entry>
<title>drm: bridge: analogix/dp: move hpd detect to connector detect function</title>
<updated>2016-04-05T02:13:08Z</updated>
<author>
<name>Yakir Yang</name>
<email>ykk@rock-chips.com</email>
</author>
<published>2016-02-15T11:11:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2b77a2918c5d7b0b6bc2f8b35ddc299cf9bfe401'/>
<id>urn:sha1:2b77a2918c5d7b0b6bc2f8b35ddc299cf9bfe401</id>
<content type='text'>
This change just make a little clean to make code more like
drm core expect, move hdp detect code from bridge-&gt;enable(),
and place them into connector-&gt;detect().

Note: Gustavo Padovan try to remove the controller and phy
power on function in bind time at bellow commit:
	drm/exynos: do not start enabling DP at bind() phase

But for now the connector status don't hardcode to connected,
need to operate dp phy in .detect function, so we need to revert
parts if Gustavo Padovan's changes, add phy poweron
function in bind time.

Tested-by: Caesar Wang &lt;wxt@rock-chips.com&gt;
Tested-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Tested-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Tested-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
</content>
</entry>
<entry>
<title>drm: bridge: analogix/dp: try force hpd after plug in lookup failed</title>
<updated>2016-04-05T02:13:07Z</updated>
<author>
<name>Yakir Yang</name>
<email>ykk@rock-chips.com</email>
</author>
<published>2016-02-15T11:11:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5cff007c58b7103a7d6bb203a74eb3eb416c10e0'/>
<id>urn:sha1:5cff007c58b7103a7d6bb203a74eb3eb416c10e0</id>
<content type='text'>
Some edp screen do not have hpd signal, so we can't just return
failed when hpd plug in detect failed.

This is an hardware property, so we need add a devicetree property
"analogix,need-force-hpd" to indicate this sutiation.

Acked-by: Rob Herring &lt;robh@kernel.org&gt;
Tested-by: Caesar Wang &lt;wxt@rock-chips.com&gt;
Tested-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Tested-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Tested-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
</content>
</entry>
<entry>
<title>drm: bridge: analogix/dp: add max link rate and lane count limit for RK3288</title>
<updated>2016-04-05T02:13:07Z</updated>
<author>
<name>Yakir Yang</name>
<email>ykk@rock-chips.com</email>
</author>
<published>2016-02-15T11:11:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0d0abd894ead85d20d7febe603f570d4fdd8111a'/>
<id>urn:sha1:0d0abd894ead85d20d7febe603f570d4fdd8111a</id>
<content type='text'>
There are some IP limit on rk3288 that only support 4 physical lanes
of 2.7/1.6 Gbps/lane, so seprate them out by device_type flag.

Tested-by: Caesar Wang &lt;wxt@rock-chips.com&gt;
Tested-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Tested-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Signed-off-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
</content>
</entry>
<entry>
<title>drm: bridge: analogix/dp: add some rk3288 special registers setting</title>
<updated>2016-04-05T02:13:06Z</updated>
<author>
<name>Yakir Yang</name>
<email>ykk@rock-chips.com</email>
</author>
<published>2016-02-15T11:10:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=bcec20fd5ad63ea03427c40027b33c7fd995c8bc'/>
<id>urn:sha1:bcec20fd5ad63ea03427c40027b33c7fd995c8bc</id>
<content type='text'>
RK3288 need some special registers setting, we can separate
them out by the dev_type of plat_data.

Tested-by: Caesar Wang &lt;wxt@rock-chips.com&gt;
Tested-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Tested-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Signed-off-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
</content>
</entry>
<entry>
<title>drm: bridge: analogix/dp: dynamic parse sync_pol &amp; interlace &amp; dynamic_range</title>
<updated>2016-04-05T02:13:02Z</updated>
<author>
<name>Yakir Yang</name>
<email>ykk@rock-chips.com</email>
</author>
<published>2016-02-15T11:10:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=793ce4eb84ea2f2c3ebb97aab1ba8a4ce0561812'/>
<id>urn:sha1:793ce4eb84ea2f2c3ebb97aab1ba8a4ce0561812</id>
<content type='text'>
Both hsync/vsync polarity and interlace mode can be parsed from
drm display mode, and dynamic_range and ycbcr_coeff can be judge
by the video code.

But presumably Exynos still relies on the DT properties, so take
good use of mode_fixup() in to achieve the compatibility hacks.

Reviewed-by: Krzysztof Kozlowski &lt;k.kozlowski@samsung.com&gt;
Tested-by: Caesar Wang &lt;wxt@rock-chips.com&gt;
Tested-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Tested-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Tested-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Yakir Yang &lt;ykk@rock-chips.com&gt;
</content>
</entry>
</feed>
