From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 5/9] drm/exynos/crtc: fix framebuffer reference sequence Date: Fri, 12 Sep 2014 16:03:38 +0200 Message-ID: <20140912140338.GF4740@phenom.ffwll.local> References: <1410268573-2297-1-git-send-email-a.hajda@samsung.com> <1410268573-2297-6-git-send-email-a.hajda@samsung.com> <5412B02A.6040609@samsung.com> <20140912085710.GD4740@phenom.ffwll.local> <5412BC8D.2030007@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <5412BC8D.2030007@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Andrzej Hajda Cc: "moderated list:ARM/S5P EXYNOS AR..." , Seung-Woo Kim , open list , dri-devel@lists.freedesktop.org, Kyungmin Park , Marek Szyprowski List-Id: linux-samsung-soc@vger.kernel.org T24gRnJpLCBTZXAgMTIsIDIwMTQgYXQgMTE6Mjc6NDFBTSArMDIwMCwgQW5kcnplaiBIYWpkYSB3 cm90ZToKPiBPbiAwOS8xMi8yMDE0IDEwOjU3IEFNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4g T24gRnJpLCBTZXAgMTIsIDIwMTQgYXQgMDU6MzQ6NTBQTSArMDkwMCwgSW5raSBEYWUgd3JvdGU6 Cj4gPj4gSGkgQW5kcnplaiwKPiA+Pgo+ID4+IE9uIDIwMTTrhYQgMDnsm5QgMDnsnbwgMjI6MTYs IEFuZHJ6ZWogSGFqZGEgd3JvdGU6Cj4gPj4+IEFkZGluZyByZWZlcmVuY2UgdG8gZnJhbWVidWZm ZXIgc2hvdWxkIGJlIGFjY29tcGFuaWVkIHdpdGggcmVtb3ZpbmcKPiA+Pj4gcmVmZXJlbmNlIHRv IG9sZCBmcmFtZWJ1ZmZlciBhc3NpZ25lZCB0byB0aGUgcGxhbmUuCj4gPj4+IFRoaXMgcGF0Y2gg cmVtb3ZlcyBmb2xsb3dpbmcgd2FybmluZzoKPiA+Pj4KPiA+Pj4gWyAgIDk1LjAzODAxN10gV0FS TklORzogQ1BVOiAxIFBJRDogMzA2NyBhdCBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYzo1MTE1 IGRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKzB4MjU4LzB4MjY4KCkKPiA+Pj4gWyAgIDk1LjA0ODA4 Nl0gTW9kdWxlcyBsaW5rZWQgaW46Cj4gPj4+IFsgICA5NS4wNTE0MzBdIENQVTogMSBQSUQ6IDMw NjcgQ29tbTogYmFzaCBUYWludGVkOiBHICAgICAgICBXICAgICAgMy4xNi4wLTExMzU1LWc3YTZl Y2E1LWRpcnR5ICMzMDE1Cj4gPj4+IFsgICA5NS4wNjAwNThdIFs8YzAwMTNlOTA+XSAodW53aW5k X2JhY2t0cmFjZSkgZnJvbSBbPGMwMDExMTI4Pl0gKHNob3dfc3RhY2srMHgxMC8weDE0KQo+ID4+ PiBbICAgOTUuMDY3NzY2XSBbPGMwMDExMTI4Pl0gKHNob3dfc3RhY2spIGZyb20gWzxjMDRhNWRj ND5dIChkdW1wX3N0YWNrKzB4NzAvMHhiYykKPiA+Pj4gWyAgIDk1LjA3NDk1M10gWzxjMDRhNWRj ND5dIChkdW1wX3N0YWNrKSBmcm9tIFs8YzAwMjE3ODQ+XSAod2Fybl9zbG93cGF0aF9jb21tb24r MHg2NC8weDg4KQo+ID4+PiBbICAgOTUuMDgzMDA1XSBbPGMwMDIxNzg0Pl0gKHdhcm5fc2xvd3Bh dGhfY29tbW9uKSBmcm9tIFs8YzAwMjE3YzQ+XSAod2Fybl9zbG93cGF0aF9udWxsKzB4MWMvMHgy NCkKPiA+Pj4gWyAgIDk1LjA5MTc4MF0gWzxjMDAyMTdjND5dICh3YXJuX3Nsb3dwYXRoX251bGwp IGZyb20gWzxjMDI3NWZhMD5dIChkcm1fbW9kZV9jb25maWdfY2xlYW51cCsweDI1OC8weDI2OCkK PiA+Pj4gWyAgIDk1LjEwMDk4M10gWzxjMDI3NWZhMD5dIChkcm1fbW9kZV9jb25maWdfY2xlYW51 cCkgZnJvbSBbPGMwMjgxNzI0Pl0gKGV4eW5vc19kcm1fdW5sb2FkKzB4MzgvMHg1MCkKPiA+Pj4g WyAgIDk1LjEwOTkxNV0gWzxjMDI4MTcyND5dIChleHlub3NfZHJtX3VubG9hZCkgZnJvbSBbPGMw MjZlMjQ4Pl0gKGRybV9kZXZfdW5yZWdpc3RlcisweDI0LzB4OTgpCj4gPj4+IFsgICA5NS4xMTg0 MTRdIFs8YzAyNmUyNDg+XSAoZHJtX2Rldl91bnJlZ2lzdGVyKSBmcm9tIFs8YzAyNmVjYjA+XSAo ZHJtX3B1dF9kZXYrMHgyOC8weDY0KQo+ID4+PiBbICAgOTUuMTI2NDEyXSBbPGMwMjZlY2IwPl0g KGRybV9wdXRfZGV2KSBmcm9tIFs8YzAyOTQ3YzQ+XSAodGFrZV9kb3duX21hc3RlcisweDI0LzB4 NDQpCj4gPj4+IFsgICA5NS4xMzQyMThdIFs8YzAyOTQ3YzQ+XSAodGFrZV9kb3duX21hc3Rlcikg ZnJvbSBbPGMwMjk0ODcwPl0gKGNvbXBvbmVudF9kZWwrMHg4Yy8weGM4KQo+ID4+PiBbICAgOTUu MTQyMjAxXSBbPGMwMjk0ODcwPl0gKGNvbXBvbmVudF9kZWwpIGZyb20gWzxjMDI4NmMxMD5dIChl eHlub3NfZHNpX3JlbW92ZSsweDE4LzB4MmMpCj4gPj4+IFsgICA5NS4xNTAyOTRdIFs8YzAyODZj MTA+XSAoZXh5bm9zX2RzaV9yZW1vdmUpIGZyb20gWzxjMDI5OWUwND5dIChwbGF0Zm9ybV9kcnZf cmVtb3ZlKzB4MTgvMHgxYykKPiA+Pj4gWyAgIDk1LjE1ODg3Ml0gWzxjMDI5OWUwND5dIChwbGF0 Zm9ybV9kcnZfcmVtb3ZlKSBmcm9tIFs8YzAyOTg3YTQ+XSAoX19kZXZpY2VfcmVsZWFzZV9kcml2 ZXIrMHg3MC8weGM0KQo+ID4+PiBbICAgOTUuMTY3OTgxXSBbPGMwMjk4N2E0Pl0gKF9fZGV2aWNl X3JlbGVhc2VfZHJpdmVyKSBmcm9tIFs8YzAyOTg4MTg+XSAoZGV2aWNlX3JlbGVhc2VfZHJpdmVy KzB4MjAvMHgyYykKPiA+Pj4gWyAgIDk1LjE3NzI2OF0gWzxjMDI5ODgxOD5dIChkZXZpY2VfcmVs ZWFzZV9kcml2ZXIpIGZyb20gWzxjMDI5NzlkMD5dICh1bmJpbmRfc3RvcmUrMHg1Yy8weDk0KQo+ ID4+PiBbICAgOTUuMTg1NTk3XSBbPGMwMjk3OWQwPl0gKHVuYmluZF9zdG9yZSkgZnJvbSBbPGMw Mjk3Mjc4Pl0gKGRydl9hdHRyX3N0b3JlKzB4MjAvMHgyYykKPiA+Pj4gWyAgIDk1LjE5MzMyM10g WzxjMDI5NzI3OD5dIChkcnZfYXR0cl9zdG9yZSkgZnJvbSBbPGMwMTJhYTkwPl0gKHN5c2ZzX2tm X3dyaXRlKzB4NGMvMHg1MCkKPiA+Pj4gWyAgIDk1LjIwMTIyNF0gWzxjMDEyYWE5MD5dIChzeXNm c19rZl93cml0ZSkgZnJvbSBbPGMwMTI5ZTk0Pl0gKGtlcm5mc19mb3Bfd3JpdGUrMHhjNC8weDE4 NCkKPiA+Pj4gWyAgIDk1LjIwOTM5M10gWzxjMDEyOWU5ND5dIChrZXJuZnNfZm9wX3dyaXRlKSBm cm9tIFs8YzAwZDAzZWM+XSAodmZzX3dyaXRlKzB4YTAvMHgxYTgpCj4gPj4+IFsgICA5NS4yMTcx MTFdIFs8YzAwZDAzZWM+XSAodmZzX3dyaXRlKSBmcm9tIFs8YzAwZDA3Zjg+XSAoU3lTX3dyaXRl KzB4NDAvMHg4YykKPiA+Pj4gWyAgIDk1LjIyNDE0Nl0gWzxjMDBkMDdmOD5dIChTeVNfd3JpdGUp IGZyb20gWzxjMDAwZTY2MD5dIChyZXRfZmFzdF9zeXNjYWxsKzB4MC8weDQ4KQo+ID4+Pgo+ID4+ PiBTaWduZWQtb2ZmLWJ5OiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgo+ID4+ PiAtLS0KPiA+Pj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jcnRjLmMgfCA2 ICsrKysrKwo+ID4+PiAgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQo+ID4+Pgo+ID4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2NydGMuYyBi L2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jcnRjLmMKPiA+Pj4gaW5kZXggYjY4 ZTU4Zi4uYmRlMTlmNCAxMDA2NDQKPiA+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX2NydGMuYwo+ID4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5v c19kcm1fY3J0Yy5jCj4gPj4+IEBAIC0xNDUsMTAgKzE0NSwxNiBAQCBleHlub3NfZHJtX2NydGNf bW9kZV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZSwKPiA+Pj4gIAlpZiAocmV0KQo+ID4+PiAgCQlyZXR1cm4gcmV0Owo+ID4+PiAgCj4gPj4+ ICsJLyogd2UgbmVlZCB0byB1bnJlZmVyZW5jZSBjdXJyZW50IGZiIGFmdGVyIHJlcGxhY2luZyBp dCB3aXRoIG5ldyBvbmUgKi8KPiA+Pj4gKwlvbGRfZmIgPSBwbGFuZS0+ZmI7Cj4gPj4+ICsKPiA+ Pj4gIAlwbGFuZS0+Y3J0YyA9IGNydGM7Cj4gPj4+ICAJcGxhbmUtPmZiID0gY3J0Yy0+cHJpbWFy eS0+ZmI7Cj4gPj4+ICAJZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZShwbGFuZS0+ZmIpOwo+ID4+ PiAgCj4gPj4+ICsJaWYgKG9sZF9mYikKPiA+Pj4gKwkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJl bmNlKG9sZF9mYik7Cj4gPj4gVGhpcyB0aW1lIHdvdWxkIGJlIGEgZ29vZCBjaGFuY2UgdGhhdCB3 ZSBjYW4gY29uc2lkZXIgZHJtIGZsaXAgcXVldWUgdG8KPiA+PiBtYWtlIHN1cmUgdGhhdCB3aG9s ZSBtZW1vcnkgcmVnaW9uIHRvIG9sZF9mYiBpcyBzY2FubmVkIG91dCBjb21wbGV0ZWx5Cj4gPj4g YmVmb3JlIGRyb3BwaW5nIGEgcmVmZXJlbmNlIG9mIG9sZF9mYi4gdGhlIHJlZmVyZW5jZSBvZiBv bGRfZmIgc2hvdWxkIGJlCj4gPj4gZHJvcHBlZCBhdCBpcnEgaGFuZGxlciBvZiBlYWNoIGNydGMg ZGV2aWNlcywgZmltZCBhbmQgbWl4ZXIuCj4gPiBHZW5lcmFsbHkgaXQncyBub3QgYSBnb29kIGlk ZWEgdG8gZHJvcCBmYiByZWZlcmVuY2VzIGZyb20gaXJxIGNvbnRleHQsCj4gPiBzaW5jZSBpZiB5 b3UgYWN0dWFsbHkgZHJvcCB0aGUgbGFzdCByZWZlcmVuY2UgaXQnbGwgYmxvdyB1cDogZmIgY2xl YW51cAo+ID4gbmVlZHMgYSBidW5jaCBvZiBtdXRleGVzLgo+IAo+IEkgYWdyZWUgd2l0aCB0aGF0 Lgo+IAo+ID4KPiA+IEFsc28gdGhlIGRybSBjb3JlIHJlYWxseSBzaG91bGQgYmUgdGFraW5nIGNh cmUgb2YgdGhpcyBmb3IgeW91LCB5b3Ugb25seQo+ID4gbmVlZCB0byBncmFiIHJlZmVyZW5jZXMg eW91cnNlbGYgZm9yIGFzeW5jIGZsaXBzIGlmIHlvdSB3YW50IHRoZSBidWZmZXIgdG8KPiA+IHN1 cnZpdmUgYSBiaXQuIGNydGNfbW9kZV9zZXQgaGFzIG5vdCBuZWVkIGZvciB0aGlzLiBJIGV4cGVj dCB0aGF0IHRoZQo+ID4gcmVmY291bnRpbmcgYnVnIGlzIHNvbWV3aGVyZSBlbHNlLCBhdCBsZWFz dCBmcm9tIG15IGV4cGVyaWVuY2UgY2hhc2luZwo+ID4gc3VjaCBpc3N1ZXMgaW4gaTkxNSA7LSkK PiAKPiBIbW0sIG1heWJlIEkgbWlzcyBzb21ldGhpbmcgYnV0IEkgZG8gbm90IHNlZSB0aGUgY29y ZSBncmFiYmluZyBmYiByZWZlcmVuY2UKPiBvbiBwbGFuZS0+ZmIgdXBkYXRlLiBPbiB0aGUgb3Ro ZXIgc2lkZSBkcm1fZnJhbWVidWZmZXJfcmVtb3ZlIGNhbGxzCj4gZHJtX3BsYW5lX2ZvcmNlX2Rp c2FibGUgd2hpY2ggZHJvcHMgcGxhbmUtPmZiIHJlZmVyZW5jZS4KPiBJIGFtIG5vdCB5ZXQgZmFt aWxpYXIgd2l0aCB0aGlzIGNvZGUgc28gbWF5YmUgdGhlcmUgaXMgYmV0dGVyIHNvbHV0aW9uLgoK SXQgZG9lcywgc2VlIGUuZy4gZHJtX21vZGVfc2V0X2NvbmZpZ19pbnRlcm5hbC4gQWxsIHRoZSBv dGhlciBwbGFjZXMgYWxzbwpkbyBpdC4KCj4gSWYgbm90IEkgZ3Vlc3MgaXQgd291bGQgYmUgYmV0 dGVyIHRvIG1vdmUgdGhpcyBjb2RlIHRvCj4gZXh5bm9zX3BsYW5lX21vZGVfc2V0Lgo+IEF0IGxl YXN0IGl0IGlzIGRvbmUgdGhpcyB3YXkgaW4gb21hcCBhbmQgbXNtLCBpbiBmYWN0IGl0IHNlZW1z IGJldHRlciBwbGFjZQo+IGZvciBzdWNoIHRoaW5ncy4gV2hhdCBkbyB5b3UgdGhpbms/CgpEcml2 ZXJzIF9vbmx5XyBuZWVkIHRvIGRvIHRoZWlyIG93biByZWZjb3VudGluZyBpZiB0aGV5IGRvIGFz eW5jaHJvbm91cwp1cGRhdGVzIChwYWdlZmxpcHMgb3IgYXN5bmNocm9ub3VzIG1vZGVzZXRzKS4g V2hpY2ggb21hcCBkb2VzIChhbmQgaWlyYwptc20gZm9yIHBhZ2VmbGlwcykuIEJ1dCBpZiB0aGF0 IG5lZWQgaXMgY29tbW9uIHdlIHNob3VsZCBoYXZlIHNvbWUgaGVscGVycwpmb3IgdGhpcyAobGlr ZSB0aGUgZHJtIGZsaXAgcXVldWUgYXMgZ3VpZGVsaW5lcyBvciBpbiB0aGUgZnV0dXJlIGF0b21p YwpoZWxwZXJzIHdoaWNoIHdpbGwgdGFrZSBjYXJlIG9mIGV2ZXJ5dGhpbmcpLgotRGFuaWVsCi0t IApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgorNDEg KDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755368AbaILODV (ORCPT ); Fri, 12 Sep 2014 10:03:21 -0400 Received: from mail-wg0-f42.google.com ([74.125.82.42]:47191 "EHLO mail-wg0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755349AbaILODR (ORCPT ); Fri, 12 Sep 2014 10:03:17 -0400 Date: Fri, 12 Sep 2014 16:03:38 +0200 From: Daniel Vetter To: Andrzej Hajda Cc: Inki Dae , "moderated list:ARM/S5P EXYNOS AR..." , Seung-Woo Kim , open list , dri-devel@lists.freedesktop.org, Kyungmin Park , Marek Szyprowski Subject: Re: [PATCH 5/9] drm/exynos/crtc: fix framebuffer reference sequence Message-ID: <20140912140338.GF4740@phenom.ffwll.local> Mail-Followup-To: Andrzej Hajda , Inki Dae , "moderated list:ARM/S5P EXYNOS AR..." , Seung-Woo Kim , open list , dri-devel@lists.freedesktop.org, Kyungmin Park , Marek Szyprowski References: <1410268573-2297-1-git-send-email-a.hajda@samsung.com> <1410268573-2297-6-git-send-email-a.hajda@samsung.com> <5412B02A.6040609@samsung.com> <20140912085710.GD4740@phenom.ffwll.local> <5412BC8D.2030007@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <5412BC8D.2030007@samsung.com> X-Operating-System: Linux phenom 3.15.0-rc3+ User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 12, 2014 at 11:27:41AM +0200, Andrzej Hajda wrote: > On 09/12/2014 10:57 AM, Daniel Vetter wrote: > > On Fri, Sep 12, 2014 at 05:34:50PM +0900, Inki Dae wrote: > >> Hi Andrzej, > >> > >> On 2014년 09월 09일 22:16, Andrzej Hajda wrote: > >>> Adding reference to framebuffer should be accompanied with removing > >>> reference to old framebuffer assigned to the plane. > >>> This patch removes following warning: > >>> > >>> [ 95.038017] WARNING: CPU: 1 PID: 3067 at drivers/gpu/drm/drm_crtc.c:5115 drm_mode_config_cleanup+0x258/0x268() > >>> [ 95.048086] Modules linked in: > >>> [ 95.051430] CPU: 1 PID: 3067 Comm: bash Tainted: G W 3.16.0-11355-g7a6eca5-dirty #3015 > >>> [ 95.060058] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) > >>> [ 95.067766] [] (show_stack) from [] (dump_stack+0x70/0xbc) > >>> [ 95.074953] [] (dump_stack) from [] (warn_slowpath_common+0x64/0x88) > >>> [ 95.083005] [] (warn_slowpath_common) from [] (warn_slowpath_null+0x1c/0x24) > >>> [ 95.091780] [] (warn_slowpath_null) from [] (drm_mode_config_cleanup+0x258/0x268) > >>> [ 95.100983] [] (drm_mode_config_cleanup) from [] (exynos_drm_unload+0x38/0x50) > >>> [ 95.109915] [] (exynos_drm_unload) from [] (drm_dev_unregister+0x24/0x98) > >>> [ 95.118414] [] (drm_dev_unregister) from [] (drm_put_dev+0x28/0x64) > >>> [ 95.126412] [] (drm_put_dev) from [] (take_down_master+0x24/0x44) > >>> [ 95.134218] [] (take_down_master) from [] (component_del+0x8c/0xc8) > >>> [ 95.142201] [] (component_del) from [] (exynos_dsi_remove+0x18/0x2c) > >>> [ 95.150294] [] (exynos_dsi_remove) from [] (platform_drv_remove+0x18/0x1c) > >>> [ 95.158872] [] (platform_drv_remove) from [] (__device_release_driver+0x70/0xc4) > >>> [ 95.167981] [] (__device_release_driver) from [] (device_release_driver+0x20/0x2c) > >>> [ 95.177268] [] (device_release_driver) from [] (unbind_store+0x5c/0x94) > >>> [ 95.185597] [] (unbind_store) from [] (drv_attr_store+0x20/0x2c) > >>> [ 95.193323] [] (drv_attr_store) from [] (sysfs_kf_write+0x4c/0x50) > >>> [ 95.201224] [] (sysfs_kf_write) from [] (kernfs_fop_write+0xc4/0x184) > >>> [ 95.209393] [] (kernfs_fop_write) from [] (vfs_write+0xa0/0x1a8) > >>> [ 95.217111] [] (vfs_write) from [] (SyS_write+0x40/0x8c) > >>> [ 95.224146] [] (SyS_write) from [] (ret_fast_syscall+0x0/0x48) > >>> > >>> Signed-off-by: Andrzej Hajda > >>> --- > >>> drivers/gpu/drm/exynos/exynos_drm_crtc.c | 6 ++++++ > >>> 1 file changed, 6 insertions(+) > >>> > >>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c > >>> index b68e58f..bde19f4 100644 > >>> --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c > >>> +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c > >>> @@ -145,10 +145,16 @@ exynos_drm_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode, > >>> if (ret) > >>> return ret; > >>> > >>> + /* we need to unreference current fb after replacing it with new one */ > >>> + old_fb = plane->fb; > >>> + > >>> plane->crtc = crtc; > >>> plane->fb = crtc->primary->fb; > >>> drm_framebuffer_reference(plane->fb); > >>> > >>> + if (old_fb) > >>> + drm_framebuffer_unreference(old_fb); > >> This time would be a good chance that we can consider drm flip queue to > >> make sure that whole memory region to old_fb is scanned out completely > >> before dropping a reference of old_fb. the reference of old_fb should be > >> dropped at irq handler of each crtc devices, fimd and mixer. > > Generally it's not a good idea to drop fb references from irq context, > > since if you actually drop the last reference it'll blow up: fb cleanup > > needs a bunch of mutexes. > > I agree with that. > > > > > Also the drm core really should be taking care of this for you, you only > > need to grab references yourself for async flips if you want the buffer to > > survive a bit. crtc_mode_set has not need for this. I expect that the > > refcounting bug is somewhere else, at least from my experience chasing > > such issues in i915 ;-) > > Hmm, maybe I miss something but I do not see the core grabbing fb reference > on plane->fb update. On the other side drm_framebuffer_remove calls > drm_plane_force_disable which drops plane->fb reference. > I am not yet familiar with this code so maybe there is better solution. It does, see e.g. drm_mode_set_config_internal. All the other places also do it. > If not I guess it would be better to move this code to > exynos_plane_mode_set. > At least it is done this way in omap and msm, in fact it seems better place > for such things. What do you think? Drivers _only_ need to do their own refcounting if they do asynchronous updates (pageflips or asynchronous modesets). Which omap does (and iirc msm for pageflips). But if that need is common we should have some helpers for this (like the drm flip queue as guidelines or in the future atomic helpers which will take care of everything). -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch