From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH 1/5] drm/modes: add connector reference counting. (v2) Date: Wed, 27 Apr 2016 12:03:25 +1000 Message-ID: <1461722609-32474-1-git-send-email-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KClRoaXMgdXNlcyB0aGUgcHJl dmlvdXMgY2hhbmdlcyB0byBhZGQgcmVmZXJlbmNlIGNvdW50cwp0byBkcm0gY29ubmVjdG9yIG9i amVjdHMuCgp2MjogbW92ZSBmYmRldiBjaGFuZ2VzIHRvIHRoZWlyIG93biBwYXRjaC4KYWRkIHNv bWUga2VybmVsZG9jClNpZ25lZC1vZmYtYnk6IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5j b20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyB8IDE5ICsrKysrKysrKysrKysr KysrLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jICAgfCAyOCArKysrKysrKysrKysrKysr KysrKysrKystLS0tCiBpbmNsdWRlL2RybS9kcm1fY3J0Yy5oICAgICAgIHwgMzIgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgNzIgaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwppbmRleCA4ZWUxZGI4Li45ZDVlM2M4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljLmMKQEAgLTE1NCw2ICsxNTQsNyBAQCB2b2lkIGRybV9hdG9taWNf c3RhdGVfZGVmYXVsdF9jbGVhcihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCQkJ CQkgICAgICAgc3RhdGUtPmNvbm5lY3Rvcl9zdGF0ZXNbaV0pOwogCQlzdGF0ZS0+Y29ubmVjdG9y c1tpXSA9IE5VTEw7CiAJCXN0YXRlLT5jb25uZWN0b3Jfc3RhdGVzW2ldID0gTlVMTDsKKwkJZHJt X2Nvbm5lY3Rvcl91bnJlZmVyZW5jZShjb25uZWN0b3IpOwogCX0KIAogCWZvciAoaSA9IDA7IGkg PCBjb25maWctPm51bV9jcnRjOyBpKyspIHsKQEAgLTkyNCw2ICs5MjUsNyBAQCBkcm1fYXRvbWlj X2dldF9jb25uZWN0b3Jfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCWlm ICghY29ubmVjdG9yX3N0YXRlKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAorCWRybV9j b25uZWN0b3JfcmVmZXJlbmNlKGNvbm5lY3Rvcik7CiAJc3RhdGUtPmNvbm5lY3Rvcl9zdGF0ZXNb aW5kZXhdID0gY29ubmVjdG9yX3N0YXRlOwogCXN0YXRlLT5jb25uZWN0b3JzW2luZGV4XSA9IGNv bm5lY3RvcjsKIAljb25uZWN0b3Jfc3RhdGUtPnN0YXRlID0gc3RhdGU7CkBAIC0xNjE0LDEyICsx NjE2LDE5IEBAIHJldHJ5OgogCQl9CiAKIAkJb2JqID0gZHJtX21vZGVfb2JqZWN0X2ZpbmQoZGV2 LCBvYmpfaWQsIERSTV9NT0RFX09CSkVDVF9BTlkpOwotCQlpZiAoIW9iaiB8fCAhb2JqLT5wcm9w ZXJ0aWVzKSB7CisJCWlmICghb2JqKSB7CisJCQlyZXQgPSAtRU5PRU5UOworCQkJZ290byBvdXQ7 CisJCX0KKworCQlpZiAoIW9iai0+cHJvcGVydGllcykgeworCQkJZHJtX21vZGVfb2JqZWN0X3Vu cmVmZXJlbmNlKG9iaik7CiAJCQlyZXQgPSAtRU5PRU5UOwogCQkJZ290byBvdXQ7CiAJCX0KIAog CQlpZiAoZ2V0X3VzZXIoY291bnRfcHJvcHMsIGNvdW50X3Byb3BzX3B0ciArIGNvcGllZF9vYmpz KSkgeworCQkJZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNlKG9iaik7CiAJCQlyZXQgPSAtRUZB VUxUOwogCQkJZ290byBvdXQ7CiAJCX0KQEAgLTE2MzIsMTIgKzE2NDEsMTQgQEAgcmV0cnk6CiAJ CQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wOwogCiAJCQlpZiAoZ2V0X3VzZXIocHJvcF9pZCwg cHJvcHNfcHRyICsgY29waWVkX3Byb3BzKSkgeworCQkJCWRybV9tb2RlX29iamVjdF91bnJlZmVy ZW5jZShvYmopOwogCQkJCXJldCA9IC1FRkFVTFQ7CiAJCQkJZ290byBvdXQ7CiAJCQl9CiAKIAkJ CXByb3AgPSBkcm1fcHJvcGVydHlfZmluZChkZXYsIHByb3BfaWQpOwogCQkJaWYgKCFwcm9wKSB7 CisJCQkJZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNlKG9iaik7CiAJCQkJcmV0ID0gLUVOT0VO VDsKIAkJCQlnb3RvIG91dDsKIAkJCX0KQEAgLTE2NDUsMTMgKzE2NTYsMTYgQEAgcmV0cnk6CiAJ CQlpZiAoY29weV9mcm9tX3VzZXIoJnByb3BfdmFsdWUsCiAJCQkJCSAgIHByb3BfdmFsdWVzX3B0 ciArIGNvcGllZF9wcm9wcywKIAkJCQkJICAgc2l6ZW9mKHByb3BfdmFsdWUpKSkgeworCQkJCWRy bV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShvYmopOwogCQkJCXJldCA9IC1FRkFVTFQ7CiAJCQkJ Z290byBvdXQ7CiAJCQl9CiAKIAkJCXJldCA9IGF0b21pY19zZXRfcHJvcChzdGF0ZSwgb2JqLCBw cm9wLCBwcm9wX3ZhbHVlKTsKLQkJCWlmIChyZXQpCisJCQlpZiAocmV0KSB7CisJCQkJZHJtX21v ZGVfb2JqZWN0X3VucmVmZXJlbmNlKG9iaik7CiAJCQkJZ290byBvdXQ7CisJCQl9CiAKIAkJCWNv cGllZF9wcm9wcysrOwogCQl9CkBAIC0xNjYyLDYgKzE2NzYsNyBAQCByZXRyeToKIAkJCXBsYW5l X21hc2sgfD0gKDEgPDwgZHJtX3BsYW5lX2luZGV4KHBsYW5lKSk7CiAJCQlwbGFuZS0+b2xkX2Zi ID0gcGxhbmUtPmZiOwogCQl9CisJCWRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShvYmopOwog CX0KIAogCWlmIChhcmctPmZsYWdzICYgRFJNX01PREVfUEFHRV9GTElQX0VWRU5UKSB7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Y3J0Yy5jCmluZGV4IDRlNWIwMTUuLmE3OGUyMDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCkBAIC04NjIsNiAr ODYyLDE2IEBAIHN0YXRpYyB2b2lkIGRybV9jb25uZWN0b3JfZ2V0X2NtZGxpbmVfbW9kZShzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQkgICAgICBtb2RlLT5pbnRlcmxhY2UgPyAg IiBpbnRlcmxhY2VkIiA6ICIiKTsKIH0KIAorc3RhdGljIHZvaWQgZHJtX2Nvbm5lY3Rvcl9mcmVl KHN0cnVjdCBrcmVmICprcmVmKQoreworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ig PQorCQljb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IGRybV9jb25uZWN0b3IsIGJhc2UucmVmY291 bnQpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsKKworCWRybV9t b2RlX29iamVjdF91bnJlZ2lzdGVyKGRldiwgJmNvbm5lY3Rvci0+YmFzZSk7CisJY29ubmVjdG9y LT5mdW5jcy0+ZGVzdHJveShjb25uZWN0b3IpOworfQorCiAvKioKICAqIGRybV9jb25uZWN0b3Jf aW5pdCAtIEluaXQgYSBwcmVhbGxvY2F0ZWQgY29ubmVjdG9yCiAgKiBAZGV2OiBEUk0gZGV2aWNl CkBAIC04ODcsNyArODk3LDkgQEAgaW50IGRybV9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCiAJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKIAotCXJldCA9IGRybV9t b2RlX29iamVjdF9nZXRfcmVnKGRldiwgJmNvbm5lY3Rvci0+YmFzZSwgRFJNX01PREVfT0JKRUNU X0NPTk5FQ1RPUiwgZmFsc2UsIE5VTEwpOworCXJldCA9IGRybV9tb2RlX29iamVjdF9nZXRfcmVn KGRldiwgJmNvbm5lY3Rvci0+YmFzZSwKKwkJCQkgICAgICBEUk1fTU9ERV9PQkpFQ1RfQ09OTkVD VE9SLAorCQkJCSAgICAgIGZhbHNlLCBkcm1fY29ubmVjdG9yX2ZyZWUpOwogCWlmIChyZXQpCiAJ CWdvdG8gb3V0X3VubG9jazsKIApAQCAtMjE0Nyw3ICsyMTU5LDcgQEAgaW50IGRybV9tb2RlX2dl dGNvbm5lY3RvcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCiAJbXV0ZXhf bG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CiAKLQljb25uZWN0b3IgPSBkcm1fY29ubmVj dG9yX2ZpbmQoZGV2LCBvdXRfcmVzcC0+Y29ubmVjdG9yX2lkKTsKKwljb25uZWN0b3IgPSBkcm1f Y29ubmVjdG9yX2xvb2t1cChkZXYsIG91dF9yZXNwLT5jb25uZWN0b3JfaWQpOwogCWlmICghY29u bmVjdG9yKSB7CiAJCXJldCA9IC1FTk9FTlQ7CiAJCWdvdG8gb3V0X3VubG9jazsKQEAgLTIyMzEs NiArMjI0Myw3IEBAIGludCBkcm1fbW9kZV9nZXRjb25uZWN0b3Ioc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKIG91dDoKIAlkcm1fbW9kZXNldF91bmxvY2soJmRldi0+bW9kZV9j b25maWcuY29ubmVjdGlvbl9tdXRleCk7CiAKKwlkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNlKGNv bm5lY3Rvcik7CiBvdXRfdW5sb2NrOgogCW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5t dXRleCk7CiAKQEAgLTI4NzUsMTMgKzI4ODgsMTQgQEAgaW50IGRybV9tb2RlX3NldGNydGMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJfQogCiAJCWZvciAoaSA9IDA7IGkg PCBjcnRjX3JlcS0+Y291bnRfY29ubmVjdG9yczsgaSsrKSB7CisJCQljb25uZWN0b3Jfc2V0W2ld ID0gTlVMTDsKIAkJCXNldF9jb25uZWN0b3JzX3B0ciA9ICh1aW50MzJfdCBfX3VzZXIgKikodW5z aWduZWQgbG9uZyljcnRjX3JlcS0+c2V0X2Nvbm5lY3RvcnNfcHRyOwogCQkJaWYgKGdldF91c2Vy KG91dF9pZCwgJnNldF9jb25uZWN0b3JzX3B0cltpXSkpIHsKIAkJCQlyZXQgPSAtRUZBVUxUOwog CQkJCWdvdG8gb3V0OwogCQkJfQogCi0JCQljb25uZWN0b3IgPSBkcm1fY29ubmVjdG9yX2ZpbmQo ZGV2LCBvdXRfaWQpOworCQkJY29ubmVjdG9yID0gZHJtX2Nvbm5lY3Rvcl9sb29rdXAoZGV2LCBv dXRfaWQpOwogCQkJaWYgKCFjb25uZWN0b3IpIHsKIAkJCQlEUk1fREVCVUdfS01TKCJDb25uZWN0 b3IgaWQgJWQgdW5rbm93blxuIiwKIAkJCQkJCW91dF9pZCk7CkBAIC0yOTA5LDYgKzI5MjMsMTIg QEAgb3V0OgogCWlmIChmYikKIAkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKGZiKTsKIAor CWlmIChjb25uZWN0b3Jfc2V0KSB7CisJCWZvciAoaSA9IDA7IGkgPCBjcnRjX3JlcS0+Y291bnRf Y29ubmVjdG9yczsgaSsrKSB7CisJCQlpZiAoY29ubmVjdG9yX3NldFtpXSkKKwkJCQlkcm1fY29u bmVjdG9yX3VucmVmZXJlbmNlKGNvbm5lY3Rvcl9zZXRbaV0pOworCQl9CisJfQogCWtmcmVlKGNv bm5lY3Rvcl9zZXQpOwogCWRybV9tb2RlX2Rlc3Ryb3koZGV2LCBtb2RlKTsKIAlkcm1fbW9kZXNl dF91bmxvY2tfYWxsKGRldik7CkBAIC00OTk5LDcgKzUwMTksNyBAQCBpbnQgZHJtX21vZGVfb2Jq X3NldF9wcm9wZXJ0eV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAog CXByb3BlcnR5ID0gb2JqX3RvX3Byb3BlcnR5KHByb3Bfb2JqKTsKIAogCWlmICghZHJtX3Byb3Bl cnR5X2NoYW5nZV92YWxpZF9nZXQocHJvcGVydHksIGFyZy0+dmFsdWUsICZyZWYpKQotCQlnb3Rv IG91dDsKKwkJZ290byBvdXRfdW5yZWY7CiAKIAlzd2l0Y2ggKGFyZ19vYmotPnR5cGUpIHsKIAlj YXNlIERSTV9NT0RFX09CSkVDVF9DT05ORUNUT1I6CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fY3J0Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAppbmRleCAyOTdlNTI3Li4xNmE5OGQ0 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCisrKyBiL2luY2x1ZGUvZHJtL2Ry bV9jcnRjLmgKQEAgLTI1NzEsNyArMjU3MSwxNSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1f ZW5jb2RlciAqZHJtX2VuY29kZXJfZmluZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXJldHVy biBtbyA/IG9ial90b19lbmNvZGVyKG1vKSA6IE5VTEw7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3Ry dWN0IGRybV9jb25uZWN0b3IgKmRybV9jb25uZWN0b3JfZmluZChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAorLyoKKyAqIGRybV9jb25uZWN0b3JfbG9va3VwIC0gbG9va3VwIGNvbm5lY3RvciBvYmpl Y3QKKyAqIEBkZXY6IERSTSBkZXZpY2UKKyAqIEBpZDogY29ubmVjdG9yIG9iamVjdCBpZAorICoK KyAqIFRoaXMgZnVuY3Rpb24gbG9va3MgdXAgdGhlIGNvbm5lY3RvciBvYmplY3Qgc3BlY2lmaWVk IGJ5IGlkCisgKiBhZGQgdGFrZXMgYSByZWZlcmVuY2UgdG8gaXQuCisgKi8KK3N0YXRpYyBpbmxp bmUgc3RydWN0IGRybV9jb25uZWN0b3IgKmRybV9jb25uZWN0b3JfbG9va3VwKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJCXVpbnQzMl90IGlkKQogewogCXN0cnVjdCBkcm1fbW9kZV9vYmplY3Qg Km1vOwpAQCAtMjYzOSw2ICsyNjQ3LDI4IEBAIHN0YXRpYyBpbmxpbmUgdWludDMyX3QgZHJtX2Zy YW1lYnVmZmVyX3JlYWRfcmVmY291bnQoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCiAJcmV0 dXJuIGF0b21pY19yZWFkKCZmYi0+YmFzZS5yZWZjb3VudC5yZWZjb3VudCk7CiB9CiAKKy8qCisg KiBkcm1fY29ubmVjdG9yX3JlZmVyZW5jZSAtIGluY3IgdGhlIGNvbm5lY3RvciByZWZjbnQKKyAq IEBjb25uZWN0b3I6IGNvbm5lY3RvcgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaW5jcmVtZW50cyB0 aGUgY29ubmVjdG9yJ3MgcmVmY291bnQuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBkcm1fY29u bmVjdG9yX3JlZmVyZW5jZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCWRy bV9tb2RlX29iamVjdF9yZWZlcmVuY2UoJmNvbm5lY3Rvci0+YmFzZSk7Cit9CisKKy8qKgorICog ZHJtX2Nvbm5lY3Rvcl91bnJlZmVyZW5jZSAtIHVucmVmIGEgY29ubmVjdG9yCisgKiBAY29ubmVj dG9yOiBjb25uZWN0b3IgdG8gdW5yZWYKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGRlY3JlbWVudHMg dGhlIGNvbm5lY3RvcidzIHJlZmNvdW50IGFuZCBmcmVlcyBpdCBpZiBpdCBkcm9wcyB0byB6ZXJv LgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2Nvbm5lY3Rvcl91bnJlZmVyZW5jZShzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCWRybV9tb2RlX29iamVjdF91bnJlZmVy ZW5jZSgmY29ubmVjdG9yLT5iYXNlKTsKK30KKwogLyogUGxhbmUgbGlzdCBpdGVyYXRvciBmb3Ig bGVnYWN5IChvdmVybGF5IG9ubHkpIHBsYW5lcy4gKi8KICNkZWZpbmUgZHJtX2Zvcl9lYWNoX2xl Z2FjeV9wbGFuZShwbGFuZSwgZGV2KSBcCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShwbGFuZSwgJihk ZXYpLT5tb2RlX2NvbmZpZy5wbGFuZV9saXN0LCBoZWFkKSBcCi0tIAoyLjUuNQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==