From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Yan Subject: Re: [PATCH v7 5/7] drm: bridge/dw-hdmi: add support for multi byte register width access Date: Tue, 11 Nov 2014 22:46:39 +0800 Message-ID: <5462214F.4010504@rock-chips.com> References: <1415710229-11935-1-git-send-email-andy.yan@rock-chips.com> <1415710432-12167-1-git-send-email-andy.yan@rock-chips.com> <54621B23.1020602@imgtec.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <54621B23.1020602@imgtec.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" To: Zubair Lutfullah Kakakhel , airlied@linux.ie, heiko@sntech.de, fabio.estevam@freescale.com, rmk+kernel@arm.linux.org.uk Cc: devel@driverdev.osuosl.org, devicetree@vger.kernel.org, Dave Airlie , Arnd Bergmann , Josh Boyer , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Inki Dae , linux-rockchip@lists.infradead.org, Rob Herring , Sean Paul , Philipp Zabel , ykk@rock-chips.com, Grant Likely , djkurtz@google.com, Shawn Guo , jay.xu@rock-chips.com, Lucas Stach List-Id: devicetree@vger.kernel.org Ck9uIDIwMTTlubQxMeaciDEx5pelIDIyOjIwLCBadWJhaXIgTHV0ZnVsbGFoIEtha2FraGVsIHdy b3RlOgo+IEhpIEFuZHksCj4KPiBUaGlzIHBhdGNoIGFkZHMgdGhlIHJlZy1pby13aWR0aCBiaW5k aW5nLgo+Cj4gSGVuY2UgdGhlIGJpbmRpbmcgcGF0Y2ggc2hvdWxkIGNvbWUgYmVmb3JlIGl0Lgo+ CiAgICBkbyB5b3UgbWVhbiB0aGF0IEkgc2hvdWxkIHB1dCBkdHMgYmluZGluZyBwYXRjaAogICAg YmVmb3JlIHRoaXMgcGF0Y2g/Cj4gT24gMTEvMTEvMTQgMTI6NTMsIEFuZHkgWWFuIHdyb3RlOgo+ PiBPbiByb2NrY2hpcCByazMyODgsIG9ubHkgd29yZCgzMi1iaXQpIGFjY2Vzc2VzIGFyZQo+PiBw ZXJtaXR0ZWQgZm9yIGhkbWkgcmVnaXN0ZXJzLiAgQnl0ZSB3aWR0aCBhY2Nlc3NlcyAod3JpdGVi LAo+PiByZWFkYikgZ2VuZXJhdGUgYW4gaW1wcmVjaXNlIGV4dGVybmFsIGFib3J0Lgo+Pgo+PiBT aWduZWQtb2ZmLWJ5OiBBbmR5IFlhbiA8YW5keS55YW5Acm9jay1jaGlwcy5jb20+Cj4+Cj4+IC0t LQo+Pgo+PiAgIH0KPj4gICAKPj4gICBzdGF0aWMgdm9pZCBoZG1pX21vZGIoc3RydWN0IGR3X2hk bWkgKmhkbWksIHU4IGRhdGEsIHU4IG1hc2ssIHVuc2lnbmVkIHJlZykKPj4gQEAgLTE0OTksNiAr MTUyNywyMyBAQCBzdGF0aWMgaW50IGR3X2hkbWlfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPj4gICAJc3RydWN0IGRldmljZV9ub2Rl ICpkZGNfbm9kZTsKPj4gICAJc3RydWN0IHJlc291cmNlICppb3JlczsKPj4gICAJaW50IHJldCwg aXJxOwo+PiArCXUzMiB2YWwgPSAxOwo+PiArCj4+ICsJb2ZfcHJvcGVydHlfcmVhZF91MzIobnAs ICJyZWctaW8td2lkdGgiLCAmdmFsKTsKPj4gKwo+PiArCXN3aXRjaCAodmFsKSB7Cj4+ICsJY2Fz ZSA0Ogo+PiArCQloZG1pLT53cml0ZSA9IGR3X2hkbWlfd3JpdGVsOwo+PiArCQloZG1pLT5yZWFk ID0gZHdfaGRtaV9yZWFkbDsKPj4gKwkJYnJlYWs7Cj4+ICsJY2FzZSAxOgo+PiArCQloZG1pLT53 cml0ZSA9IGR3X2hkbWlfd3JpdGViOwo+PiArCQloZG1pLT5yZWFkID0gZHdfaGRtaV9yZWFkYjsK Pj4gKwkJYnJlYWs7Cj4+ICsJZGVmYXVsdDoKPj4gKwkJZGV2X2VycihkZXYsICJyZWctaW8td2lk dGggbXVzdCBiZSAxIG9yIDRcbiIpOwo+PiArCQlyZXR1cm4gLUVJTlZBTDsKPj4gKwl9Cj4gVGhl IGJpbmRpbmcgcGF0Y2ggc2F5cyB0aGlzIGlzIGFuIG9wdGlvbmFsIHByb3BlcnR5Lgo+IEJ1dCBo ZXJlIGlmIHVuZGVmaW5lZCBpdCByZXR1cm5zIC1FSU5WQUwuCj4KPiBJIHdvdWxkIGtlZXAgaXQg b3B0aW9uYWwgYW5kIGRlZmF1bHQgaXQgdG8gYnl0ZSBhY2Nlc3MuCiAgIGlmIHRoZSBkdHMgdW5k ZWZpbmVkIGl0LCB0aGUgdmFsIHdpbGwgYmUgMS4KICAgaWYgdGhlIGR0cyBkZWZpbmVkIG90aGVy IHZhbHVlIGV4Y2VwdCA0IGFuZCAxLCByZXR1cm4gLUVJTlZBTAo+Cj4gUmVnYXJkcywKPiBadWJh aXJMSwo+ICAgIAo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiBMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKPiBMaW51eC1yb2NrY2hpcEBsaXN0 cy5pbmZyYWRlYWQub3JnCj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1yb2NrY2hpcAo+Cj4KPgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRldmVsIG1haWxpbmcgbGlzdApkZXZlbEBsaW51eGRyaXZlcnBy b2plY3Qub3JnCmh0dHA6Ly9kcml2ZXJkZXYubGludXhkcml2ZXJwcm9qZWN0Lm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaXZlcmRldi1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751282AbaKKOrF (ORCPT ); Tue, 11 Nov 2014 09:47:05 -0500 Received: from regular1.263xmail.com ([211.150.99.138]:35678 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751086AbaKKOrD (ORCPT ); Tue, 11 Nov 2014 09:47:03 -0500 X-263anti-spam: KSV:0; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-KSVirus-check: 0 X-ABS-CHECKED: 4 X-RL-SENDER: andy.yan@rock-chips.com X-FST-TO: l.stach@pengutronix.de X-SENDER-IP: 121.15.173.1 X-LOGIN-NAME: andy.yan@rock-chips.com X-UNIQUE-TAG: X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Message-ID: <5462214F.4010504@rock-chips.com> Date: Tue, 11 Nov 2014 22:46:39 +0800 From: Andy Yan User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: Zubair Lutfullah Kakakhel , airlied@linux.ie, heiko@sntech.de, fabio.estevam@freescale.com, rmk+kernel@arm.linux.org.uk CC: devel@driverdev.osuosl.org, devicetree@vger.kernel.org, Arnd Bergmann , Josh Boyer , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Inki Dae , linux-rockchip@lists.infradead.org, Rob Herring , Sean Paul , djkurtz@google.com, Philipp Zabel , ykk@rock-chips.com, Grant Likely , Dave Airlie , Shawn Guo , jay.xu@rock-chips.com, Lucas Stach Subject: Re: [PATCH v7 5/7] drm: bridge/dw-hdmi: add support for multi byte register width access References: <1415710229-11935-1-git-send-email-andy.yan@rock-chips.com> <1415710432-12167-1-git-send-email-andy.yan@rock-chips.com> <54621B23.1020602@imgtec.com> In-Reply-To: <54621B23.1020602@imgtec.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2014年11月11日 22:20, Zubair Lutfullah Kakakhel wrote: > Hi Andy, > > This patch adds the reg-io-width binding. > > Hence the binding patch should come before it. > do you mean that I should put dts binding patch before this patch? > On 11/11/14 12:53, Andy Yan wrote: >> On rockchip rk3288, only word(32-bit) accesses are >> permitted for hdmi registers. Byte width accesses (writeb, >> readb) generate an imprecise external abort. >> >> Signed-off-by: Andy Yan >> >> --- >> >> } >> >> static void hdmi_modb(struct dw_hdmi *hdmi, u8 data, u8 mask, unsigned reg) >> @@ -1499,6 +1527,23 @@ static int dw_hdmi_bind(struct device *dev, struct device *master, void *data) >> struct device_node *ddc_node; >> struct resource *iores; >> int ret, irq; >> + u32 val = 1; >> + >> + of_property_read_u32(np, "reg-io-width", &val); >> + >> + switch (val) { >> + case 4: >> + hdmi->write = dw_hdmi_writel; >> + hdmi->read = dw_hdmi_readl; >> + break; >> + case 1: >> + hdmi->write = dw_hdmi_writeb; >> + hdmi->read = dw_hdmi_readb; >> + break; >> + default: >> + dev_err(dev, "reg-io-width must be 1 or 4\n"); >> + return -EINVAL; >> + } > The binding patch says this is an optional property. > But here if undefined it returns -EINVAL. > > I would keep it optional and default it to byte access. if the dts undefined it, the val will be 1. if the dts defined other value except 4 and 1, return -EINVAL > > Regards, > ZubairLK > > > _______________________________________________ > Linux-rockchip mailing list > Linux-rockchip@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-rockchip > > >