From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yakir Yang Subject: [PATCH v12 18/18] drm: bridge: analogix/dp: Fix the possible dead lock in bridge disable time Date: Wed, 23 Dec 2015 20:55:22 +0800 Message-ID: <1450875322-19728-1-git-send-email-ykk@rock-chips.com> References: <1450873538-18304-1-git-send-email-ykk@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1450873538-18304-1-git-send-email-ykk@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae , Mark Yao , Jingoo Han , Heiko Stuebner Cc: devicetree@vger.kernel.org, Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, Russell King , linux-rockchip@lists.infradead.org, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Kishon Vijay Abraham I , javier@osg.samsung.com, Rob Herring , Andy Yan , Thierry Reding , Gustavo Padovan , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org SXQgbWF5IGNhdXNlZCBhIGRlYWQgbG9jayBpZiB3ZSBmbHVzaCB0aGUgaHBkIHdvcmsgaW4gYnJp ZGdlIGRpc2FibGUgdGltZS4KClRoZSBub3JtYWwgZmxvdyB3b3VsZCBsaWtlOgogIElOIC0tPiBE Uk0gSU9DVEwKICAgICAgICAxLiBBY3F1aXJlIGNydGNfd3dfY2xhc3NfbXV0ZXggKERSTSBJT0NU TCkKICBJTiAtLT4gYW5hbG9naXhfZHBfYnJpZGdlCiAgICAgICAgMi4gQWNxdWlyZSBocGQgd29y ayBsb2NrIChGbHVzaCBocGQgd29yaykKICAgICAgICAzLiBIUEQgd29yayBhbHJlYWR5IGluIGlk bGUsIG5vIG5lZWQgdG8gcnVuIHRoZSB3b3JrIGZ1bmN0aW9uLgogIE9VVCA8LS0gYW5hbG9naXhf ZHBfYnJpZGdlCiAgT1VUIDwtLSBEUk0gSU9DVEwKClRoZSBkZWFkIGxvY2sgZmxvdyB3b3VsZCBs aWtlOgogIElOIC0tPiBEUk0gSU9DVEwKICAgICAgICAxLiBBY3F1aXJlIGNydGNfd3dfY2xhc3Nf bXV0ZXggKERSTSBJT0NUTCkKICBJTiAtLT4gYW5hbG9naXhfZHBfYnJpZGdlCiAgICAgICAgMi4g QWNxdWlyZSBocGQgd29yayBsb2NrIChGbHVzaCBocGQgd29yaykKICBJTiAtLT4gYW5hbG9naXhf ZHBfaG90cGx1ZwogIElOIC0tPiBkcm1faGVscGVyX2hwZF9pcnFfZXZlbnQKICAgICAgICAzLiBB Y3F1aXJlIG1vZGVfY29uZmlnIGxvY2sgKFRoaXMgbG9jayBhbHJlYWR5IGhhdmUgYmVlbiBhY3F1 aXJlZCBpbiBwcmV2aW91cyBzdGVwIDEpCioqIERlYWQgTG9jayBOb3cgKioKCkl0J3Mgd3Jvbmcg dG8gZmx1c2ggdGhlIGhwZCB3b3JrIGluIGJyaWRnZS0+ZGlzYWJsZSB0aW1lLCBJIGd1ZXNzIHRo ZQpvcmlnaW5hbCBjb2RlIGp1c3Qgd2FudCB0byBlbnN1cmUgdGhlIGRlbGF5IHdvcmsgbXVzdCBi ZSBmaW5pc2ggYmVmb3JlCmVuY29kZXIgZGlzYWJsZWQuCgpUaGUgZmx1c2ggd29yayBpbiBicmlk Z2UgZGlzYWJsZSB0aW1lIGlzIHRyeSB0byBlbnN1cmUgdGhlIEhQRCBldmVudAp3b24ndCBiZSBt aXNzZWQgYmVmb3JlIGRpc3BsYXkgY2FyZCBkaXNhYmxlZCwgYWN0dWFsbHkgd2UgY2FuIHRha2Ug YQpmYXN0IHJlc3BvbmQgd2F5KGludGVycnVwdCB0aHJlYWQpIHRvIHVwZGF0ZSBEUk0gSFBEIGV2 ZW50IHRvIGZpeCB0aGUKZGVsYXkgdXBkYXRlIGFuZCBwb3NzaWJsZSBkZWFkIGxvY2suCgpTaWdu ZWQtb2ZmLWJ5OiBZYWtpciBZYW5nIDx5a2tAcm9jay1jaGlwcy5jb20+Ci0tLQpDaGFuZ2VzIGlu IHYxMjogTm9uZQpDaGFuZ2VzIGluIHYxMTogTm9uZQpDaGFuZ2VzIGluIHYxMDogTm9uZQpDaGFu Z2VzIGluIHY5OiBOb25lCkNoYW5nZXMgaW4gdjg6IE5vbmUKQ2hhbmdlcyBpbiB2NzogTm9uZQpD aGFuZ2VzIGluIHY2OiBOb25lCkNoYW5nZXMgaW4gdjU6IE5vbmUKQ2hhbmdlcyBpbiB2NDogTm9u ZQpDaGFuZ2VzIGluIHYzOiBOb25lCkNoYW5nZXMgaW4gdjI6IE5vbmUKCiBkcml2ZXJzL2dwdS9k cm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYyB8IDYyICsrKysrKysrKystLS0t LS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29y ZS5oIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBf cmVnLmMgIHwgMjYgKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyks IDM2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5h bG9naXgvYW5hbG9naXhfZHBfY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dp eC9hbmFsb2dpeF9kcF9jb3JlLmMKaW5kZXggMWU5ODQ4OS4uMDRlZmVkMiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMKQEAgLTg1 MSw0NyArODUxLDQwIEBAIHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX2VuYWJsZV9zY3JhbWJsZShz dHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIAl9CiB9CiAKLXN0YXRpYyBpcnFyZXR1cm5f dCBhbmFsb2dpeF9kcF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCitzdGF0aWMgaXJx cmV0dXJuX3QgYW5hbG9naXhfZHBfaGFyZGlycShpbnQgaXJxLCB2b2lkICphcmcpCiB7CiAJc3Ry dWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAgPSBhcmc7Ci0KKwlpcnFyZXR1cm5fdCByZXQgPSBJ UlFfTk9ORTsKIAllbnVtIGRwX2lycV90eXBlIGlycV90eXBlOwogCiAJaXJxX3R5cGUgPSBhbmFs b2dpeF9kcF9nZXRfaXJxX3R5cGUoZHApOwotCXN3aXRjaCAoaXJxX3R5cGUpIHsKLQljYXNlIERQ X0lSUV9UWVBFX0hQX0NBQkxFX0lOOgotCQlkZXZfZGJnKGRwLT5kZXYsICJSZWNlaXZlZCBpcnEg LSBjYWJsZSBpblxuIik7Ci0JCXNjaGVkdWxlX3dvcmsoJmRwLT5ob3RwbHVnX3dvcmspOwotCQlh bmFsb2dpeF9kcF9jbGVhcl9ob3RwbHVnX2ludGVycnVwdHMoZHApOwotCQlicmVhazsKLQljYXNl IERQX0lSUV9UWVBFX0hQX0NBQkxFX09VVDoKLQkJZGV2X2RiZyhkcC0+ZGV2LCAiUmVjZWl2ZWQg aXJxIC0gY2FibGUgb3V0XG4iKTsKLQkJYW5hbG9naXhfZHBfY2xlYXJfaG90cGx1Z19pbnRlcnJ1 cHRzKGRwKTsKLQkJYnJlYWs7Ci0JY2FzZSBEUF9JUlFfVFlQRV9IUF9DSEFOR0U6Ci0JCS8qCi0J CSAqIFdlIGdldCB0aGVzZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBvbmNlIGluIGEgd2hpbGUsIGJ1 dCB0aGVyZQotCQkgKiBpcyBub3RoaW5nIHdlIGNhbiBkbyB3aXRoIHRoZW0uIEp1c3QgaWdub3Jl IGl0IGZvciBub3cgYW5kCi0JCSAqIG9ubHkgaGFuZGxlIGNhYmxlIGNoYW5nZXMuCi0JCSAqLwot CQlkZXZfZGJnKGRwLT5kZXYsICJSZWNlaXZlZCBpcnEgLSBob3RwbHVnIGNoYW5nZTsgaWdub3Jp bmcuXG4iKTsKLQkJYW5hbG9naXhfZHBfY2xlYXJfaG90cGx1Z19pbnRlcnJ1cHRzKGRwKTsKLQkJ YnJlYWs7Ci0JZGVmYXVsdDoKLQkJZGV2X2VycihkcC0+ZGV2LCAiUmVjZWl2ZWQgaXJxIC0gdW5r bm93biB0eXBlIVxuIik7Ci0JCWJyZWFrOworCWlmIChpcnFfdHlwZSAhPSBEUF9JUlFfVFlQRV9V TktOT1dOKSB7CisJCWFuYWxvZ2l4X2RwX211dGVfaHBkX2ludGVycnVwdChkcCk7CisJCXJldCA9 IElSUV9XQUtFX1RIUkVBRDsKIAl9Ci0JcmV0dXJuIElSUV9IQU5ETEVEOworCisJcmV0dXJuIHJl dDsKIH0KIAotc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfaG90cGx1ZyhzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCitzdGF0aWMgaXJxcmV0dXJuX3QgYW5hbG9naXhfZHBfaXJxX3RocmVhZChpbnQg aXJxLCB2b2lkICphcmcpCiB7Ci0Jc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHA7CisJc3Ry dWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAgPSBhcmc7CisJZW51bSBkcF9pcnFfdHlwZSBpcnFf dHlwZTsKKworCWlycV90eXBlID0gYW5hbG9naXhfZHBfZ2V0X2lycV90eXBlKGRwKTsKKwlpZiAo aXJxX3R5cGUgJiBEUF9JUlFfVFlQRV9IUF9DQUJMRV9JTiB8fAorCSAgICBpcnFfdHlwZSAmIERQ X0lSUV9UWVBFX0hQX0NBQkxFX09VVCkgeworCQlkZXZfZGJnKGRwLT5kZXYsICJEZXRlY3RlZCBj YWJsZSBzdGF0dXMgY2hhbmdlZCFcbiIpOworCQlpZiAoZHAtPmRybV9kZXYpCisJCQlkcm1faGVs cGVyX2hwZF9pcnFfZXZlbnQoZHAtPmRybV9kZXYpOworCX0KIAotCWRwID0gY29udGFpbmVyX29m KHdvcmssIHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UsIGhvdHBsdWdfd29yayk7CisJaWYgKGly cV90eXBlICE9IERQX0lSUV9UWVBFX1VOS05PV04pIHsKKwkJYW5hbG9naXhfZHBfY2xlYXJfaG90 cGx1Z19pbnRlcnJ1cHRzKGRwKTsKKwkJYW5hbG9naXhfZHBfdW5tdXRlX2hwZF9pbnRlcnJ1cHQo ZHApOworCX0KIAotCWlmIChkcC0+ZHJtX2RldikKLQkJZHJtX2hlbHBlcl9ocGRfaXJxX2V2ZW50 KGRwLT5kcm1fZGV2KTsKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKIHN0YXRpYyB2b2lkIGFu YWxvZ2l4X2RwX2NvbW1pdChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKQEAgLTEwNzcs NyArMTA3MCw2IEBAIHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX2JyaWRnZV9kaXNhYmxlKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UpCiAJfQogCiAJZGlzYWJsZV9pcnEoZHAtPmlycSk7Ci0JZmx1 c2hfd29yaygmZHAtPmhvdHBsdWdfd29yayk7CiAJcGh5X3Bvd2VyX29mZihkcC0+cGh5KTsKIAog CWlmIChkcC0+cGxhdF9kYXRhLT5wb3dlcl9vZmYpCkBAIC0xMzM2LDggKzEzMjgsNiBAQCBpbnQg YW5hbG9naXhfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZGV2aWNlICpk cm1fZGV2LAogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKLQlJTklUX1dPUksoJmRwLT5ob3RwbHVn X3dvcmssIGFuYWxvZ2l4X2RwX2hvdHBsdWcpOwotCiAJcG1fcnVudGltZV9lbmFibGUoZGV2KTsK IAogCXBoeV9wb3dlcl9vbihkcC0+cGh5KTsKQEAgLTEzNTEsOCArMTM0MSwxMCBAQCBpbnQgYW5h bG9naXhfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm1f ZGV2LAogCiAJYW5hbG9naXhfZHBfaW5pdF9kcChkcCk7CiAKLQlyZXQgPSBkZXZtX3JlcXVlc3Rf aXJxKCZwZGV2LT5kZXYsIGRwLT5pcnEsIGFuYWxvZ2l4X2RwX2lycV9oYW5kbGVyLAotCQkJICAg ICAgIGlycV9mbGFncywgImFuYWxvZ2l4LWRwIiwgZHApOworCXJldCA9IGRldm1fcmVxdWVzdF90 aHJlYWRlZF9pcnEoJnBkZXYtPmRldiwgZHAtPmlycSwKKwkJCQkJYW5hbG9naXhfZHBfaGFyZGly cSwKKwkJCQkJYW5hbG9naXhfZHBfaXJxX3RocmVhZCwKKwkJCQkJaXJxX2ZsYWdzLCAiYW5hbG9n aXgtZHAiLCBkcCk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQg dG8gcmVxdWVzdCBpcnFcbiIpOwogCQlnb3RvIGVycl9kaXNhYmxlX3BtX3J1bnRpbWU7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUu aCBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oCmlu ZGV4IDQwYTA3NTkuLmE0ZTEzMzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv YW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv YW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oCkBAIC0xNzIsNyArMTcyLDYgQEAgc3RydWN0IGFu YWxvZ2l4X2RwX2RldmljZSB7CiAKIAlzdHJ1Y3QgdmlkZW9faW5mbwl2aWRlb19pbmZvOwogCXN0 cnVjdCBsaW5rX3RyYWluCWxpbmtfdHJhaW47Ci0Jc3RydWN0IHdvcmtfc3RydWN0CWhvdHBsdWdf d29yazsKIAlzdHJ1Y3QgcGh5CQkqcGh5OwogCWludAkJCWRwbXNfbW9kZTsKIAlpbnQJCQlocGRf Z3BpbzsKQEAgLTE5MSw2ICsxOTAsOCBAQCB2b2lkIGFuYWxvZ2l4X2RwX2luaXRfaW50ZXJydXB0 KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKIHZvaWQgYW5hbG9naXhfZHBfcmVzZXQo c3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApOwogdm9pZCBhbmFsb2dpeF9kcF9zd3Jlc2V0 KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKIHZvaWQgYW5hbG9naXhfZHBfY29uZmln X2ludGVycnVwdChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7Cit2b2lkIGFuYWxvZ2l4 X2RwX211dGVfaHBkX2ludGVycnVwdChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7Cit2 b2lkIGFuYWxvZ2l4X2RwX3VubXV0ZV9ocGRfaW50ZXJydXB0KHN0cnVjdCBhbmFsb2dpeF9kcF9k ZXZpY2UgKmRwKTsKIGVudW0gcGxsX3N0YXR1cyBhbmFsb2dpeF9kcF9nZXRfcGxsX2xvY2tfc3Rh dHVzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKIHZvaWQgYW5hbG9naXhfZHBfc2V0 X3BsbF9wb3dlcl9kb3duKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCBib29sIGVuYWJs ZSk7CiB2b2lkIGFuYWxvZ2l4X2RwX3NldF9hbmFsb2dfcG93ZXJfZG93bihzdHJ1Y3QgYW5hbG9n aXhfZHBfZGV2aWNlICpkcCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5h bG9naXgvYW5hbG9naXhfZHBfcmVnLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4 L2FuYWxvZ2l4X2RwX3JlZy5jCmluZGV4IDg2ODdlZWEuLjkyODEwM2UgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfcmVnLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9yZWcuYwpAQCAtMTg1LDYg KzE4NSwzMiBAQCB2b2lkIGFuYWxvZ2l4X2RwX2NvbmZpZ19pbnRlcnJ1cHQoc3RydWN0IGFuYWxv Z2l4X2RwX2RldmljZSAqZHApCiAJd3JpdGVsKHJlZywgZHAtPnJlZ19iYXNlICsgQU5BTE9HSVhf RFBfSU5UX1NUQV9NQVNLKTsKIH0KIAordm9pZCBhbmFsb2dpeF9kcF9tdXRlX2hwZF9pbnRlcnJ1 cHQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCit7CisJdTMyIHJlZzsKKworCS8qIDA6 IG1hc2ssIDE6IHVubWFzayAqLworCXJlZyA9IHJlYWRsKGRwLT5yZWdfYmFzZSArIEFOQUxPR0lY X0RQX0NPTU1PTl9JTlRfTUFTS180KTsKKwlyZWcgJj0gfkNPTU1PTl9JTlRfTUFTS180OworCXdy aXRlbChyZWcsIGRwLT5yZWdfYmFzZSArIEFOQUxPR0lYX0RQX0NPTU1PTl9JTlRfTUFTS180KTsK KworCXJlZyA9IHJlYWRsKGRwLT5yZWdfYmFzZSArIEFOQUxPR0lYX0RQX0lOVF9TVEFfTUFTSyk7 CisJcmVnICY9IH5JTlRfU1RBX01BU0s7CisJd3JpdGVsKHJlZywgZHAtPnJlZ19iYXNlICsgQU5B TE9HSVhfRFBfSU5UX1NUQV9NQVNLKTsKK30KKwordm9pZCBhbmFsb2dpeF9kcF91bm11dGVfaHBk X2ludGVycnVwdChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKK3sKKwl1MzIgcmVnOwor CisJLyogMDogbWFzaywgMTogdW5tYXNrICovCisJcmVnID0gQ09NTU9OX0lOVF9NQVNLXzQ7CisJ d3JpdGVsKHJlZywgZHAtPnJlZ19iYXNlICsgQU5BTE9HSVhfRFBfQ09NTU9OX0lOVF9NQVNLXzQp OworCisJcmVnID0gSU5UX1NUQV9NQVNLOworCXdyaXRlbChyZWcsIGRwLT5yZWdfYmFzZSArIEFO QUxPR0lYX0RQX0lOVF9TVEFfTUFTSyk7Cit9CisKIGVudW0gcGxsX3N0YXR1cyBhbmFsb2dpeF9k cF9nZXRfcGxsX2xvY2tfc3RhdHVzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogewog CXUzMiByZWc7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==