On Mon, Sep 21, 2015 at 04:45:44PM +0800, Yakir Yang wrote:
Hi Heiko,There's really no reason not to convert Rockchip to atomic. It will have
On 09/02/2015 10:15 AM, Yakir Yang wrote:
Hi Heiko,Just like we talk off line, I guess there are two tricky questions which
å 09/02/2015 05:47 AM, Heiko Stuebner åé:
Hi Yakir,Many thanks for your comment and debug, I would rebase on your
Am Dienstag, 1. September 2015, 13:46:11 schrieb Yakir Yang:
The Samsung Exynos eDP controller and Rockchip RK3288 eDPit looks like during the rebase something did go wrong and I found some
controller
share the same IP, so a lot of parts can be re-used. I split the common
code into bridge directory, then rk3288 and exynos only need to keep
some platform code. Cause I can't find the exact IP name of exynos dp
controller, so I decide to name dp core driver with "analogix" which I
find in rk3288 eDP TRM ;)
Beyond that, there are three light registers setting differents bewteen
exynos and rk3288.
1. RK3288 have five special pll resigters which not indicata in exynos
dp controller.
2. The address of DP_PHY_PD(dp phy power manager register) are
different
between rk3288 and exynos.
3. Rk3288 and exynos have different setting with AUX_HW_RETRY_CTL(dp
debug
register).
I have verified this series on two kinds of rockchip platform board,
one
is rk3288 sdk board which connect with a 2K display port monitor, the
other
is google jerry chromebook which connect with a eDP screen
"cnm,n116bgeea2",
both of them works rightlly.
issues
I mentioned in the replies to individual patches.
I did prepare a branch based on mainline [0] with both the old and the
new edp
driver - rk3288_veyron_defconfig build both drivers into the image.
While the old driver still works, I wasn't able to make the new one work
yet
... the drm core does find the connector, but not that anything is
connected
to it. I'll try to dig deeper tomorrow, but maybe you'll see anything
interesting before then.
"edp-with-veyron" branch and fix the broken, make sure v6 would
work rightly at least in your side and my side.
make analogix_dp just crash/failed on rockchip platform:
- One is how to reach a agreement with the common way to register
connector. There would be a conflict with Exynos & IMX & Rockchip.
On analogix_dp thread, Exynos want to register connector when that
connector is ready.
On dw_hdmi thread, IMX want to register connector when all component is
already.
So Exynos & IMX & Rockchip should reach a common way to register
connector to fix this issue.
- The other is atomic API.
The rockchip drm haven't implemented the atomic API, but the original
exynos_dp have used the atomic API on connector helper function. That's why
analogix_dp just keep crash on your side.
to happen eventually anyway.
That said, there's another option that would allow you to side-step both
of the above problems at the same time. If you turn the common code into
a helper library that should give you enough flexibility to integrate it
into all existing users. For example you could leave out the connector
registration and let the drivers do that. Similarly since the helpers
are only hooked up at registration time you could probably find a way to
share the low-level code but again leave it up to the drivers to glue it
all together at registration time (drivers could wrap the low-level code
with atomic or non-atomic callbacks).
This option may also have the benefit of loosening the coupling between
DRM drivers and the helper code for this IP, which may be handy in case
the drivers diverge again in the future, or ease transitions to new API.
Thierry