From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756868AbcDECVX (ORCPT ); Mon, 4 Apr 2016 22:21:23 -0400 Received: from lucky1.263xmail.com ([211.157.147.133]:45644 "EHLO lucky1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754615AbcDECVU (ORCPT ); Mon, 4 Apr 2016 22:21:20 -0400 X-263anti-spam: KSV:0; X-MAIL-GRAY: 1 X-MAIL-DELIVERY: 0 X-ABS-CHECKED: 4 X-ADDR-CHECKED: 0 X-KSVirus-check: 0 X-RL-SENDER: ykk@rock-chips.com X-FST-TO: linux-arm-kernel@lists.infradead.org X-SENDER-IP: 103.29.142.67 X-LOGIN-NAME: ykk@rock-chips.com X-UNIQUE-TAG: <77beab9a61a9ab11e8285dce52e8dc31> X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Subject: Re: [PATCH v14 0/17] Add Analogix Core Display Port Driver To: Inki Dae , Andrzej Hajda , Joonyoung Shim , Seung-Woo Kim , Kyungmin Park , Jingoo Han , Thierry Reding , Krzysztof Kozlowski , Rob Herring , Heiko Stuebner , Mark Yao , devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Russell King , Pawel Moll , Ian Campbell , linux-rockchip@lists.infradead.org, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, Kishon Vijay Abraham I , javier@osg.samsung.com, Kukjin Kim , dri-devel@lists.freedesktop.org, Kumar Gala , ajaynumb@gmail.com, robherring2@gmail.com, Andy Yan , Gustavo Padovan , linux-arm-kernel@lists.infradead.org References: <1455534485-1154-1-git-send-email-ykk@rock-chips.com> <20160331101535.GZ2510@phenom.ffwll.local> From: Yakir Yang Message-ID: <57031D8E.1020903@rock-chips.com> Date: Tue, 5 Apr 2016 10:06:06 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <20160331101535.GZ2510@phenom.ffwll.local> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Daniel, On 03/31/2016 06:15 PM, Daniel Vetter wrote: > On Mon, Feb 15, 2016 at 07:08:05PM +0800, Yakir Yang wrote: >> Hi all, >> >> The Samsung Exynos eDP controller and Rockchip RK3288 eDP 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 >> >> But there are still three light registers setting different between >> exynos and rk3288. >> 1. RK3288 have five special pll registers which not indicate 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). >> >> Due to Mark Yao have introduced the ATOMIC support to Rockchip drm, so it's >> okay to use the ATOMIC helpers functions in connector_funcs. No need to splict >> the connector init to platform driver anymore, and this is the biggest change >> since version 11. >> >> This v14 didn't have lots of new changes which seems not the correct time to >> upgrade the version number, but I have changed ordering of patches (adding 2 >> more, and removing 2 out). Especially to prevent confusing people, so I updated >> the whole series. > So I'm jumping into this part way late, but just noticed (well Thierry > pointed this out to me) that the exynos dp driver reinvents all the dp and > dp-aux helpers we already. That's somewhat okish for a private driver (and > exynos has a reputation for that kind of stuff), but imo not ok for a > shared driver. > > Not saying this should block merging this patch, but it really needs to be > addressed. All the dp aux and edid read code in the current > exynos_dp_core/reg.c files needs to be replaced with dp helpers and the > core i2c edid reading code. > > Who's going to sign up to do this? Volunteer to that, after finish this thread, I would send new series to switch to take use of dp helper. :-D - Yakir > -Daniel > >> Thanks, >> - Yakir >> >> >> Changes in v14: >> - Rebase the new changes in imx-dp driver >> - Split up this patch into 3 parts, make this easy to review (Heiko) >> - Remove the Rockchip DP PHY to an separate thread (Heiko) >> https://patchwork.kernel.org/patch/8312701/ >> >> Changes in v13: >> - Use .enable instead of preprare/commit in encoder_helper_funcs (Heiko) >> - Fix the missing parameters with drm_encoder_init() helper function. (Heiko) >> >> Changes in v12: >> - Move the connector init to analogix_dp driver, and using ATOMIC helper (Heiko) >> - Add the ack from Jingoo >> - Remove the enum link_rate_type struct, using the marcos in drm_dp_helper.h (Jingoo) >> >> Changes in v11: >> - Uses tabs to fix the indentation issues in analogix_dp_core.h (Heiko) >> - Rename the "analogix,need-force-hpd" to common 'force-hpd' (Rob) >> - Add the ack from Rob Herring >> - Revert parts of Gustavo Padovan's changes in commit: >> drm/exynos: do not start enabling DP at bind() phase >> Add dp phy poweron function in bind time. >> - Move the panel prepare from get_modes time to bind time, and move >> the panel unprepare from bridge->disable to unbind time. (Heiko) >> >> Changes in v10: >> - Add the ack from Rob Herring >> - Correct the ROCKCHIP_ANALOGIX_DP indentation in Kconfig to tabs here (Heiko) >> - Add the ack from Rob Herring >> - Remove the surplus "plat_data" check. (Heiko) >> - switch (dp->plat_data && dp->plat_data->dev_type) { >> + switch (dp->plat_data->dev_type) { >> >> Changes in v9: >> - Document more details for 'ports' property. >> >> Changes in v8: >> - Correct the right document path of display-timing.txt (Heiko) >> - Correct the misspell of 'from' to 'frm'. (Heiko) >> - Modify the commit subject name. (Heiko) >> >> Changes in v7: >> - Back to use the of_property_read_bool() interfacs to provoid backward >> compatibility of "hsync-active-high" "vsync-active-high" "interlaced" >> to avoid -EOVERFLOW error (Krzysztof) >> >> Changes in v6: >> - Fix the Kconfig recursive dependency (Javier) >> - Fix Peach Pit hpd property name error: >> - hpd-gpio = <&gpx2 6 0>; >> + hpd-gpios = <&gpx2 6 0>; >> >> Changes in v5: >> - Correct the check condition of gpio_is_valid when driver try to get >> the "hpd-gpios" DT propery. (Heiko) >> - Move the platform attach callback in the front of core driver bridge >> attch function. Cause once platform failed at attach, core driver should >> still failed, so no need to init connector before platform attached (Krzysztof) >> - Keep code style no changes with the previous exynos_dp_code.c in this >> patch, and update commit message about the new export symbol (Krzysztof) >> - Gather the device type patch (v4 11/16) into this one. (Krzysztof) >> - leave out the connector registration to analogix platform driver. (Thierry) >> - Resequence this patch after analogix_dp driver have been split >> from exynos_dp code, and rephrase reasonable commit message, and >> remove some controversial style (Krzysztof) >> - analogix_dp_write_byte_to_dpcd( >> - dp, DP_TEST_RESPONSE, >> + analogix_dp_write_byte_to_dpcd(dp, >> + DP_TEST_RESPONSE, >> DP_TEST_EDID_CHECKSUM_WRITE); >> - Switch video timing type to "u32", so driver could use "of_property_read_u32" >> to get the backword timing values. Krzysztof suggest me that driver could use >> the "of_property_read_bool" to get backword timing values, but that interfacs >> would modify the original drm_display_mode timing directly (whether those >> properties exists or not). >> - Correct the misspell in commit message. (Krzysztof) >> - Remove the empty line at the end of document, and correct the endpoint >> numbers in the example DT node, and remove the regulator iomux setting >> in driver code while using the pinctl in devicetree instead. (Heiko) >> - Add device type declared, cause the previous "platform device type >> support (v4 11/16)" already merge into (v5 02/14). >> - Implement connector registration code. (Thierry) >> - Split binding doc's from driver changes. (Rob) >> - Add eDP hotplug pinctrl property. (Heiko) >> >> Changes in v4: >> - Update "analogix,hpd-gpios" to "hpd-gpios" DT propery. (Rob) >> - Rename "analogix_dp-exynos.c" file name to "exynos_dp.c" (Jingoo) >> - Create a separate folder for analogix code in bridge/ (Archit) >> - Update commit message more readable. (Jingoo) >> - Adjust the order from 05 to 04 >> - Provide backword compatibility with samsung. (Krzysztof) >> - Split all DTS changes, and provide backward compatibility. Mark old >> properties as deprecated but still support them. (Krzysztof) >> - Update "analogix,hpd-gpio" to "hpd-gpios" prop name. (Rob) >> - Deprecated some properties which could parsed from Edid/Mode/DPCD. (Thierry) >> "analogix,color-space" & "analogix,color-depth" & >> "analogix,link-rate" & "analogix,lane-count" & >> "analogix,ycbcr-coeff" & "analogix,dynamic-range" & >> "vsync-active-high" & "hsync-active-high" & "interlaces" >> - Separate all DTS changes to a separate patch. (Krzysztof) >> - Remove some deprecated DT properties in rockchip dp document. >> - Seprate the link-rate and lane-count limit out with the device_type >> flag. (Thierry) >> - Take Jingoo suggest, add commit messages. >> - Call drm_panel_prepare() in .get_modes function, ensure panel should >> power on before driver try to read edid message. >> >> Changes in v3: >> - Move exynos's video_timing code to analogix_dp-exynos platform driver, >> add get_modes method to struct analogix_dp_plat_data. (Thierry) >> - Rename some "samsung*" dts propery to "analogix*". (Heiko) >> - The link_rate and lane_count shouldn't config to the DT property value >> directly, but we can take those as hardware limite. For example, RK3288 >> only support 4 physical lanes of 2.7/1.62 Gbps/lane, so DT property would >> like "link-rate = 0x0a" "lane-count = 4". (Thierry) >> - Dynamic parse video timing info from struct drm_display_mode and >> struct drm_display_info. (Thierry) >> - Add devicetree binding documents. (Heiko) >> - Remove sync pol & colorimetry properies from the new analogix dp driver >> devicetree binding. (Thierry) >> - Update the exist exynos dtsi file with the latest DP DT properies. >> - Leave "sclk_edp_24m" to rockchip dp phy driver which name to "24m", >> and leave "sclk_edp" to analogix dp core driver which name to "dp", >> and leave "pclk_edp" to rockchip dp platform driver which name to >> "pclk". (Thierry & Heiko) >> - Add devicetree binding document. (Heiko) >> - Remove "rockchip,panel" DT property, take use of remote point to get panel >> node. (Heiko) >> - Add the new function point dp_platdata->get_modes() init. >> - Add "analogix,need-force-hpd" to indicate whether driver need foce >> hpd when hpd detect failed. >> - move dp hpd detect to connector detect function. >> - Add edid modes parse support >> >> Changes in v2: >> - Remove new copyright (Jingoo) >> - Fix compiled failed due to analogix_dp_device misspell >> - Improved commit message more readable, and avoid using some >> uncommon style like bellow: (Joe Preches) >> - retval = exynos_dp_read_bytes_from_i2c(... >> ...); >> + retval = >> + exynos_dp_read_bytes_from_i2c(......); >> - Get panel node with remote-endpoint method, and create devicetree binding >> for driver. (Heiko) >> - Remove the clock enable/disbale with "sclk_edp" & "sclk_edp_24m", >> leave those clock to rockchip dp phy driver. >> - Fix compile failed dut to phy_pd_addr variable misspell error >> >> Heiko Stuebner (2): >> drm/exynos: dp: rename implementation specific driver part >> drm: bridge: analogix/dp: rename register constants >> >> Yakir Yang (15): >> drm: bridge: analogix/dp: split exynos dp driver to bridge directory >> drm: bridge: analogix/dp: fix some obvious code style >> drm: bridge: analogix/dp: remove duplicate configuration of link rate >> and link count >> drm: bridge: analogix/dp: dynamic parse sync_pol & interlace & >> dynamic_range >> dt-bindings: add document for analogix display port driver >> ARM: dts: exynos/dp: remove some properties that deprecated by >> analogix_dp driver >> drm: rockchip: dp: add rockchip platform dp driver >> dt-bindings: add document for rockchip variant of analogix_dp >> drm: bridge: analogix/dp: add some rk3288 special registers setting >> drm: bridge: analogix/dp: add max link rate and lane count limit for >> RK3288 >> drm: bridge: analogix/dp: try force hpd after plug in lookup failed >> drm: bridge: analogix/dp: move hpd detect to connector detect function >> drm: bridge: analogix/dp: add edid modes parse in get_modes method >> drm: bridge: analogix/dp: add panel prepare/unprepare in >> suspend/resume time >> drm: bridge: analogix/dp: Fix the possible dead lock in bridge disable >> time >> >> .../bindings/display/bridge/analogix_dp.txt | 52 + >> .../bindings/display/exynos/exynos_dp.txt | 93 +- >> .../display/rockchip/analogix_dp-rockchip.txt | 92 ++ >> arch/arm/boot/dts/exynos5250-arndale.dts | 2 - >> arch/arm/boot/dts/exynos5250-smdk5250.dts | 2 - >> arch/arm/boot/dts/exynos5250-snow-common.dtsi | 4 +- >> arch/arm/boot/dts/exynos5250-spring.dts | 4 +- >> arch/arm/boot/dts/exynos5420-peach-pit.dts | 4 +- >> arch/arm/boot/dts/exynos5420-smdk5420.dts | 2 - >> arch/arm/boot/dts/exynos5800-peach-pi.dts | 2 - >> drivers/gpu/drm/bridge/Kconfig | 2 + >> drivers/gpu/drm/bridge/Makefile | 1 + >> drivers/gpu/drm/bridge/analogix/Kconfig | 3 + >> drivers/gpu/drm/bridge/analogix/Makefile | 1 + >> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 1430 ++++++++++++++++++ >> drivers/gpu/drm/bridge/analogix/analogix_dp_core.h | 281 ++++ >> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 1320 +++++++++++++++++ >> .../analogix/analogix_dp_reg.h} | 270 ++-- >> drivers/gpu/drm/exynos/Kconfig | 3 +- >> drivers/gpu/drm/exynos/Makefile | 2 +- >> drivers/gpu/drm/exynos/exynos_dp.c | 324 +++++ >> drivers/gpu/drm/exynos/exynos_dp_core.c | 1510 -------------------- >> drivers/gpu/drm/exynos/exynos_dp_core.h | 282 ---- >> drivers/gpu/drm/exynos/exynos_dp_reg.c | 1263 ---------------- >> drivers/gpu/drm/rockchip/Kconfig | 9 + >> drivers/gpu/drm/rockchip/Makefile | 1 + >> drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 384 +++++ >> include/drm/bridge/analogix_dp.h | 41 + >> 28 files changed, 4115 insertions(+), 3269 deletions(-) >> create mode 100644 Documentation/devicetree/bindings/display/bridge/analogix_dp.txt >> create mode 100644 Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt >> create mode 100644 drivers/gpu/drm/bridge/analogix/Kconfig >> create mode 100644 drivers/gpu/drm/bridge/analogix/Makefile >> create mode 100644 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c >> create mode 100644 drivers/gpu/drm/bridge/analogix/analogix_dp_core.h >> create mode 100644 drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c >> rename drivers/gpu/drm/{exynos/exynos_dp_reg.h => bridge/analogix/analogix_dp_reg.h} (62%) >> create mode 100644 drivers/gpu/drm/exynos/exynos_dp.c >> delete mode 100644 drivers/gpu/drm/exynos/exynos_dp_core.c >> delete mode 100644 drivers/gpu/drm/exynos/exynos_dp_core.h >> delete mode 100644 drivers/gpu/drm/exynos/exynos_dp_reg.c >> create mode 100644 drivers/gpu/drm/rockchip/analogix_dp-rockchip.c >> create mode 100644 include/drm/bridge/analogix_dp.h >> >> -- >> 1.9.1 >> >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yakir Yang Subject: Re: [PATCH v14 0/17] Add Analogix Core Display Port Driver Date: Tue, 5 Apr 2016 10:06:06 +0800 Message-ID: <57031D8E.1020903@rock-chips.com> References: <1455534485-1154-1-git-send-email-ykk@rock-chips.com> <20160331101535.GZ2510@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160331101535.GZ2510@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae , Andrzej Hajda , Joonyoung Shim , Seung-Woo Kim , Kyungmin Park , Jingoo Han , Thierry Reding , Krzysztof Kozlowski , Rob Herring , Heiko Stuebner , Mark Yao , devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Russell King , Pawel Moll , Ian Campbell , linux-rockchip@lists.infradead.org, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, Kishon Vijay Abraham I , javier@osg.samsung.com, Kukjin Kim , dri-devel@lists.freedesktop.org, Kumar Gala , ajaynumb@gmail.com, robherr List-Id: devicetree@vger.kernel.org SGkgRGFuaWVsLAoKT24gMDMvMzEvMjAxNiAwNjoxNSBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToK PiBPbiBNb24sIEZlYiAxNSwgMjAxNiBhdCAwNzowODowNVBNICswODAwLCBZYWtpciBZYW5nIHdy b3RlOgo+PiBIaSBhbGwsCj4+Cj4+ICAgIFRoZSBTYW1zdW5nIEV4eW5vcyBlRFAgY29udHJvbGxl ciBhbmQgUm9ja2NoaXAgUkszMjg4IGVEUCBjb250cm9sbGVyCj4+IHNoYXJlIHRoZSBzYW1lIElQ LCBzbyBhIGxvdCBvZiBwYXJ0cyBjYW4gYmUgcmUtdXNlZC4gSSBzcGxpdCB0aGUgY29tbW9uCj4+ IGNvZGUgaW50byBicmlkZ2UgZGlyZWN0b3J5LCB0aGVuIHJrMzI4OCBhbmQgZXh5bm9zIG9ubHkg bmVlZCB0byBrZWVwCj4+IHNvbWUgcGxhdGZvcm0gY29kZS4gQ2F1c2UgSSBjYW4ndCBmaW5kIHRo ZSBleGFjdCBJUCBuYW1lIG9mIGV4eW5vcyBkcAo+PiBjb250cm9sbGVyLCBzbyBJIGRlY2lkZSB0 byBuYW1lIGRwIGNvcmUgZHJpdmVyIHdpdGggImFuYWxvZ2l4IiB3aGljaCBJCj4+IGZpbmQgaW4g cmszMjg4IGVEUCBUUk0KPj4KPj4gQnV0IHRoZXJlIGFyZSBzdGlsbCB0aHJlZSBsaWdodCByZWdp c3RlcnMgc2V0dGluZyBkaWZmZXJlbnQgYmV0d2Vlbgo+PiBleHlub3MgYW5kIHJrMzI4OC4KPj4g MS4gUkszMjg4IGhhdmUgZml2ZSBzcGVjaWFsIHBsbCByZWdpc3RlcnMgd2hpY2ggbm90IGluZGlj YXRlIGluIGV4eW5vcwo+PiAgICAgZHAgY29udHJvbGxlci4KPj4gMi4gVGhlIGFkZHJlc3Mgb2Yg RFBfUEhZX1BEKGRwIHBoeSBwb3dlciBtYW5hZ2VyIHJlZ2lzdGVyKSBhcmUgZGlmZmVyZW50Cj4+ ICAgICBiZXR3ZWVuIHJrMzI4OCBhbmQgZXh5bm9zLgo+PiAzLiBSazMyODggYW5kIGV4eW5vcyBo YXZlIGRpZmZlcmVudCBzZXR0aW5nIHdpdGggQVVYX0hXX1JFVFJZX0NUTChkcCBkZWJ1Zwo+PiAg ICAgcmVnaXN0ZXIpLgo+Pgo+PiBEdWUgdG8gTWFyayBZYW8gaGF2ZSBpbnRyb2R1Y2VkIHRoZSBB VE9NSUMgc3VwcG9ydCB0byBSb2NrY2hpcCBkcm0sIHNvIGl0J3MKPj4gb2theSB0byB1c2UgdGhl IEFUT01JQyBoZWxwZXJzIGZ1bmN0aW9ucyBpbiBjb25uZWN0b3JfZnVuY3MuIE5vIG5lZWQgdG8g c3BsaWN0Cj4+IHRoZSBjb25uZWN0b3IgaW5pdCB0byBwbGF0Zm9ybSBkcml2ZXIgYW55bW9yZSwg YW5kIHRoaXMgaXMgdGhlIGJpZ2dlc3QgY2hhbmdlCj4+IHNpbmNlIHZlcnNpb24gMTEuCj4+Cj4+ IFRoaXMgdjE0IGRpZG4ndCBoYXZlIGxvdHMgb2YgbmV3IGNoYW5nZXMgd2hpY2ggc2VlbXMgbm90 IHRoZSBjb3JyZWN0IHRpbWUgdG8KPj4gdXBncmFkZSB0aGUgdmVyc2lvbiBudW1iZXIsIGJ1dCBJ IGhhdmUgY2hhbmdlZCBvcmRlcmluZyBvZiBwYXRjaGVzIChhZGRpbmcgMgo+PiBtb3JlLCBhbmQg cmVtb3ZpbmcgMiBvdXQpLiBFc3BlY2lhbGx5IHRvIHByZXZlbnQgY29uZnVzaW5nIHBlb3BsZSwg c28gSSB1cGRhdGVkCj4+IHRoZSB3aG9sZSBzZXJpZXMuCj4gU28gSSdtIGp1bXBpbmcgaW50byB0 aGlzIHBhcnQgd2F5IGxhdGUsIGJ1dCBqdXN0IG5vdGljZWQgKHdlbGwgVGhpZXJyeQo+IHBvaW50 ZWQgdGhpcyBvdXQgdG8gbWUpIHRoYXQgdGhlIGV4eW5vcyBkcCBkcml2ZXIgcmVpbnZlbnRzIGFs bCB0aGUgZHAgYW5kCj4gZHAtYXV4IGhlbHBlcnMgd2UgYWxyZWFkeS4gVGhhdCdzIHNvbWV3aGF0 IG9raXNoIGZvciBhIHByaXZhdGUgZHJpdmVyIChhbmQKPiBleHlub3MgaGFzIGEgcmVwdXRhdGlv biBmb3IgdGhhdCBraW5kIG9mIHN0dWZmKSwgYnV0IGltbyBub3Qgb2sgZm9yIGEKPiBzaGFyZWQg ZHJpdmVyLgo+Cj4gTm90IHNheWluZyB0aGlzIHNob3VsZCBibG9jayBtZXJnaW5nIHRoaXMgcGF0 Y2gsIGJ1dCBpdCByZWFsbHkgbmVlZHMgdG8gYmUKPiBhZGRyZXNzZWQuIEFsbCB0aGUgZHAgYXV4 IGFuZCBlZGlkIHJlYWQgY29kZSBpbiB0aGUgY3VycmVudAo+IGV4eW5vc19kcF9jb3JlL3JlZy5j IGZpbGVzIG5lZWRzIHRvIGJlIHJlcGxhY2VkIHdpdGggZHAgaGVscGVycyBhbmQgdGhlCj4gY29y ZSBpMmMgZWRpZCByZWFkaW5nIGNvZGUuCj4KPiBXaG8ncyBnb2luZyB0byBzaWduIHVwIHRvIGRv IHRoaXM/CgpWb2x1bnRlZXIgdG8gdGhhdCwgYWZ0ZXIgZmluaXNoIHRoaXMgdGhyZWFkLCBJIHdv dWxkIHNlbmQgbmV3IHNlcmllcyB0bwpzd2l0Y2ggdG8gdGFrZSB1c2Ugb2YgZHAgaGVscGVyLgoK Oi1ECi0gWWFraXIKCj4gLURhbmllbAo+Cj4+IFRoYW5rcywKPj4gLSBZYWtpcgo+Pgo+Pgo+PiBD aGFuZ2VzIGluIHYxNDoKPj4gLSBSZWJhc2UgdGhlIG5ldyBjaGFuZ2VzIGluIGlteC1kcCBkcml2 ZXIKPj4gLSBTcGxpdCB1cCB0aGlzIHBhdGNoIGludG8gMyBwYXJ0cywgbWFrZSB0aGlzIGVhc3kg dG8gcmV2aWV3IChIZWlrbykKPj4gLSBSZW1vdmUgdGhlIFJvY2tjaGlwIERQIFBIWSB0byBhbiBz ZXBhcmF0ZSB0aHJlYWQgKEhlaWtvKQo+PiAgICAgIGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5v cmcvcGF0Y2gvODMxMjcwMS8KPj4KPj4gQ2hhbmdlcyBpbiB2MTM6Cj4+IC0gVXNlIC5lbmFibGUg aW5zdGVhZCBvZiBwcmVwcmFyZS9jb21taXQgaW4gZW5jb2Rlcl9oZWxwZXJfZnVuY3MgKEhlaWtv KQo+PiAtIEZpeCB0aGUgbWlzc2luZyBwYXJhbWV0ZXJzIHdpdGggZHJtX2VuY29kZXJfaW5pdCgp IGhlbHBlciBmdW5jdGlvbi4gKEhlaWtvKQo+Pgo+PiBDaGFuZ2VzIGluIHYxMjoKPj4gLSBNb3Zl IHRoZSBjb25uZWN0b3IgaW5pdCB0byBhbmFsb2dpeF9kcCBkcml2ZXIsIGFuZCB1c2luZyBBVE9N SUMgaGVscGVyIChIZWlrbykKPj4gLSBBZGQgdGhlIGFjayBmcm9tIEppbmdvbwo+PiAtIFJlbW92 ZSB0aGUgZW51bSBsaW5rX3JhdGVfdHlwZSBzdHJ1Y3QsIHVzaW5nIHRoZSBtYXJjb3MgaW4gZHJt X2RwX2hlbHBlci5oIChKaW5nb28pCj4+Cj4+IENoYW5nZXMgaW4gdjExOgo+PiAtIFVzZXMgdGFi cyB0byBmaXggdGhlIGluZGVudGF0aW9uIGlzc3VlcyBpbiBhbmFsb2dpeF9kcF9jb3JlLmggKEhl aWtvKQo+PiAtIFJlbmFtZSB0aGUgImFuYWxvZ2l4LG5lZWQtZm9yY2UtaHBkIiB0byBjb21tb24g J2ZvcmNlLWhwZCcgKFJvYikKPj4gLSBBZGQgdGhlIGFjayBmcm9tIFJvYiBIZXJyaW5nCj4+IC0g UmV2ZXJ0IHBhcnRzIG9mIEd1c3Rhdm8gUGFkb3ZhbidzIGNoYW5nZXMgaW4gY29tbWl0Ogo+PiAJ ZHJtL2V4eW5vczogZG8gbm90IHN0YXJ0IGVuYWJsaW5nIERQIGF0IGJpbmQoKSBwaGFzZQo+PiAg ICBBZGQgZHAgcGh5IHBvd2Vyb24gZnVuY3Rpb24gaW4gYmluZCB0aW1lLgo+PiAtIE1vdmUgdGhl IHBhbmVsIHByZXBhcmUgZnJvbSBnZXRfbW9kZXMgdGltZSB0byBiaW5kIHRpbWUsIGFuZCBtb3Zl Cj4+ICAgIHRoZSBwYW5lbCB1bnByZXBhcmUgZnJvbSBicmlkZ2UtPmRpc2FibGUgdG8gdW5iaW5k IHRpbWUuIChIZWlrbykKPj4KPj4gQ2hhbmdlcyBpbiB2MTA6Cj4+IC0gQWRkIHRoZSBhY2sgZnJv bSBSb2IgSGVycmluZwo+PiAtIENvcnJlY3QgdGhlIFJPQ0tDSElQX0FOQUxPR0lYX0RQIGluZGVu dGF0aW9uIGluIEtjb25maWcgdG8gdGFicyBoZXJlIChIZWlrbykKPj4gLSBBZGQgdGhlIGFjayBm cm9tIFJvYiBIZXJyaW5nCj4+IC0gUmVtb3ZlIHRoZSBzdXJwbHVzICJwbGF0X2RhdGEiIGNoZWNr LiAoSGVpa28pCj4+IC0gICAgICAgc3dpdGNoIChkcC0+cGxhdF9kYXRhICYmIGRwLT5wbGF0X2Rh dGEtPmRldl90eXBlKSB7Cj4+ICsgICAgICAgc3dpdGNoIChkcC0+cGxhdF9kYXRhLT5kZXZfdHlw ZSkgewo+Pgo+PiBDaGFuZ2VzIGluIHY5Ogo+PiAtIERvY3VtZW50IG1vcmUgZGV0YWlscyBmb3Ig J3BvcnRzJyBwcm9wZXJ0eS4KPj4KPj4gQ2hhbmdlcyBpbiB2ODoKPj4gLSBDb3JyZWN0IHRoZSBy aWdodCBkb2N1bWVudCBwYXRoIG9mIGRpc3BsYXktdGltaW5nLnR4dCAoSGVpa28pCj4+IC0gQ29y cmVjdCB0aGUgbWlzc3BlbGwgb2YgJ2Zyb20nIHRvICdmcm0nLiAoSGVpa28pCj4+IC0gTW9kaWZ5 IHRoZSBjb21taXQgc3ViamVjdCBuYW1lLiAoSGVpa28pCj4+Cj4+IENoYW5nZXMgaW4gdjc6Cj4+ IC0gQmFjayB0byB1c2UgdGhlIG9mX3Byb3BlcnR5X3JlYWRfYm9vbCgpIGludGVyZmFjcyB0byBw cm92b2lkIGJhY2t3YXJkCj4+ICAgIGNvbXBhdGliaWxpdHkgb2YgImhzeW5jLWFjdGl2ZS1oaWdo IiAidnN5bmMtYWN0aXZlLWhpZ2giICJpbnRlcmxhY2VkIgo+PiAgICB0byBhdm9pZCAtRU9WRVJG TE9XIGVycm9yIChLcnp5c3p0b2YpCj4+Cj4+IENoYW5nZXMgaW4gdjY6Cj4+IC0gRml4IHRoZSBL Y29uZmlnIHJlY3Vyc2l2ZSBkZXBlbmRlbmN5IChKYXZpZXIpCj4+IC0gRml4IFBlYWNoIFBpdCBo cGQgcHJvcGVydHkgbmFtZSBlcnJvcjoKPj4gLSAgICAgICBocGQtZ3BpbyA9IDwmZ3B4MiA2IDA+ Owo+PiArICAgICAgIGhwZC1ncGlvcyA9IDwmZ3B4MiA2IDA+Owo+Pgo+PiBDaGFuZ2VzIGluIHY1 Ogo+PiAtIENvcnJlY3QgdGhlIGNoZWNrIGNvbmRpdGlvbiBvZiBncGlvX2lzX3ZhbGlkIHdoZW4g ZHJpdmVyIHRyeSB0byBnZXQKPj4gICAgdGhlICJocGQtZ3Bpb3MiIERUIHByb3BlcnkuIChIZWlr bykKPj4gLSBNb3ZlIHRoZSBwbGF0Zm9ybSBhdHRhY2ggY2FsbGJhY2sgaW4gdGhlIGZyb250IG9m IGNvcmUgZHJpdmVyIGJyaWRnZQo+PiAgICBhdHRjaCBmdW5jdGlvbi4gQ2F1c2Ugb25jZSBwbGF0 Zm9ybSBmYWlsZWQgYXQgYXR0YWNoLCBjb3JlIGRyaXZlciBzaG91bGQKPj4gICAgc3RpbGwgZmFp bGVkLCBzbyBubyBuZWVkIHRvIGluaXQgY29ubmVjdG9yIGJlZm9yZSBwbGF0Zm9ybSBhdHRhY2hl ZCAoS3J6eXN6dG9mKQo+PiAtIEtlZXAgY29kZSBzdHlsZSBubyBjaGFuZ2VzIHdpdGggdGhlIHBy ZXZpb3VzIGV4eW5vc19kcF9jb2RlLmMgaW4gdGhpcwo+PiAgICBwYXRjaCwgYW5kIHVwZGF0ZSBj b21taXQgbWVzc2FnZSBhYm91dCB0aGUgbmV3IGV4cG9ydCBzeW1ib2wgKEtyenlzenRvZikKPj4g LSBHYXRoZXIgdGhlIGRldmljZSB0eXBlIHBhdGNoICh2NCAxMS8xNikgaW50byB0aGlzIG9uZS4g KEtyenlzenRvZikKPj4gLSBsZWF2ZSBvdXQgdGhlIGNvbm5lY3RvciByZWdpc3RyYXRpb24gdG8g YW5hbG9naXggcGxhdGZvcm0gZHJpdmVyLiAoVGhpZXJyeSkKPj4gLSBSZXNlcXVlbmNlIHRoaXMg cGF0Y2ggYWZ0ZXIgYW5hbG9naXhfZHAgZHJpdmVyIGhhdmUgYmVlbiBzcGxpdAo+PiAgICBmcm9t IGV4eW5vc19kcCBjb2RlLCBhbmQgcmVwaHJhc2UgcmVhc29uYWJsZSBjb21taXQgbWVzc2FnZSwg YW5kCj4+ICAgIHJlbW92ZSBzb21lIGNvbnRyb3ZlcnNpYWwgc3R5bGUgKEtyenlzenRvZikKPj4g ICAgICAtCQlhbmFsb2dpeF9kcF93cml0ZV9ieXRlX3RvX2RwY2QoCj4+ICAgICAgLSAJCQkJZHAs IERQX1RFU1RfUkVTUE9OU0UsCj4+ICAgICAgKwkJYW5hbG9naXhfZHBfd3JpdGVfYnl0ZV90b19k cGNkKGRwLAo+PiAgICAgICsJCQkJRFBfVEVTVF9SRVNQT05TRSwKPj4gCQkJCURQX1RFU1RfRURJ RF9DSEVDS1NVTV9XUklURSk7Cj4+IC0gU3dpdGNoIHZpZGVvIHRpbWluZyB0eXBlIHRvICJ1MzIi LCBzbyBkcml2ZXIgY291bGQgdXNlICJvZl9wcm9wZXJ0eV9yZWFkX3UzMiIKPj4gICAgdG8gZ2V0 IHRoZSBiYWNrd29yZCB0aW1pbmcgdmFsdWVzLiBLcnp5c3p0b2Ygc3VnZ2VzdCBtZSB0aGF0IGRy aXZlciBjb3VsZCB1c2UKPj4gICAgdGhlICJvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wiIHRvIGdldCBi YWNrd29yZCB0aW1pbmcgdmFsdWVzLCBidXQgdGhhdCBpbnRlcmZhY3MKPj4gICAgd291bGQgbW9k aWZ5IHRoZSBvcmlnaW5hbCBkcm1fZGlzcGxheV9tb2RlIHRpbWluZyBkaXJlY3RseSAod2hldGhl ciB0aG9zZQo+PiAgICBwcm9wZXJ0aWVzIGV4aXN0cyBvciBub3QpLgo+PiAtIENvcnJlY3QgdGhl IG1pc3NwZWxsIGluIGNvbW1pdCBtZXNzYWdlLiAoS3J6eXN6dG9mKQo+PiAtIFJlbW92ZSB0aGUg ZW1wdHkgbGluZSBhdCB0aGUgZW5kIG9mIGRvY3VtZW50LCBhbmQgY29ycmVjdCB0aGUgZW5kcG9p bnQKPj4gICAgbnVtYmVycyBpbiB0aGUgZXhhbXBsZSBEVCBub2RlLCBhbmQgcmVtb3ZlIHRoZSBy ZWd1bGF0b3IgaW9tdXggc2V0dGluZwo+PiAgICBpbiBkcml2ZXIgY29kZSB3aGlsZSB1c2luZyB0 aGUgcGluY3RsIGluIGRldmljZXRyZWUgaW5zdGVhZC4gKEhlaWtvKQo+PiAtIEFkZCBkZXZpY2Ug dHlwZSBkZWNsYXJlZCwgY2F1c2UgdGhlIHByZXZpb3VzICJwbGF0Zm9ybSBkZXZpY2UgdHlwZQo+ PiAgICBzdXBwb3J0ICh2NCAxMS8xNikiIGFscmVhZHkgbWVyZ2UgaW50byAodjUgMDIvMTQpLgo+ PiAtIEltcGxlbWVudCBjb25uZWN0b3IgcmVnaXN0cmF0aW9uIGNvZGUuIChUaGllcnJ5KQo+PiAt IFNwbGl0IGJpbmRpbmcgZG9jJ3MgZnJvbSBkcml2ZXIgY2hhbmdlcy4gKFJvYikKPj4gLSBBZGQg ZURQIGhvdHBsdWcgcGluY3RybCBwcm9wZXJ0eS4gKEhlaWtvKQo+Pgo+PiBDaGFuZ2VzIGluIHY0 Ogo+PiAtIFVwZGF0ZSAiYW5hbG9naXgsaHBkLWdwaW9zIiB0byAiaHBkLWdwaW9zIiBEVCBwcm9w ZXJ5LiAoUm9iKQo+PiAtIFJlbmFtZSAiYW5hbG9naXhfZHAtZXh5bm9zLmMiIGZpbGUgbmFtZSB0 byAiZXh5bm9zX2RwLmMiIChKaW5nb28pCj4+IC0gQ3JlYXRlIGEgc2VwYXJhdGUgZm9sZGVyIGZv ciBhbmFsb2dpeCBjb2RlIGluIGJyaWRnZS8gKEFyY2hpdCkKPj4gLSBVcGRhdGUgY29tbWl0IG1l c3NhZ2UgbW9yZSByZWFkYWJsZS4gKEppbmdvbykKPj4gLSBBZGp1c3QgdGhlIG9yZGVyIGZyb20g MDUgdG8gMDQKPj4gLSBQcm92aWRlIGJhY2t3b3JkIGNvbXBhdGliaWxpdHkgd2l0aCBzYW1zdW5n LiAoS3J6eXN6dG9mKQo+PiAtIFNwbGl0IGFsbCBEVFMgY2hhbmdlcywgYW5kIHByb3ZpZGUgYmFj a3dhcmQgY29tcGF0aWJpbGl0eS4gTWFyayBvbGQKPj4gICAgcHJvcGVydGllcyBhcyBkZXByZWNh dGVkIGJ1dCBzdGlsbCBzdXBwb3J0IHRoZW0uIChLcnp5c3p0b2YpCj4+IC0gVXBkYXRlICJhbmFs b2dpeCxocGQtZ3BpbyIgdG8gImhwZC1ncGlvcyIgcHJvcCBuYW1lLiAoUm9iKQo+PiAtIERlcHJl Y2F0ZWQgc29tZSBwcm9wZXJ0aWVzIHdoaWNoIGNvdWxkIHBhcnNlZCBmcm9tIEVkaWQvTW9kZS9E UENELiAoVGhpZXJyeSkKPj4gICAgICAiYW5hbG9naXgsY29sb3Itc3BhY2UiICYgImFuYWxvZ2l4 LGNvbG9yLWRlcHRoIiAgICYKPj4gICAgICAiYW5hbG9naXgsbGluay1yYXRlIiAgICYgImFuYWxv Z2l4LGxhbmUtY291bnQiICAgICYKPj4gICAgICAiYW5hbG9naXgseWNiY3ItY29lZmYiICYgImFu YWxvZ2l4LGR5bmFtaWMtcmFuZ2UiICYKPj4gICAgICAidnN5bmMtYWN0aXZlLWhpZ2giICAgICYg ImhzeW5jLWFjdGl2ZS1oaWdoIiAgICAgICYgImludGVybGFjZXMiCj4+IC0gU2VwYXJhdGUgYWxs IERUUyBjaGFuZ2VzIHRvIGEgc2VwYXJhdGUgcGF0Y2guIChLcnp5c3p0b2YpCj4+IC0gUmVtb3Zl IHNvbWUgZGVwcmVjYXRlZCBEVCBwcm9wZXJ0aWVzIGluIHJvY2tjaGlwIGRwIGRvY3VtZW50Lgo+ PiAtIFNlcHJhdGUgdGhlIGxpbmstcmF0ZSBhbmQgbGFuZS1jb3VudCBsaW1pdCBvdXQgd2l0aCB0 aGUgZGV2aWNlX3R5cGUKPj4gICAgZmxhZy4gKFRoaWVycnkpCj4+IC0gVGFrZSBKaW5nb28gc3Vn Z2VzdCwgYWRkIGNvbW1pdCBtZXNzYWdlcy4KPj4gLSBDYWxsIGRybV9wYW5lbF9wcmVwYXJlKCkg aW4gLmdldF9tb2RlcyBmdW5jdGlvbiwgZW5zdXJlIHBhbmVsIHNob3VsZAo+PiAgICBwb3dlciBv biBiZWZvcmUgZHJpdmVyIHRyeSB0byByZWFkIGVkaWQgbWVzc2FnZS4KPj4KPj4gQ2hhbmdlcyBp biB2MzoKPj4gLSBNb3ZlIGV4eW5vcydzIHZpZGVvX3RpbWluZyBjb2RlIHRvIGFuYWxvZ2l4X2Rw LWV4eW5vcyBwbGF0Zm9ybSBkcml2ZXIsCj4+ICAgIGFkZCBnZXRfbW9kZXMgbWV0aG9kIHRvIHN0 cnVjdCBhbmFsb2dpeF9kcF9wbGF0X2RhdGEuIChUaGllcnJ5KQo+PiAtIFJlbmFtZSBzb21lICJz YW1zdW5nKiIgZHRzIHByb3BlcnkgdG8gImFuYWxvZ2l4KiIuIChIZWlrbykKPj4gLSBUaGUgbGlu a19yYXRlIGFuZCBsYW5lX2NvdW50IHNob3VsZG4ndCBjb25maWcgdG8gdGhlIERUIHByb3BlcnR5 IHZhbHVlCj4+ICAgIGRpcmVjdGx5LCBidXQgd2UgY2FuIHRha2UgdGhvc2UgYXMgaGFyZHdhcmUg bGltaXRlLiBGb3IgZXhhbXBsZSwgUkszMjg4Cj4+ICAgIG9ubHkgc3VwcG9ydCA0IHBoeXNpY2Fs IGxhbmVzIG9mIDIuNy8xLjYyIEdicHMvbGFuZSwgc28gRFQgcHJvcGVydHkgd291bGQKPj4gICAg bGlrZSAibGluay1yYXRlID0gMHgwYSIgImxhbmUtY291bnQgPSA0Ii4gKFRoaWVycnkpCj4+IC0g RHluYW1pYyBwYXJzZSB2aWRlbyB0aW1pbmcgaW5mbyBmcm9tIHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlIGFuZAo+PiAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mby4gKFRoaWVycnkpCj4+IC0gQWRk IGRldmljZXRyZWUgYmluZGluZyBkb2N1bWVudHMuIChIZWlrbykKPj4gLSBSZW1vdmUgc3luYyBw b2wgJiBjb2xvcmltZXRyeSBwcm9wZXJpZXMgZnJvbSB0aGUgbmV3IGFuYWxvZ2l4IGRwIGRyaXZl cgo+PiAgICBkZXZpY2V0cmVlIGJpbmRpbmcuIChUaGllcnJ5KQo+PiAtIFVwZGF0ZSB0aGUgZXhp c3QgZXh5bm9zIGR0c2kgZmlsZSB3aXRoIHRoZSBsYXRlc3QgRFAgRFQgcHJvcGVyaWVzLgo+PiAt IExlYXZlICJzY2xrX2VkcF8yNG0iIHRvIHJvY2tjaGlwIGRwIHBoeSBkcml2ZXIgd2hpY2ggbmFt ZSB0byAiMjRtIiwKPj4gICAgYW5kIGxlYXZlICJzY2xrX2VkcCIgdG8gYW5hbG9naXggZHAgY29y ZSBkcml2ZXIgd2hpY2ggbmFtZSB0byAiZHAiLAo+PiAgICBhbmQgbGVhdmUgInBjbGtfZWRwIiB0 byByb2NrY2hpcCBkcCBwbGF0Zm9ybSBkcml2ZXIgd2hpY2ggbmFtZSB0bwo+PiAgICAicGNsayIu IChUaGllcnJ5ICYgSGVpa28pCj4+IC0gQWRkIGRldmljZXRyZWUgYmluZGluZyBkb2N1bWVudC4g KEhlaWtvKQo+PiAtIFJlbW92ZSAicm9ja2NoaXAscGFuZWwiIERUIHByb3BlcnR5LCB0YWtlIHVz ZSBvZiByZW1vdGUgcG9pbnQgdG8gZ2V0IHBhbmVsCj4+ICAgIG5vZGUuIChIZWlrbykKPj4gLSBB ZGQgdGhlIG5ldyBmdW5jdGlvbiBwb2ludCBkcF9wbGF0ZGF0YS0+Z2V0X21vZGVzKCkgaW5pdC4K Pj4gLSBBZGQgImFuYWxvZ2l4LG5lZWQtZm9yY2UtaHBkIiB0byBpbmRpY2F0ZSB3aGV0aGVyIGRy aXZlciBuZWVkIGZvY2UKPj4gICAgaHBkIHdoZW4gaHBkIGRldGVjdCBmYWlsZWQuCj4+IC0gbW92 ZSBkcCBocGQgZGV0ZWN0IHRvIGNvbm5lY3RvciBkZXRlY3QgZnVuY3Rpb24uCj4+IC0gQWRkIGVk aWQgbW9kZXMgcGFyc2Ugc3VwcG9ydAo+Pgo+PiBDaGFuZ2VzIGluIHYyOgo+PiAtIFJlbW92ZSBu ZXcgY29weXJpZ2h0IChKaW5nb28pCj4+IC0gRml4IGNvbXBpbGVkIGZhaWxlZCBkdWUgdG8gYW5h bG9naXhfZHBfZGV2aWNlIG1pc3NwZWxsCj4+IC0gSW1wcm92ZWQgY29tbWl0IG1lc3NhZ2UgbW9y ZSByZWFkYWJsZSwgYW5kIGF2b2lkIHVzaW5nIHNvbWUKPj4gICAgdW5jb21tb24gc3R5bGUgbGlr ZSBiZWxsb3c6IChKb2UgUHJlY2hlcykKPj4gICAgICAtICByZXR2YWwgPSBleHlub3NfZHBfcmVh ZF9ieXRlc19mcm9tX2kyYyguLi4KPj4gICAgCQkJCSAgLi4uKTsKPj4gICAgICArICByZXR2YWwg PQo+PiAgICAgICsgIGV4eW5vc19kcF9yZWFkX2J5dGVzX2Zyb21faTJjKC4uLi4uLik7Cj4+IC0g R2V0IHBhbmVsIG5vZGUgd2l0aCByZW1vdGUtZW5kcG9pbnQgbWV0aG9kLCBhbmQgY3JlYXRlIGRl dmljZXRyZWUgYmluZGluZwo+PiAgICBmb3IgZHJpdmVyLiAoSGVpa28pCj4+IC0gUmVtb3ZlIHRo ZSBjbG9jayBlbmFibGUvZGlzYmFsZSB3aXRoICJzY2xrX2VkcCIgJiAic2Nsa19lZHBfMjRtIiwK Pj4gICAgbGVhdmUgdGhvc2UgY2xvY2sgdG8gcm9ja2NoaXAgZHAgcGh5IGRyaXZlci4KPj4gLSBG aXggY29tcGlsZSBmYWlsZWQgZHV0IHRvIHBoeV9wZF9hZGRyIHZhcmlhYmxlIG1pc3NwZWxsIGVy cm9yCj4+Cj4+IEhlaWtvIFN0dWVibmVyICgyKToKPj4gICAgZHJtL2V4eW5vczogZHA6IHJlbmFt ZSBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBkcml2ZXIgcGFydAo+PiAgICBkcm06IGJyaWRnZTog YW5hbG9naXgvZHA6IHJlbmFtZSByZWdpc3RlciBjb25zdGFudHMKPj4KPj4gWWFraXIgWWFuZyAo MTUpOgo+PiAgICBkcm06IGJyaWRnZTogYW5hbG9naXgvZHA6IHNwbGl0IGV4eW5vcyBkcCBkcml2 ZXIgdG8gYnJpZGdlIGRpcmVjdG9yeQo+PiAgICBkcm06IGJyaWRnZTogYW5hbG9naXgvZHA6IGZp eCBzb21lIG9idmlvdXMgY29kZSBzdHlsZQo+PiAgICBkcm06IGJyaWRnZTogYW5hbG9naXgvZHA6 IHJlbW92ZSBkdXBsaWNhdGUgY29uZmlndXJhdGlvbiBvZiBsaW5rIHJhdGUKPj4gICAgICBhbmQg bGluayBjb3VudAo+PiAgICBkcm06IGJyaWRnZTogYW5hbG9naXgvZHA6IGR5bmFtaWMgcGFyc2Ug c3luY19wb2wgJiBpbnRlcmxhY2UgJgo+PiAgICAgIGR5bmFtaWNfcmFuZ2UKPj4gICAgZHQtYmlu ZGluZ3M6IGFkZCBkb2N1bWVudCBmb3IgYW5hbG9naXggZGlzcGxheSBwb3J0IGRyaXZlcgo+PiAg ICBBUk06IGR0czogZXh5bm9zL2RwOiByZW1vdmUgc29tZSBwcm9wZXJ0aWVzIHRoYXQgZGVwcmVj YXRlZCBieQo+PiAgICAgIGFuYWxvZ2l4X2RwIGRyaXZlcgo+PiAgICBkcm06IHJvY2tjaGlwOiBk cDogYWRkIHJvY2tjaGlwIHBsYXRmb3JtIGRwIGRyaXZlcgo+PiAgICBkdC1iaW5kaW5nczogYWRk IGRvY3VtZW50IGZvciByb2NrY2hpcCB2YXJpYW50IG9mIGFuYWxvZ2l4X2RwCj4+ICAgIGRybTog YnJpZGdlOiBhbmFsb2dpeC9kcDogYWRkIHNvbWUgcmszMjg4IHNwZWNpYWwgcmVnaXN0ZXJzIHNl dHRpbmcKPj4gICAgZHJtOiBicmlkZ2U6IGFuYWxvZ2l4L2RwOiBhZGQgbWF4IGxpbmsgcmF0ZSBh bmQgbGFuZSBjb3VudCBsaW1pdCBmb3IKPj4gICAgICBSSzMyODgKPj4gICAgZHJtOiBicmlkZ2U6 IGFuYWxvZ2l4L2RwOiB0cnkgZm9yY2UgaHBkIGFmdGVyIHBsdWcgaW4gbG9va3VwIGZhaWxlZAo+ PiAgICBkcm06IGJyaWRnZTogYW5hbG9naXgvZHA6IG1vdmUgaHBkIGRldGVjdCB0byBjb25uZWN0 b3IgZGV0ZWN0IGZ1bmN0aW9uCj4+ICAgIGRybTogYnJpZGdlOiBhbmFsb2dpeC9kcDogYWRkIGVk aWQgbW9kZXMgcGFyc2UgaW4gZ2V0X21vZGVzIG1ldGhvZAo+PiAgICBkcm06IGJyaWRnZTogYW5h bG9naXgvZHA6IGFkZCBwYW5lbCBwcmVwYXJlL3VucHJlcGFyZSBpbgo+PiAgICAgIHN1c3BlbmQv cmVzdW1lIHRpbWUKPj4gICAgZHJtOiBicmlkZ2U6IGFuYWxvZ2l4L2RwOiBGaXggdGhlIHBvc3Np YmxlIGRlYWQgbG9jayBpbiBicmlkZ2UgZGlzYWJsZQo+PiAgICAgIHRpbWUKPj4KPj4gICAuLi4v YmluZGluZ3MvZGlzcGxheS9icmlkZ2UvYW5hbG9naXhfZHAudHh0ICAgICAgICB8ICAgNTIgKwo+ PiAgIC4uLi9iaW5kaW5ncy9kaXNwbGF5L2V4eW5vcy9leHlub3NfZHAudHh0ICAgICAgICAgIHwg ICA5MyArLQo+PiAgIC4uLi9kaXNwbGF5L3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLnR4 dCAgICAgIHwgICA5MiArKwo+PiAgIGFyY2gvYXJtL2Jvb3QvZHRzL2V4eW5vczUyNTAtYXJuZGFs ZS5kdHMgICAgICAgICAgIHwgICAgMiAtCj4+ICAgYXJjaC9hcm0vYm9vdC9kdHMvZXh5bm9zNTI1 MC1zbWRrNTI1MC5kdHMgICAgICAgICAgfCAgICAyIC0KPj4gICBhcmNoL2FybS9ib290L2R0cy9l eHlub3M1MjUwLXNub3ctY29tbW9uLmR0c2kgICAgICB8ICAgIDQgKy0KPj4gICBhcmNoL2FybS9i b290L2R0cy9leHlub3M1MjUwLXNwcmluZy5kdHMgICAgICAgICAgICB8ICAgIDQgKy0KPj4gICBh cmNoL2FybS9ib290L2R0cy9leHlub3M1NDIwLXBlYWNoLXBpdC5kdHMgICAgICAgICB8ICAgIDQg Ky0KPj4gICBhcmNoL2FybS9ib290L2R0cy9leHlub3M1NDIwLXNtZGs1NDIwLmR0cyAgICAgICAg ICB8ICAgIDIgLQo+PiAgIGFyY2gvYXJtL2Jvb3QvZHRzL2V4eW5vczU4MDAtcGVhY2gtcGkuZHRz ICAgICAgICAgIHwgICAgMiAtCj4+ICAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnICAg ICAgICAgICAgICAgICAgICAgfCAgICAyICsKPj4gICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01h a2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9i cmlkZ2UvYW5hbG9naXgvS2NvbmZpZyAgICAgICAgICAgIHwgICAgMyArCj4+ICAgZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9NYWtlZmlsZSAgICAgICAgICAgfCAgICAxICsKPj4gICBk cml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYyB8IDE0MzAg KysrKysrKysrKysrKysrKysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9h bmFsb2dpeF9kcF9jb3JlLmggfCAgMjgxICsrKysKPj4gICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdl L2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX3JlZy5jICB8IDEzMjAgKysrKysrKysrKysrKysrKysKPj4g ICAuLi4vYW5hbG9naXgvYW5hbG9naXhfZHBfcmVnLmh9ICAgICAgICAgICAgICAgICAgICB8ICAy NzAgKystLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvS2NvbmZpZyAgICAgICAgICAgICAg ICAgICAgIHwgICAgMyArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvTWFrZWZpbGUgICAg ICAgICAgICAgICAgICAgIHwgICAgMiArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RwLmMgICAgICAgICAgICAgICAgIHwgIDMyNCArKysrKwo+PiAgIGRyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2RwX2NvcmUuYyAgICAgICAgICAgIHwgMTUxMCAtLS0tLS0tLS0tLS0t LS0tLS0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RwX2NvcmUuaCAgICAg ICAgICAgIHwgIDI4MiAtLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHBf cmVnLmMgICAgICAgICAgICAgfCAxMjYzIC0tLS0tLS0tLS0tLS0tLS0KPj4gICBkcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvS2NvbmZpZyAgICAgICAgICAgICAgICAgICB8ICAgIDkgKwo+PiAgIGRy aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAgMSAr Cj4+ICAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMgICAg fCAgMzg0ICsrKysrCj4+ICAgaW5jbHVkZS9kcm0vYnJpZGdlL2FuYWxvZ2l4X2RwLmggICAgICAg ICAgICAgICAgICAgfCAgIDQxICsKPj4gICAyOCBmaWxlcyBjaGFuZ2VkLCA0MTE1IGluc2VydGlv bnMoKyksIDMyNjkgZGVsZXRpb25zKC0pCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50 YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2JyaWRnZS9hbmFsb2dpeF9kcC50eHQK Pj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L2Rpc3BsYXkvcm9ja2NoaXAvYW5hbG9naXhfZHAtcm9ja2NoaXAudHh0Cj4+ICAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvS2NvbmZpZwo+PiAgIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L01ha2VmaWxl Cj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgv YW5hbG9naXhfZHBfY29yZS5jCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oCj4+ICAgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfcmVnLmMKPj4g ICByZW5hbWUgZHJpdmVycy9ncHUvZHJtL3tleHlub3MvZXh5bm9zX2RwX3JlZy5oID0+IGJyaWRn ZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9yZWcuaH0gKDYyJSkKPj4gICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHAuYwo+PiAgIGRlbGV0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcF9jb3JlLmMKPj4gICBkZWxldGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHBfY29yZS5oCj4+ICAg ZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RwX3JlZy5j Cj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9hbmFsb2dp eF9kcC1yb2NrY2hpcC5jCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJtL2JyaWRn ZS9hbmFsb2dpeF9kcC5oCj4+Cj4+IC0tIAo+PiAxLjkuMQo+Pgo+Pgo+PiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBkcmktZGV2ZWwgbWFpbGluZyBs aXN0Cj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: ykk@rock-chips.com (Yakir Yang) Date: Tue, 5 Apr 2016 10:06:06 +0800 Subject: [PATCH v14 0/17] Add Analogix Core Display Port Driver In-Reply-To: <20160331101535.GZ2510@phenom.ffwll.local> References: <1455534485-1154-1-git-send-email-ykk@rock-chips.com> <20160331101535.GZ2510@phenom.ffwll.local> Message-ID: <57031D8E.1020903@rock-chips.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Daniel, On 03/31/2016 06:15 PM, Daniel Vetter wrote: > On Mon, Feb 15, 2016 at 07:08:05PM +0800, Yakir Yang wrote: >> Hi all, >> >> The Samsung Exynos eDP controller and Rockchip RK3288 eDP 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 >> >> But there are still three light registers setting different between >> exynos and rk3288. >> 1. RK3288 have five special pll registers which not indicate 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). >> >> Due to Mark Yao have introduced the ATOMIC support to Rockchip drm, so it's >> okay to use the ATOMIC helpers functions in connector_funcs. No need to splict >> the connector init to platform driver anymore, and this is the biggest change >> since version 11. >> >> This v14 didn't have lots of new changes which seems not the correct time to >> upgrade the version number, but I have changed ordering of patches (adding 2 >> more, and removing 2 out). Especially to prevent confusing people, so I updated >> the whole series. > So I'm jumping into this part way late, but just noticed (well Thierry > pointed this out to me) that the exynos dp driver reinvents all the dp and > dp-aux helpers we already. That's somewhat okish for a private driver (and > exynos has a reputation for that kind of stuff), but imo not ok for a > shared driver. > > Not saying this should block merging this patch, but it really needs to be > addressed. All the dp aux and edid read code in the current > exynos_dp_core/reg.c files needs to be replaced with dp helpers and the > core i2c edid reading code. > > Who's going to sign up to do this? Volunteer to that, after finish this thread, I would send new series to switch to take use of dp helper. :-D - Yakir > -Daniel > >> Thanks, >> - Yakir >> >> >> Changes in v14: >> - Rebase the new changes in imx-dp driver >> - Split up this patch into 3 parts, make this easy to review (Heiko) >> - Remove the Rockchip DP PHY to an separate thread (Heiko) >> https://patchwork.kernel.org/patch/8312701/ >> >> Changes in v13: >> - Use .enable instead of preprare/commit in encoder_helper_funcs (Heiko) >> - Fix the missing parameters with drm_encoder_init() helper function. (Heiko) >> >> Changes in v12: >> - Move the connector init to analogix_dp driver, and using ATOMIC helper (Heiko) >> - Add the ack from Jingoo >> - Remove the enum link_rate_type struct, using the marcos in drm_dp_helper.h (Jingoo) >> >> Changes in v11: >> - Uses tabs to fix the indentation issues in analogix_dp_core.h (Heiko) >> - Rename the "analogix,need-force-hpd" to common 'force-hpd' (Rob) >> - Add the ack from Rob Herring >> - Revert parts of Gustavo Padovan's changes in commit: >> drm/exynos: do not start enabling DP at bind() phase >> Add dp phy poweron function in bind time. >> - Move the panel prepare from get_modes time to bind time, and move >> the panel unprepare from bridge->disable to unbind time. (Heiko) >> >> Changes in v10: >> - Add the ack from Rob Herring >> - Correct the ROCKCHIP_ANALOGIX_DP indentation in Kconfig to tabs here (Heiko) >> - Add the ack from Rob Herring >> - Remove the surplus "plat_data" check. (Heiko) >> - switch (dp->plat_data && dp->plat_data->dev_type) { >> + switch (dp->plat_data->dev_type) { >> >> Changes in v9: >> - Document more details for 'ports' property. >> >> Changes in v8: >> - Correct the right document path of display-timing.txt (Heiko) >> - Correct the misspell of 'from' to 'frm'. (Heiko) >> - Modify the commit subject name. (Heiko) >> >> Changes in v7: >> - Back to use the of_property_read_bool() interfacs to provoid backward >> compatibility of "hsync-active-high" "vsync-active-high" "interlaced" >> to avoid -EOVERFLOW error (Krzysztof) >> >> Changes in v6: >> - Fix the Kconfig recursive dependency (Javier) >> - Fix Peach Pit hpd property name error: >> - hpd-gpio = <&gpx2 6 0>; >> + hpd-gpios = <&gpx2 6 0>; >> >> Changes in v5: >> - Correct the check condition of gpio_is_valid when driver try to get >> the "hpd-gpios" DT propery. (Heiko) >> - Move the platform attach callback in the front of core driver bridge >> attch function. Cause once platform failed at attach, core driver should >> still failed, so no need to init connector before platform attached (Krzysztof) >> - Keep code style no changes with the previous exynos_dp_code.c in this >> patch, and update commit message about the new export symbol (Krzysztof) >> - Gather the device type patch (v4 11/16) into this one. (Krzysztof) >> - leave out the connector registration to analogix platform driver. (Thierry) >> - Resequence this patch after analogix_dp driver have been split >> from exynos_dp code, and rephrase reasonable commit message, and >> remove some controversial style (Krzysztof) >> - analogix_dp_write_byte_to_dpcd( >> - dp, DP_TEST_RESPONSE, >> + analogix_dp_write_byte_to_dpcd(dp, >> + DP_TEST_RESPONSE, >> DP_TEST_EDID_CHECKSUM_WRITE); >> - Switch video timing type to "u32", so driver could use "of_property_read_u32" >> to get the backword timing values. Krzysztof suggest me that driver could use >> the "of_property_read_bool" to get backword timing values, but that interfacs >> would modify the original drm_display_mode timing directly (whether those >> properties exists or not). >> - Correct the misspell in commit message. (Krzysztof) >> - Remove the empty line at the end of document, and correct the endpoint >> numbers in the example DT node, and remove the regulator iomux setting >> in driver code while using the pinctl in devicetree instead. (Heiko) >> - Add device type declared, cause the previous "platform device type >> support (v4 11/16)" already merge into (v5 02/14). >> - Implement connector registration code. (Thierry) >> - Split binding doc's from driver changes. (Rob) >> - Add eDP hotplug pinctrl property. (Heiko) >> >> Changes in v4: >> - Update "analogix,hpd-gpios" to "hpd-gpios" DT propery. (Rob) >> - Rename "analogix_dp-exynos.c" file name to "exynos_dp.c" (Jingoo) >> - Create a separate folder for analogix code in bridge/ (Archit) >> - Update commit message more readable. (Jingoo) >> - Adjust the order from 05 to 04 >> - Provide backword compatibility with samsung. (Krzysztof) >> - Split all DTS changes, and provide backward compatibility. Mark old >> properties as deprecated but still support them. (Krzysztof) >> - Update "analogix,hpd-gpio" to "hpd-gpios" prop name. (Rob) >> - Deprecated some properties which could parsed from Edid/Mode/DPCD. (Thierry) >> "analogix,color-space" & "analogix,color-depth" & >> "analogix,link-rate" & "analogix,lane-count" & >> "analogix,ycbcr-coeff" & "analogix,dynamic-range" & >> "vsync-active-high" & "hsync-active-high" & "interlaces" >> - Separate all DTS changes to a separate patch. (Krzysztof) >> - Remove some deprecated DT properties in rockchip dp document. >> - Seprate the link-rate and lane-count limit out with the device_type >> flag. (Thierry) >> - Take Jingoo suggest, add commit messages. >> - Call drm_panel_prepare() in .get_modes function, ensure panel should >> power on before driver try to read edid message. >> >> Changes in v3: >> - Move exynos's video_timing code to analogix_dp-exynos platform driver, >> add get_modes method to struct analogix_dp_plat_data. (Thierry) >> - Rename some "samsung*" dts propery to "analogix*". (Heiko) >> - The link_rate and lane_count shouldn't config to the DT property value >> directly, but we can take those as hardware limite. For example, RK3288 >> only support 4 physical lanes of 2.7/1.62 Gbps/lane, so DT property would >> like "link-rate = 0x0a" "lane-count = 4". (Thierry) >> - Dynamic parse video timing info from struct drm_display_mode and >> struct drm_display_info. (Thierry) >> - Add devicetree binding documents. (Heiko) >> - Remove sync pol & colorimetry properies from the new analogix dp driver >> devicetree binding. (Thierry) >> - Update the exist exynos dtsi file with the latest DP DT properies. >> - Leave "sclk_edp_24m" to rockchip dp phy driver which name to "24m", >> and leave "sclk_edp" to analogix dp core driver which name to "dp", >> and leave "pclk_edp" to rockchip dp platform driver which name to >> "pclk". (Thierry & Heiko) >> - Add devicetree binding document. (Heiko) >> - Remove "rockchip,panel" DT property, take use of remote point to get panel >> node. (Heiko) >> - Add the new function point dp_platdata->get_modes() init. >> - Add "analogix,need-force-hpd" to indicate whether driver need foce >> hpd when hpd detect failed. >> - move dp hpd detect to connector detect function. >> - Add edid modes parse support >> >> Changes in v2: >> - Remove new copyright (Jingoo) >> - Fix compiled failed due to analogix_dp_device misspell >> - Improved commit message more readable, and avoid using some >> uncommon style like bellow: (Joe Preches) >> - retval = exynos_dp_read_bytes_from_i2c(... >> ...); >> + retval = >> + exynos_dp_read_bytes_from_i2c(......); >> - Get panel node with remote-endpoint method, and create devicetree binding >> for driver. (Heiko) >> - Remove the clock enable/disbale with "sclk_edp" & "sclk_edp_24m", >> leave those clock to rockchip dp phy driver. >> - Fix compile failed dut to phy_pd_addr variable misspell error >> >> Heiko Stuebner (2): >> drm/exynos: dp: rename implementation specific driver part >> drm: bridge: analogix/dp: rename register constants >> >> Yakir Yang (15): >> drm: bridge: analogix/dp: split exynos dp driver to bridge directory >> drm: bridge: analogix/dp: fix some obvious code style >> drm: bridge: analogix/dp: remove duplicate configuration of link rate >> and link count >> drm: bridge: analogix/dp: dynamic parse sync_pol & interlace & >> dynamic_range >> dt-bindings: add document for analogix display port driver >> ARM: dts: exynos/dp: remove some properties that deprecated by >> analogix_dp driver >> drm: rockchip: dp: add rockchip platform dp driver >> dt-bindings: add document for rockchip variant of analogix_dp >> drm: bridge: analogix/dp: add some rk3288 special registers setting >> drm: bridge: analogix/dp: add max link rate and lane count limit for >> RK3288 >> drm: bridge: analogix/dp: try force hpd after plug in lookup failed >> drm: bridge: analogix/dp: move hpd detect to connector detect function >> drm: bridge: analogix/dp: add edid modes parse in get_modes method >> drm: bridge: analogix/dp: add panel prepare/unprepare in >> suspend/resume time >> drm: bridge: analogix/dp: Fix the possible dead lock in bridge disable >> time >> >> .../bindings/display/bridge/analogix_dp.txt | 52 + >> .../bindings/display/exynos/exynos_dp.txt | 93 +- >> .../display/rockchip/analogix_dp-rockchip.txt | 92 ++ >> arch/arm/boot/dts/exynos5250-arndale.dts | 2 - >> arch/arm/boot/dts/exynos5250-smdk5250.dts | 2 - >> arch/arm/boot/dts/exynos5250-snow-common.dtsi | 4 +- >> arch/arm/boot/dts/exynos5250-spring.dts | 4 +- >> arch/arm/boot/dts/exynos5420-peach-pit.dts | 4 +- >> arch/arm/boot/dts/exynos5420-smdk5420.dts | 2 - >> arch/arm/boot/dts/exynos5800-peach-pi.dts | 2 - >> drivers/gpu/drm/bridge/Kconfig | 2 + >> drivers/gpu/drm/bridge/Makefile | 1 + >> drivers/gpu/drm/bridge/analogix/Kconfig | 3 + >> drivers/gpu/drm/bridge/analogix/Makefile | 1 + >> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 1430 ++++++++++++++++++ >> drivers/gpu/drm/bridge/analogix/analogix_dp_core.h | 281 ++++ >> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 1320 +++++++++++++++++ >> .../analogix/analogix_dp_reg.h} | 270 ++-- >> drivers/gpu/drm/exynos/Kconfig | 3 +- >> drivers/gpu/drm/exynos/Makefile | 2 +- >> drivers/gpu/drm/exynos/exynos_dp.c | 324 +++++ >> drivers/gpu/drm/exynos/exynos_dp_core.c | 1510 -------------------- >> drivers/gpu/drm/exynos/exynos_dp_core.h | 282 ---- >> drivers/gpu/drm/exynos/exynos_dp_reg.c | 1263 ---------------- >> drivers/gpu/drm/rockchip/Kconfig | 9 + >> drivers/gpu/drm/rockchip/Makefile | 1 + >> drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 384 +++++ >> include/drm/bridge/analogix_dp.h | 41 + >> 28 files changed, 4115 insertions(+), 3269 deletions(-) >> create mode 100644 Documentation/devicetree/bindings/display/bridge/analogix_dp.txt >> create mode 100644 Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt >> create mode 100644 drivers/gpu/drm/bridge/analogix/Kconfig >> create mode 100644 drivers/gpu/drm/bridge/analogix/Makefile >> create mode 100644 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c >> create mode 100644 drivers/gpu/drm/bridge/analogix/analogix_dp_core.h >> create mode 100644 drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c >> rename drivers/gpu/drm/{exynos/exynos_dp_reg.h => bridge/analogix/analogix_dp_reg.h} (62%) >> create mode 100644 drivers/gpu/drm/exynos/exynos_dp.c >> delete mode 100644 drivers/gpu/drm/exynos/exynos_dp_core.c >> delete mode 100644 drivers/gpu/drm/exynos/exynos_dp_core.h >> delete mode 100644 drivers/gpu/drm/exynos/exynos_dp_reg.c >> create mode 100644 drivers/gpu/drm/rockchip/analogix_dp-rockchip.c >> create mode 100644 include/drm/bridge/analogix_dp.h >> >> -- >> 1.9.1 >> >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel at lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel