From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [RFCv2 12/13] drm: Atomic modeset ioctl Date: Mon, 14 Oct 2013 13:26:47 -0400 Message-ID: <1381771608-15237-13-git-send-email-robdclark@gmail.com> References: <1381771608-15237-1-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qe0-f46.google.com (mail-qe0-f46.google.com [209.85.128.46]) by gabe.freedesktop.org (Postfix) with ESMTP id 6FD43E717D for ; Mon, 14 Oct 2013 10:27:20 -0700 (PDT) Received: by mail-qe0-f46.google.com with SMTP id s14so4245743qeb.33 for ; Mon, 14 Oct 2013 10:27:20 -0700 (PDT) In-Reply-To: <1381771608-15237-1-git-send-email-robdclark@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClRo ZSBhdG9taWMgbW9kZXNldCBpb2N0bCBjbmEgYmUgdXNlZCB0byBwdXNoIGFueSBudW1iZXIgb2Yg bmV3IHZhbHVlcwpmb3Igb2JqZWN0IHByb3BlcnRpZXMuIFRoZSBkcml2ZXIgY2FuIHRoZW4gY2hl Y2sgdGhlIGZ1bGwgZGV2aWNlCmNvbmZpZ3VyYXRpb24gYXMgc2luZ2xlIHVuaXQsIGFuZCB0cnkg dG8gYXBwbHkgdGhlIGNoYW5nZXMgYXRvbWljYWxseS4KClRoZSBpb2N0bCBzaW1wbHkgdGFrZXMg YSBsaXN0IG9mIG9iamVjdCBJRHMgYW5kIHByb3BlcnR5IElEcyBhbmQgdGhlaXIKdmFsdWVzLiBG b3Igc2V0dGluZyB2YWx1ZXMgdG8gYmxvYiBwcm9wZXJ0aWVzLCB0aGUgcHJvcGVydHkgdmFsdWUK aW5kaWNhdGVzIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEsIGFuZCB0aGUgYWN0dWFsIGRhdGEgaXMg cGFzc2VkIHZpYQphbm90aGVyIGJsb2IgcG9pbnRlci4KClRoZSBjYWxsZXIgY2FuIGRlbWFuZCBu b24tYmxvY2tpbmcgb3BlcmF0aW9uIGZyb20gdGhlIGlvY3RsLCBhbmQgaWYgdGhlCmRyaXZlciBj YW4ndCBzYXRpc2Z5IHRoYXQgcmVxdWlyZW1lbnQgYW4gZXJyb3Igd2lsbCBiZSByZXR1cm5lZC4K ClRoZSBjYWxsZXIgY2FuIGFsc28gcmVxdWVzdCB0byByZWNlaXZlIGFzeW5jaHJvbm91cyBjb21w bGV0aW9uIGV2ZW50cwphZnRlciB0aGUgb3BlcmF0aW9uIGhhcyByZWFjaGVkIHRoZSBoYXJkd2Fy ZS4gQW4gZXZlbnQgaXMgc2VudCBmb3IgZWFjaApvYmplY3Qgc3BlY2lmaWVkIGJ5IHRoZSBjYWxs ZXIsIHdoZXRoZXIgb3Igbm90IHRoZSBhY3R1YWwgc3RhdGUgb2YKdGhhdCBvYmplY3QgY2hhbmdl ZC4gRWFjaCBldmVudCBhbHNvIGNhcnJpZXMgYSBmcmFtZWJ1ZmZlciBJRCwgd2hpY2gKaW5kaWNh dGVzIHRvIHVzZXIgc3BhY2UgdGhhdCB0aGUgc3BlY2lmaWVkIG9iamVjdCBpcyBubyBsb25nZXIK YWNjZXNzaW5nIHRoYXQgZnJhbWVidWZmZXIuCgpUT0RPOiBkZXRhaWxlZCBlcnJvciByZXBvcnRp bmc/Cgp2MTogb3JpZ2luYWwKdjI6IHJlYmFzZSBvbiB1YXBpIGNoYW5nZXMsIGFuZCBkcm0gc3Rh dGUgc3RydWN0cy4uIC0tIFJvYiBDbGFyawp2MzogcmViYXNlLCBtaXNzaW5nIHBhZGRpbmcgaW4g ZHJtX2V2ZW50X2F0b21pYy4uIC0tIFJvYiBDbGFyawp2NDogZHJvcCBhdG9taWMgZXZlbnQsIGFs aWduIGZsYWdzIHcvIHBhZ2VmbGlwIChhdG9taWMgZmxhZ3Mgc2hvdWxkIGJlCiAgICBhIHN0cmlj ayBzdXBlcnNldCBvZiBwYWdlZmxpcCBmbGFncyB0byBrZWVwIHRoaW5ncyBlYXNpZXIgZm9yIHRo ZQogICAgZHJpdmVycykKClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgIHwg MTU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBkcml2ZXJz L2dwdS9kcm0vZHJtX2Rydi5jICAgfCAgIDEgKwogaW5jbHVkZS9kcm0vZHJtUC5oICAgICAgICAg IHwgICA2ICsrCiBpbmNsdWRlL2RybS9kcm1fY3J0Yy5oICAgICAgfCAgIDIgKwogaW5jbHVkZS91 YXBpL2RybS9kcm0uaCAgICAgIHwgIDEyICsrKysKIGluY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUu aCB8ICAyMiArKysrKysrCiA2IGZpbGVzIGNoYW5nZWQsIDE5OSBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwppbmRleCAxMDkxZDgyLi45MDQ0YmRiIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Ny dGMuYwpAQCAtMzkxMSw3ICszOTExLDggQEAgaW50IGRybV9tb2RlX3BhZ2VfZmxpcF9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlyZXR1cm4gLUVJTlZBTDsKIAljcnRjID0gb2JqX3Rv X2NydGMob2JqKTsKIAotCXN0YXRlID0gZGV2LT5kcml2ZXItPmF0b21pY19iZWdpbihkZXYsIHBh Z2VfZmxpcC0+ZmxhZ3MpOworCXN0YXRlID0gZGV2LT5kcml2ZXItPmF0b21pY19iZWdpbihkZXYs CisJCQlwYWdlX2ZsaXAtPmZsYWdzIHwgRFJNX01PREVfQVRPTUlDX05PTkJMT0NLKTsKIAlpZiAo SVNfRVJSKHN0YXRlKSkKIAkJcmV0dXJuIFBUUl9FUlIoc3RhdGUpOwogCkBAIC00MzI0LDMgKzQz MjUsMTU3IEBAIHZvaWQgZHJtX21vZGVfY29uZmlnX2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAlpZHJfZGVzdHJveSgmZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2lkcik7CiB9CiBFWFBP UlRfU1lNQk9MKGRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKTsKKworaW50IGRybV9tb2RlX2F0b21p Y19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICB2b2lkICpkYXRhLCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlzdHJ1Y3QgZHJtX21vZGVfYXRvbWljICphcmcgPSBk YXRhOworCXVpbnQzMl90IF9fdXNlciAqb2Jqc19wdHIgPSAodWludDMyX3QgX191c2VyICopKHVu c2lnbmVkIGxvbmcpKGFyZy0+b2Jqc19wdHIpOworCXVpbnQzMl90IF9fdXNlciAqY291bnRfcHJv cHNfcHRyID0gKHVpbnQzMl90IF9fdXNlciAqKSh1bnNpZ25lZCBsb25nKShhcmctPmNvdW50X3By b3BzX3B0cik7CisJdWludDMyX3QgX191c2VyICpwcm9wc19wdHIgPSAodWludDMyX3QgX191c2Vy ICopKHVuc2lnbmVkIGxvbmcpKGFyZy0+cHJvcHNfcHRyKTsKKwl1aW50NjRfdCBfX3VzZXIgKnBy b3BfdmFsdWVzX3B0ciA9ICh1aW50NjRfdCBfX3VzZXIgKikodW5zaWduZWQgbG9uZykoYXJnLT5w cm9wX3ZhbHVlc19wdHIpOworCXVpbnQ2NF90IF9fdXNlciAqYmxvYl92YWx1ZXNfcHRyID0gKHVp bnQ2NF90IF9fdXNlciAqKSh1bnNpZ25lZCBsb25nKShhcmctPmJsb2JfdmFsdWVzX3B0cik7CisJ dW5zaWduZWQgaW50IGNvcGllZF9vYmpzID0gMDsKKwl1bnNpZ25lZCBpbnQgY29waWVkX3Byb3Bz ID0gMDsKKwl1bnNpZ25lZCBpbnQgY29waWVkX2Jsb2JzID0gMDsKKwl2b2lkICpzdGF0ZTsKKwlp bnQgcmV0ID0gMDsKKwl1bnNpZ25lZCBpbnQgaSwgajsKKworCWlmIChhcmctPmZsYWdzICYgfkRS TV9NT0RFX0FUT01JQ19GTEFHUykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBjYW4ndCB0ZXN0 IGFuZCBleHBlY3QgYW4gZXZlbnQgYXQgdGhlIHNhbWUgdGltZS4gKi8KKwlpZiAoKGFyZy0+Zmxh Z3MgJiBEUk1fTU9ERV9BVE9NSUNfVEVTVF9PTkxZKSAmJgorCQkJKGFyZy0+ZmxhZ3MgJiBEUk1f TU9ERV9QQUdFX0ZMSVBfRVZFTlQpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXN0YXRlID0gZGV2 LT5kcml2ZXItPmF0b21pY19iZWdpbihkZXYsIGFyZy0+ZmxhZ3MpOworCWlmIChJU19FUlIoc3Rh dGUpKSB7CisJCXJldCA9IFBUUl9FUlIoc3RhdGUpOworCQlnb3RvIG91dDsKKwl9CisKKwlmb3Ig KGkgPSAwOyBpIDwgYXJnLT5jb3VudF9vYmpzOyBpKyspIHsKKwkJdWludDMyX3Qgb2JqX2lkLCBj b3VudF9wcm9wczsKKwkJc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqOworCisJCWlmIChnZXRf dXNlcihvYmpfaWQsIG9ianNfcHRyICsgY29waWVkX29ianMpKSB7CisJCQlyZXQgPSAtRUZBVUxU OworCQkJZ290byBvdXQ7CisJCX0KKworCQlvYmogPSBkcm1fbW9kZV9vYmplY3RfZmluZChkZXYs IG9ial9pZCwgRFJNX01PREVfT0JKRUNUX0FOWSk7CisJCWlmICghb2JqIHx8ICFvYmotPnByb3Bl cnRpZXMpIHsKKwkJCXJldCA9IC1FTk9FTlQ7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWlmICgo b2JqLT50eXBlID09IERSTV9NT0RFX09CSkVDVF9DUlRDKSAmJgorCQkJCShhcmctPmZsYWdzICYg RFJNX01PREVfUEFHRV9GTElQX0VWRU5UKSkgeworCQkJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFu a19ldmVudCAqZSA9CisJCQkJY3JlYXRlX3ZibGFua19ldmVudChkZXYsIGZpbGVfcHJpdiwgYXJn LT51c2VyX2RhdGEpOworCQkJaWYgKCFlKSB7CisJCQkJcmV0ID0gLUVOT01FTTsKKwkJCQlnb3Rv IG91dDsKKwkJCX0KKwkJCXJldCA9IGRldi0+ZHJpdmVyLT5hdG9taWNfc2V0X2V2ZW50KGRldiwg c3RhdGUsIG9iaiwgZSk7CisJCQlpZiAocmV0KSB7CisJCQkJZGVzdHJveV92YmxhbmtfZXZlbnQo ZGV2LCBmaWxlX3ByaXYsIGUpOworCQkJCWdvdG8gb3V0OworCQkJfQorCQl9CisKKwkJaWYgKGdl dF91c2VyKGNvdW50X3Byb3BzLCBjb3VudF9wcm9wc19wdHIgKyBjb3BpZWRfb2JqcykpIHsKKwkJ CXJldCA9IC1FRkFVTFQ7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWNvcGllZF9vYmpzKys7CisK KwkJZm9yIChqID0gMDsgaiA8IGNvdW50X3Byb3BzOyBqKyspIHsKKwkJCXVpbnQzMl90IHByb3Bf aWQ7CisJCQl1aW50NjRfdCBwcm9wX3ZhbHVlOworCQkJc3RydWN0IGRybV9tb2RlX29iamVjdCAq cHJvcF9vYmo7CisJCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wOworCQkJdm9pZCAqYmxvYl9k YXRhID0gTlVMTDsKKworCQkJaWYgKGdldF91c2VyKHByb3BfaWQsIHByb3BzX3B0ciArIGNvcGll ZF9wcm9wcykpIHsKKwkJCQlyZXQgPSAtRUZBVUxUOworCQkJCWdvdG8gb3V0OworCQkJfQorCisJ CQlpZiAoIW9iamVjdF9oYXNfcHJvcChvYmosIHByb3BfaWQpKSB7CisJCQkJcmV0ID0gLUVJTlZB TDsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKworCQkJcHJvcF9vYmogPSBkcm1fbW9kZV9vYmplY3Rf ZmluZChkZXYsIHByb3BfaWQsCisJCQkJCURSTV9NT0RFX09CSkVDVF9QUk9QRVJUWSk7CisJCQlp ZiAoIXByb3Bfb2JqKSB7CisJCQkJcmV0ID0gLUVOT0VOVDsKKwkJCQlnb3RvIG91dDsKKwkJCX0K KwkJCXByb3AgPSBvYmpfdG9fcHJvcGVydHkocHJvcF9vYmopOworCisJCQlpZiAoZ2V0X3VzZXIo cHJvcF92YWx1ZSwgcHJvcF92YWx1ZXNfcHRyICsgY29waWVkX3Byb3BzKSkgeworCQkJCXJldCA9 IC1FRkFVTFQ7CisJCQkJZ290byBvdXQ7CisJCQl9CisKKwkJCWlmICghZHJtX3Byb3BlcnR5X2No YW5nZV9pc192YWxpZChwcm9wLCBwcm9wX3ZhbHVlKSkgeworCQkJCXJldCA9IC1FSU5WQUw7CisJ CQkJZ290byBvdXQ7CisJCQl9CisKKwkJCWlmICgocHJvcC0+ZmxhZ3MgJiBEUk1fTU9ERV9QUk9Q X0JMT0IpICYmIHByb3BfdmFsdWUpIHsKKwkJCQl1aW50NjRfdCBibG9iX3B0cjsKKworCQkJCWlm IChnZXRfdXNlcihibG9iX3B0ciwgYmxvYl92YWx1ZXNfcHRyICsgY29waWVkX2Jsb2JzKSkgewor CQkJCQlyZXQgPSAtRUZBVUxUOworCQkJCQlnb3RvIG91dDsKKwkJCQl9CisKKwkJCQlibG9iX2Rh dGEgPSBrbWFsbG9jKHByb3BfdmFsdWUsIEdGUF9LRVJORUwpOworCQkJCWlmICghYmxvYl9kYXRh KSB7CisJCQkJCXJldCA9IC1FTk9NRU07CisJCQkJCWdvdG8gb3V0OworCQkJCX0KKworCQkJCWlm IChjb3B5X2Zyb21fdXNlcihibG9iX2RhdGEsICh2b2lkIF9fdXNlciAqKSh1bnNpZ25lZCBsb25n KWJsb2JfcHRyLCBwcm9wX3ZhbHVlKSkgeworCQkJCQlrZnJlZShibG9iX2RhdGEpOworCQkJCQly ZXQgPSAtRUZBVUxUOworCQkJCQlnb3RvIG91dDsKKwkJCQl9CisJCQl9CisKKwkJCS8qIFVzZXIg c3BhY2Ugc2VuZHMgdGhlIGJsb2IgcG9pbnRlciBldmVuIGlmIHdlCisJCQkgKiBkb24ndCB1c2Ug aXQgKGxlbmd0aD09MCkuCisJCQkgKi8KKwkJCWlmIChwcm9wLT5mbGFncyAmIERSTV9NT0RFX1BS T1BfQkxPQikKKwkJCQljb3BpZWRfYmxvYnMrKzsKKworCQkJLyogVGhlIGRyaXZlciB3aWxsIGJl IGluIGNoYXJnZSBvZiBibG9iX2RhdGEgZnJvbSBub3cgb24uICovCisJCQlyZXQgPSBkcm1fbW9k ZV9zZXRfb2JqX3Byb3Aob2JqLCBzdGF0ZSwgcHJvcCwKKwkJCQkJcHJvcF92YWx1ZSwgYmxvYl9k YXRhKTsKKwkJCWlmIChyZXQpCisJCQkJZ290byBvdXQ7CisKKwkJCWNvcGllZF9wcm9wcysrOwor CQl9CisJfQorCisJcmV0ID0gZGV2LT5kcml2ZXItPmF0b21pY19jaGVjayhkZXYsIHN0YXRlKTsK KwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCWlmIChhcmctPmZsYWdzICYgRFJNX01PREVfQVRP TUlDX1RFU1RfT05MWSkKKwkJZ290byBvdXQ7CisKKwlyZXQgPSBkZXYtPmRyaXZlci0+YXRvbWlj X2NvbW1pdChkZXYsIHN0YXRlKTsKKworIG91dDoKKwlkZXYtPmRyaXZlci0+YXRvbWljX2VuZChk ZXYsIHN0YXRlKTsKKworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYwppbmRleCBlNTcyZGQyLi40 M2UwNGFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZHJ2LmMKQEAgLTE2Niw2ICsxNjYsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9pb2N0bF9kZXNjIGRybV9pb2N0bHNbXSA9IHsKIAlEUk1fSU9DVExfREVGKERSTV9J T0NUTF9NT0RFX09CSl9HRVRQUk9QRVJUSUVTLCBkcm1fbW9kZV9vYmpfZ2V0X3Byb3BlcnRpZXNf aW9jdGwsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCiAJRFJNX0lPQ1RMX0RFRihE Uk1fSU9DVExfTU9ERV9PQkpfU0VUUFJPUEVSVFksIGRybV9tb2RlX29ial9zZXRfcHJvcGVydHlf aW9jdGwsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKIAlEUk1f SU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0NVUlNPUjIsIGRybV9tb2RlX2N1cnNvcjJfaW9jdGws IERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKKwlEUk1fSU9DVExf REVGKERSTV9JT0NUTF9NT0RFX0FUT01JQywgZHJtX21vZGVfYXRvbWljX2lvY3RsLCBEUk1fTUFT VEVSfERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCiB9OwogCiAjZGVmaW5lIERSTV9D T1JFX0lPQ1RMX0NPVU5UCUFSUkFZX1NJWkUoIGRybV9pb2N0bHMgKQpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZHJtUC5oIGIvaW5jbHVkZS9kcm0vZHJtUC5oCmluZGV4IDRjM2RlMjIuLmYyODI3 MzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybVAuaAorKysgYi9pbmNsdWRlL2RybS9kcm1Q LmgKQEAgLTExNTgsNiArMTE1OCwxMiBAQCBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50 IHsKIAlzdHJ1Y3QgZHJtX2V2ZW50X3ZibGFuayBldmVudDsKIH07CiAKK3N0cnVjdCBkcm1fcGVu ZGluZ19hdG9taWNfZXZlbnQgeworCXN0cnVjdCBkcm1fcGVuZGluZ19ldmVudCBiYXNlOworCWlu dCBwaXBlOworCXN0cnVjdCBkcm1fZXZlbnRfYXRvbWljIGV2ZW50OworfTsKKwogLyoqCiAgKiBE Uk0gZGV2aWNlIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50IGEgY29tcGxldGUg Y2FyZCB0aGF0CiAgKiBtYXkgY29udGFpbiBtdWx0aXBsZSBoZWFkcy4KZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL2RybV9jcnRjLmggYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCmluZGV4IDgyMjc2 MjcuLmFjZWU5ZWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKKysrIGIvaW5j bHVkZS9kcm0vZHJtX2NydGMuaApAQCAtMTMxOCw2ICsxMzE4LDggQEAgZXh0ZXJuIGludCBkcm1f bW9kZV9vYmpfZ2V0X3Byb3BlcnRpZXNfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwKIAkJCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CiBleHRlcm4g aW50IGRybV9tb2RlX29ial9zZXRfcHJvcGVydHlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKIAkJCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0 ZXJuIGludCBkcm1fbW9kZV9hdG9taWNfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJ CQkgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwogCiBleHRlcm4gdm9p ZCBkcm1fZmJfZ2V0X2JwcF9kZXB0aCh1aW50MzJfdCBmb3JtYXQsIHVuc2lnbmVkIGludCAqZGVw dGgsCiAJCQkJIGludCAqYnBwKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgg Yi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCmluZGV4IGVjZTg2NzguLmVmYjE0NjEgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaApA QCAtNzMzLDYgKzczMyw3IEBAIHN0cnVjdCBkcm1fcHJpbWVfaGFuZGxlIHsKICNkZWZpbmUgRFJN X0lPQ1RMX01PREVfT0JKX0dFVFBST1BFUlRJRVMJRFJNX0lPV1IoMHhCOSwgc3RydWN0IGRybV9t b2RlX29ial9nZXRfcHJvcGVydGllcykKICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfT0JKX1NFVFBS T1BFUlRZCURSTV9JT1dSKDB4QkEsIHN0cnVjdCBkcm1fbW9kZV9vYmpfc2V0X3Byb3BlcnR5KQog I2RlZmluZSBEUk1fSU9DVExfTU9ERV9DVVJTT1IyCQlEUk1fSU9XUigweEJCLCBzdHJ1Y3QgZHJt X21vZGVfY3Vyc29yMikKKyNkZWZpbmUgRFJNX0lPQ1RMX01PREVfQVRPTUlDCQlEUk1fSU9XUigw eEJDLCBzdHJ1Y3QgZHJtX21vZGVfYXRvbWljKQogCiAvKioKICAqIERldmljZSBzcGVjaWZpYyBp b2N0bHMgc2hvdWxkIG9ubHkgYmUgaW4gdGhlaXIgcmVzcGVjdGl2ZSBoZWFkZXJzCkBAIC03NzQs NiArNzc1LDE3IEBAIHN0cnVjdCBkcm1fZXZlbnRfdmJsYW5rIHsKIAlfX3UzMiByZXNlcnZlZDsK IH07CiAKK3N0cnVjdCBkcm1fZXZlbnRfYXRvbWljIHsKKwlzdHJ1Y3QgZHJtX2V2ZW50IGJhc2U7 CisJX191NjQgdXNlcl9kYXRhOworCV9fdTMyIHR2X3NlYzsKKwlfX3UzMiB0dl91c2VjOworCV9f dTMyIHNlcXVlbmNlOworCV9fdTMyIG9ial9pZDsKKwlfX3UzMiBvbGRfZmJfaWQ7CisJX191MzIg cmVzZXJ2ZWQ7Cit9OworCiAjZGVmaW5lIERSTV9DQVBfRFVNQl9CVUZGRVIgMHgxCiAjZGVmaW5l IERSTV9DQVBfVkJMQU5LX0hJR0hfQ1JUQyAweDIKICNkZWZpbmUgRFJNX0NBUF9EVU1CX1BSRUZF UlJFRF9ERVBUSCAweDMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCBi L2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAppbmRleCA2ZDRmMDg5Li5mMGJlODMwIDEwMDY0 NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKKysrIGIvaW5jbHVkZS91YXBpL2Ry bS9kcm1fbW9kZS5oCkBAIC00ODksNCArNDg5LDI2IEBAIHN0cnVjdCBkcm1fbW9kZV9kZXN0cm95 X2R1bWIgewogCXVpbnQzMl90IGhhbmRsZTsKIH07CiAKKy8qIHBhZ2UtZmxpcCBmbGFncyBhcmUg dmFsaWQsIHBsdXM6ICovCisjZGVmaW5lIERSTV9NT0RFX0FUT01JQ19URVNUX09OTFkgMHgwMTAw CisjZGVmaW5lIERSTV9NT0RFX0FUT01JQ19OT05CTE9DSyAgMHgwMjAwCisKKyNkZWZpbmUgRFJN X01PREVfQVRPTUlDX0ZMQUdTIChcCisJCURSTV9NT0RFX1BBR0VfRkxJUF9FVkVOVCB8XAorCQlE Uk1fTU9ERV9QQUdFX0ZMSVBfQVNZTkMgfFwKKwkJRFJNX01PREVfQVRPTUlDX1RFU1RfT05MWSB8 XAorCQlEUk1fTU9ERV9BVE9NSUNfTk9OQkxPQ0spCisKKy8qIEZJWE1FIGNvbWUgdXAgd2l0aCBz b21lIHNhbmUgZXJyb3IgcmVwb3J0aW5nIG1lY2hhbmlzbT8gKi8KK3N0cnVjdCBkcm1fbW9kZV9h dG9taWMgeworCV9fdTMyIGZsYWdzOworCV9fdTMyIGNvdW50X29ianM7CisJX191NjQgb2Jqc19w dHI7CisJX191NjQgY291bnRfcHJvcHNfcHRyOworCV9fdTY0IHByb3BzX3B0cjsKKwlfX3U2NCBw cm9wX3ZhbHVlc19wdHI7CisJX191NjQgYmxvYl92YWx1ZXNfcHRyOworCV9fdTY0IHVzZXJfZGF0 YTsKK307CisKICNlbmRpZgotLSAKMS44LjMuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK