From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jyri Sarha Subject: [PATCH 4/4] drm/tilcdc: Use unload to handle initialization failures Date: Wed, 19 Oct 2016 00:33:56 +0300 Message-ID: <0b0d1a02a9661e89ecc047affe08be20478e2c2b.1476825466.git.jsarha@ti.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from devils.ext.ti.com (devils.ext.ti.com [198.47.26.153]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3A7986E7D0 for ; Tue, 18 Oct 2016 21:34:27 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: khilman@baylibre.com, Jyri Sarha , bgolaszewski@baylibre.com, tomi.valkeinen@ti.com, laurent.pinchart@ideasonboard.com, rmk+kernel@arm.linux.org.uk List-Id: dri-devel@lists.freedesktop.org VXNlIHVubG9hZCB0byBoYW5kbGUgaW5pdGlhbGl6YXRpb24gZmFpbHVyZXMgaW5zdGVhZCBvZiBj b21wbGV4IGdvdG8KbGFiZWwgbWVzcy4gVG8gZG8gdGhpcyB0aGUgaW5pdGlhbGl6YXRpb24gc2Vx dWVuY2UgbmVlZGVkIHNsaWdodApyZW9yZGVyaW5nIGFuZCBzb21lIHVubG9hZCBmdW5jdGlvbnMg bmVlZGVkIHRvIGJlY29tZSBjb25kaXRpb25hbC4KClNpZ25lZC1vZmYtYnk6IEp5cmkgU2FyaGEg PGpzYXJoYUB0aS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZHJ2LmMg fCA5MSArKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMjggaW5zZXJ0aW9ucygrKSwgNjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3Rp bGNkY19kcnYuYwppbmRleCAyZGNhODIyLi44ODIwMTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vdGlsY2RjL3RpbGNkY19kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3Rp bGNkY19kcnYuYwpAQCAtMTYwLDggKzE2MCw2IEBAIHN0YXRpYyBpbnQgbW9kZXNldF9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3RydWN0IHRpbGNkY19kcm1fcHJpdmF0ZSAqcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IHRpbGNkY19tb2R1bGUgKm1vZDsKIAotCWRybV9t b2RlX2NvbmZpZ19pbml0KGRldik7Ci0KIAlwcml2LT5jcnRjID0gdGlsY2RjX2NydGNfY3JlYXRl KGRldik7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1vZCwgJm1vZHVsZV9saXN0LCBsaXN0KSB7 CkBAIC0yMDAsMTggKzE5OCwxOSBAQCBzdGF0aWMgaW50IHRpbGNkY191bmxvYWQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgdGlsY2RjX2RybV9wcml2YXRlICpwcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKIAotCXRpbGNkY19yZW1vdmVfZXh0ZXJuYWxfZW5jb2RlcnMoZGV2KTsK KwlpZiAocHJpdi0+ZmJkZXYpCisJCWRybV9mYmRldl9jbWFfZmluaShwcml2LT5mYmRldik7CiAK LQlkcm1fZmJkZXZfY21hX2ZpbmkocHJpdi0+ZmJkZXYpOwogCWRybV9rbXNfaGVscGVyX3BvbGxf ZmluaShkZXYpOwogCWRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKGRldik7CiAJZHJtX3ZibGFua19j bGVhbnVwKGRldik7Ci0KIAlkcm1faXJxX3VuaW5zdGFsbChkZXYpOworCXRpbGNkY19yZW1vdmVf ZXh0ZXJuYWxfZW5jb2RlcnMoZGV2KTsKIAogI2lmZGVmIENPTkZJR19DUFVfRlJFUQotCWNwdWZy ZXFfdW5yZWdpc3Rlcl9ub3RpZmllcigmcHJpdi0+ZnJlcV90cmFuc2l0aW9uLAotCQkJQ1BVRlJF UV9UUkFOU0lUSU9OX05PVElGSUVSKTsKKwlpZiAocHJpdi0+ZnJlcV90cmFuc2l0aW9uLm5vdGlm aWVyX2NhbGwpCisJCWNwdWZyZXFfdW5yZWdpc3Rlcl9ub3RpZmllcigmcHJpdi0+ZnJlcV90cmFu c2l0aW9uLAorCQkJCQkgICAgQ1BVRlJFUV9UUkFOU0lUSU9OX05PVElGSUVSKTsKICNlbmRpZgog CiAJaWYgKHByaXYtPmNsaykKQEAgLTIyMCw4ICsyMTksMTAgQEAgc3RhdGljIGludCB0aWxjZGNf dW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKHByaXYtPm1taW8pCiAJCWlvdW5t YXAocHJpdi0+bW1pbyk7CiAKLQlmbHVzaF93b3JrcXVldWUocHJpdi0+d3EpOwotCWRlc3Ryb3lf d29ya3F1ZXVlKHByaXYtPndxKTsKKwlpZiAocHJpdi0+d3EpIHsKKwkJZmx1c2hfd29ya3F1ZXVl KHByaXYtPndxKTsKKwkJZGVzdHJveV93b3JrcXVldWUocHJpdi0+d3EpOworCX0KIAogCWRldi0+ ZGV2X3ByaXZhdGUgPSBOVUxMOwogCkBAIC0yNTIsNiArMjUzLDggQEAgc3RhdGljIGludCB0aWxj ZGNfaW5pdChzdHJ1Y3QgZHJtX2RyaXZlciAqZGRydiwgc3RydWN0IGRldmljZSAqZGV2KQogCiAJ ZGRldi0+cGxhdGZvcm1kZXYgPSBwZGV2OwogCWRkZXYtPmRldl9wcml2YXRlID0gcHJpdjsKKwlw bGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBkZGV2KTsKKwlkcm1fbW9kZV9jb25maWdfaW5pdChk ZGV2KTsKIAogCXByaXYtPmlzX2NvbXBvbmVudGl6ZWQgPQogCQl0aWxjZGNfZ2V0X2V4dGVybmFs X2NvbXBvbmVudHMoZGV2LCBOVUxMKSA+IDA7CkBAIC0yNTksMjggKzI2MiwyOCBAQCBzdGF0aWMg aW50IHRpbGNkY19pbml0KHN0cnVjdCBkcm1fZHJpdmVyICpkZHJ2LCBzdHJ1Y3QgZGV2aWNlICpk ZXYpCiAJcHJpdi0+d3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgidGlsY2RjIiwgMCk7CiAJ aWYgKCFwcml2LT53cSkgewogCQlyZXQgPSAtRU5PTUVNOwotCQlnb3RvIGZhaWxfdW5zZXRfcHJp djsKKwkJZ290byBpbml0X2ZhaWxlZDsKIAl9CiAKIAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3Vy Y2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwogCWlmICghcmVzKSB7CiAJCWRldl9lcnIoZGV2 LCAiZmFpbGVkIHRvIGdldCBtZW1vcnkgcmVzb3VyY2VcbiIpOwogCQlyZXQgPSAtRUlOVkFMOwot CQlnb3RvIGZhaWxfZnJlZV93cTsKKwkJZ290byBpbml0X2ZhaWxlZDsKIAl9CiAKIAlwcml2LT5t bWlvID0gaW9yZW1hcF9ub2NhY2hlKHJlcy0+c3RhcnQsIHJlc291cmNlX3NpemUocmVzKSk7CiAJ aWYgKCFwcml2LT5tbWlvKSB7CiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGlvcmVtYXBcbiIp OwogCQlyZXQgPSAtRU5PTUVNOwotCQlnb3RvIGZhaWxfZnJlZV93cTsKKwkJZ290byBpbml0X2Zh aWxlZDsKIAl9CiAKIAlwcml2LT5jbGsgPSBjbGtfZ2V0KGRldiwgImZjayIpOwogCWlmIChJU19F UlIocHJpdi0+Y2xrKSkgewogCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgZnVuY3Rpb25h bCBjbG9ja1xuIik7CiAJCXJldCA9IC1FTk9ERVY7Ci0JCWdvdG8gZmFpbF9pb3VubWFwOworCQln b3RvIGluaXRfZmFpbGVkOwogCX0KIAogI2lmZGVmIENPTkZJR19DUFVfRlJFUQpAQCAtMjg5LDcg KzI5Miw4IEBAIHN0YXRpYyBpbnQgdGlsY2RjX2luaXQoc3RydWN0IGRybV9kcml2ZXIgKmRkcnYs IHN0cnVjdCBkZXZpY2UgKmRldikKIAkJCUNQVUZSRVFfVFJBTlNJVElPTl9OT1RJRklFUik7CiAJ aWYgKHJldCkgewogCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZWdpc3RlciBjcHVmcmVxIG5v dGlmaWVyXG4iKTsKLQkJZ290byBmYWlsX3B1dF9jbGs7CisJCXByaXYtPmZyZXFfdHJhbnNpdGlv bi5ub3RpZmllcl9jYWxsID0gTlVMTDsKKwkJZ290byBpbml0X2ZhaWxlZDsKIAl9CiAjZW5kaWYK IApAQCAtMzY1LDM3ICszNjksMzUgQEAgc3RhdGljIGludCB0aWxjZGNfaW5pdChzdHJ1Y3QgZHJt X2RyaXZlciAqZGRydiwgc3RydWN0IGRldmljZSAqZGV2KQogCXJldCA9IG1vZGVzZXRfaW5pdChk ZGV2KTsKIAlpZiAocmV0IDwgMCkgewogCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBpbml0aWFs aXplIG1vZGUgc2V0dGluZ1xuIik7Ci0JCWdvdG8gZmFpbF9jcHVmcmVxX3VucmVnaXN0ZXI7CisJ CWdvdG8gaW5pdF9mYWlsZWQ7CiAJfQogCi0JcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgZGRl dik7Ci0KIAlpZiAocHJpdi0+aXNfY29tcG9uZW50aXplZCkgewogCQlyZXQgPSBjb21wb25lbnRf YmluZF9hbGwoZGV2LCBkZGV2KTsKIAkJaWYgKHJldCA8IDApCi0JCQlnb3RvIGZhaWxfbW9kZV9j b25maWdfY2xlYW51cDsKKwkJCWdvdG8gaW5pdF9mYWlsZWQ7CiAKIAkJcmV0ID0gdGlsY2RjX2Fk ZF9leHRlcm5hbF9lbmNvZGVycyhkZGV2KTsKIAkJaWYgKHJldCA8IDApCi0JCQlnb3RvIGZhaWxf Y29tcG9uZW50X2NsZWFudXA7CisJCQlnb3RvIGluaXRfZmFpbGVkOwogCX0KIAogCWlmICgocHJp di0+bnVtX2VuY29kZXJzID09IDApIHx8IChwcml2LT5udW1fY29ubmVjdG9ycyA9PSAwKSkgewog CQlkZXZfZXJyKGRldiwgIm5vIGVuY29kZXJzL2Nvbm5lY3RvcnMgZm91bmRcbiIpOwogCQlyZXQg PSAtRU5YSU87Ci0JCWdvdG8gZmFpbF9leHRlcm5hbF9jbGVhbnVwOworCQlnb3RvIGluaXRfZmFp bGVkOwogCX0KIAogCXJldCA9IGRybV92YmxhbmtfaW5pdChkZGV2LCAxKTsKIAlpZiAocmV0IDwg MCkgewogCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIHZibGFua1xuIik7Ci0J CWdvdG8gZmFpbF9leHRlcm5hbF9jbGVhbnVwOworCQlnb3RvIGluaXRfZmFpbGVkOwogCX0KIAog CXJldCA9IGRybV9pcnFfaW5zdGFsbChkZGV2LCBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApKTsK IAlpZiAocmV0IDwgMCkgewogCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBpbnN0YWxsIElSUSBo YW5kbGVyXG4iKTsKLQkJZ290byBmYWlsX3ZibGFua19jbGVhbnVwOworCQlnb3RvIGluaXRfZmFp bGVkOwogCX0KIAogCWRybV9tb2RlX2NvbmZpZ19yZXNldChkZGV2KTsKQEAgLTQwNSw1NiArNDA3 LDE5IEBAIHN0YXRpYyBpbnQgdGlsY2RjX2luaXQoc3RydWN0IGRybV9kcml2ZXIgKmRkcnYsIHN0 cnVjdCBkZXZpY2UgKmRldikKIAkJCWRkZXYtPm1vZGVfY29uZmlnLm51bV9jb25uZWN0b3IpOwog CWlmIChJU19FUlIocHJpdi0+ZmJkZXYpKSB7CiAJCXJldCA9IFBUUl9FUlIocHJpdi0+ZmJkZXYp OwotCQlnb3RvIGZhaWxfaXJxX3VuaW5zdGFsbDsKKwkJZ290byBpbml0X2ZhaWxlZDsKIAl9CiAK IAlkcm1fa21zX2hlbHBlcl9wb2xsX2luaXQoZGRldik7CiAKIAlyZXQgPSBkcm1fZGV2X3JlZ2lz dGVyKGRkZXYsIDApOwogCWlmIChyZXQpCi0JCWdvdG8gZmFpbF9wbGF0Zm9ybV9pbml0OworCQln b3RvIGluaXRfZmFpbGVkOwogCiAJcmV0dXJuIDA7CiAKLWZhaWxfcGxhdGZvcm1faW5pdDoKLQlk cm1fa21zX2hlbHBlcl9wb2xsX2ZpbmkoZGRldik7Ci0JZHJtX2ZiZGV2X2NtYV9maW5pKHByaXYt PmZiZGV2KTsKLQotZmFpbF9pcnFfdW5pbnN0YWxsOgotCWRybV9pcnFfdW5pbnN0YWxsKGRkZXYp OwotCi1mYWlsX3ZibGFua19jbGVhbnVwOgotCWRybV92YmxhbmtfY2xlYW51cChkZGV2KTsKLQot ZmFpbF9jb21wb25lbnRfY2xlYW51cDoKLQlpZiAocHJpdi0+aXNfY29tcG9uZW50aXplZCkKLQkJ Y29tcG9uZW50X3VuYmluZF9hbGwoZGV2LCBkZXYpOwotCi1mYWlsX21vZGVfY29uZmlnX2NsZWFu dXA6Ci0JZHJtX21vZGVfY29uZmlnX2NsZWFudXAoZGRldik7Ci0KLWZhaWxfZXh0ZXJuYWxfY2xl YW51cDoKLQl0aWxjZGNfcmVtb3ZlX2V4dGVybmFsX2VuY29kZXJzKGRkZXYpOwotCi1mYWlsX2Nw dWZyZXFfdW5yZWdpc3RlcjoKLQlwbV9ydW50aW1lX2Rpc2FibGUoZGV2KTsKLSNpZmRlZiBDT05G SUdfQ1BVX0ZSRVEKLQljcHVmcmVxX3VucmVnaXN0ZXJfbm90aWZpZXIoJnByaXYtPmZyZXFfdHJh bnNpdGlvbiwKLQkJCUNQVUZSRVFfVFJBTlNJVElPTl9OT1RJRklFUik7Ci0KLWZhaWxfcHV0X2Ns azoKLSNlbmRpZgotCWNsa19wdXQocHJpdi0+Y2xrKTsKLQotZmFpbF9pb3VubWFwOgotCWlvdW5t YXAocHJpdi0+bW1pbyk7Ci0KLWZhaWxfZnJlZV93cToKLQlmbHVzaF93b3JrcXVldWUocHJpdi0+ d3EpOwotCWRlc3Ryb3lfd29ya3F1ZXVlKHByaXYtPndxKTsKLQotZmFpbF91bnNldF9wcml2Ogot CWRkZXYtPmRldl9wcml2YXRlID0gTlVMTDsKK2luaXRfZmFpbGVkOgorCXRpbGNkY191bmxvYWQo ZGRldik7CiAJZHJtX2Rldl91bnJlZihkZGV2KTsKIAogCXJldHVybiByZXQ7Ci0tIAoxLjkuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==