From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Stuebner Subject: [PATCH v4 5/6] drm/rockchip: dw_hdmi: store rockchip_hdmi reference in phy_data object Date: Mon, 10 Sep 2018 11:22:22 +0200 Message-ID: <20180910092223.1106-6-heiko@sntech.de> References: <20180910092223.1106-1-heiko@sntech.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180910092223.1106-1-heiko@sntech.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: architt@codeaurora.org, hjc@rock-chips.com, a.hajda@samsung.com Cc: Jose.Abreu@synopsys.com, algea.cao@rock-chips.com, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, Laurent.pinchart@ideasonboard.com, linux-arm-kernel@lists.infradead.org, zhengyang@rock-chips.com List-Id: linux-rockchip.vger.kernel.org V2hlbiB1c2luZyBzcGVjaWFsIHBoeSBoYW5kbGluZyBvcGVyYXRpb25zIHdlJ2xsIG9mdGVuIG5l ZWQgYWNjZXNzIHRvCnRoZSByb2NrY2hpcF9oZG1pIHN0cnVjdC4KCkFzIHRoZSBjaGlwLWRhdGEg dGhhdCBvY2N1cGllcyB0aGUgcGh5X2RhdGEgcG9pbnRlciBpbml0aWFsbHkgZ2V0cwphc3NpZ25l ZCB0byB0aGUgcm9ja2NoaXBfaGRtaSBzdHJ1Y3QsIHdlIGNhbiBub3cgcmUtdXNlIHRoaXMgcGh5 X2RhdGEKcG9pbnRlciB0byBob2xkIHRoZSByZWZlcmVuY2UgdG8gdGhlIHJvY2tjaGlwX2hkbWkg c3RydWN0IGFuZCB1c2UgdGhpcwpyZWZlcmVuY2UgbGF0ZXIgb24uCgpJbnNwaXJhdGlvbiBmb3Ig dGhpcyBjb21lcyBmcm9tIG1lc29uIGFuZCBzdW54aSBkdy1oZG1pLCB3aGljaCBhcmUgdXNpbmcK dGhlIHNhbWUgbWV0aG9kLgoKU2lnbmVkLW9mZi1ieTogSGVpa28gU3R1ZWJuZXIgPGhlaWtvQHNu dGVjaC5kZT4KVGVzdGVkLWJ5OiBSb2JpbiBNdXJwaHkgPHJvYmluLm11cnBoeUBhcm0uY29tPgoK Y2hhbmdlcyBpbiB2MzoKLSByZXdvcmQgY29tbWl0IG1lc3NhZ2UKLS0tCiBkcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFu Z2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYyBiL2RyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9kd19oZG1pLXJvY2tjaGlwLmMKaW5kZXggNTdlNzZkZmQ1ZjZkLi4xOWYwMDJmYTBh MDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kd19oZG1pLXJvY2tjaGlw LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYwpAQCAt MzM1LDcgKzMzNSw3IEBAIHN0YXRpYyBpbnQgZHdfaGRtaV9yb2NrY2hpcF9iaW5kKHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAogCQkJCSB2b2lkICpkYXRhKQogewog CXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2UoZGV2KTsK LQljb25zdCBzdHJ1Y3QgZHdfaGRtaV9wbGF0X2RhdGEgKnBsYXRfZGF0YTsKKwlzdHJ1Y3QgZHdf aGRtaV9wbGF0X2RhdGEgKnBsYXRfZGF0YTsKIAljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICpt YXRjaDsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gZGF0YTsKIAlzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXI7CkBAIC0zNTAsOSArMzUwLDE0IEBAIHN0YXRpYyBpbnQgZHdfaGRtaV9yb2Nr Y2hpcF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAogCQly ZXR1cm4gLUVOT01FTTsKIAogCW1hdGNoID0gb2ZfbWF0Y2hfbm9kZShkd19oZG1pX3JvY2tjaGlw X2R0X2lkcywgcGRldi0+ZGV2Lm9mX25vZGUpOwotCXBsYXRfZGF0YSA9IG1hdGNoLT5kYXRhOwor CXBsYXRfZGF0YSA9IGRldm1fa21lbWR1cCgmcGRldi0+ZGV2LCBtYXRjaC0+ZGF0YSwKKwkJCQkJ ICAgICBzaXplb2YoKnBsYXRfZGF0YSksIEdGUF9LRVJORUwpOworCWlmICghcGxhdF9kYXRhKQor CQlyZXR1cm4gLUVOT01FTTsKKwogCWhkbWktPmRldiA9ICZwZGV2LT5kZXY7CiAJaGRtaS0+Y2hp cF9kYXRhID0gcGxhdF9kYXRhLT5waHlfZGF0YTsKKwlwbGF0X2RhdGEtPnBoeV9kYXRhID0gaGRt aTsKIAllbmNvZGVyID0gJmhkbWktPmVuY29kZXI7CiAKIAllbmNvZGVyLT5wb3NzaWJsZV9jcnRj cyA9IGRybV9vZl9maW5kX3Bvc3NpYmxlX2NydGNzKGRybSwgZGV2LT5vZl9ub2RlKTsKLS0gCjIu MTcuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: heiko@sntech.de (Heiko Stuebner) Date: Mon, 10 Sep 2018 11:22:22 +0200 Subject: [PATCH v4 5/6] drm/rockchip: dw_hdmi: store rockchip_hdmi reference in phy_data object In-Reply-To: <20180910092223.1106-1-heiko@sntech.de> References: <20180910092223.1106-1-heiko@sntech.de> Message-ID: <20180910092223.1106-6-heiko@sntech.de> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org When using special phy handling operations we'll often need access to the rockchip_hdmi struct. As the chip-data that occupies the phy_data pointer initially gets assigned to the rockchip_hdmi struct, we can now re-use this phy_data pointer to hold the reference to the rockchip_hdmi struct and use this reference later on. Inspiration for this comes from meson and sunxi dw-hdmi, which are using the same method. Signed-off-by: Heiko Stuebner Tested-by: Robin Murphy changes in v3: - reword commit message --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c index 57e76dfd5f6d..19f002fa0a09 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -335,7 +335,7 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master, void *data) { struct platform_device *pdev = to_platform_device(dev); - const struct dw_hdmi_plat_data *plat_data; + struct dw_hdmi_plat_data *plat_data; const struct of_device_id *match; struct drm_device *drm = data; struct drm_encoder *encoder; @@ -350,9 +350,14 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master, return -ENOMEM; match = of_match_node(dw_hdmi_rockchip_dt_ids, pdev->dev.of_node); - plat_data = match->data; + plat_data = devm_kmemdup(&pdev->dev, match->data, + sizeof(*plat_data), GFP_KERNEL); + if (!plat_data) + return -ENOMEM; + hdmi->dev = &pdev->dev; hdmi->chip_data = plat_data->phy_data; + plat_data->phy_data = hdmi; encoder = &hdmi->encoder; encoder->possible_crtcs = drm_of_find_possible_crtcs(drm, dev->of_node); -- 2.17.0