From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robert Tarasov Subject: [PATCH] drm/udl: Refactor edid retreiving in UDL driver Date: Wed, 13 Mar 2019 11:38:58 -0700 Message-ID: <20190313183858.157667-1-tutankhamen@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pg1-x542.google.com (mail-pg1-x542.google.com [IPv6:2607:f8b0:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3620D895C1 for ; Wed, 13 Mar 2019 18:39:03 +0000 (UTC) Received: by mail-pg1-x542.google.com with SMTP id u9so2130091pgo.7 for ; Wed, 13 Mar 2019 11:39:03 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: airlied@redhat.com Cc: Robert Tarasov , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org Tm93IGRybS91ZGwgZHJpdmVyIHVzZXMgZHJtX2RvX2dldF9lZGlkKCkgZnVuY3Rpb24gdG8gcmV0 cmVpdmUgYW5kCnZhbGlkYXRlIGFsbCBibG9ja3Mgb2YgRURJRCBkYXRhLiBPbGQgYXBwcm9hY2gg aGFkIGluc3VmZmljaWVudAp2YWxpZGF0aW9uIHJvdXRpbmUgYW5kIGhhZCBwcm9ibGVtcyB3aXRo IHJldHJlaXZpbmcgb2YgZXh0cmEgYmxvY2tzCgpTaWduZWQtb2ZmLWJ5OiBSb2JlcnQgVGFyYXNv diA8dHV0YW5raGFtZW5AY2hyb21pdW0ub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS91ZGwvdWRs X2Nvbm5lY3Rvci5jIHwgNzIgKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA2MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwv dWRsX2Nvbm5lY3Rvci5jCmluZGV4IGMzZGMxZmQyMGNiNC4uYzdmOGFjMmNkYmU1IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9jb25uZWN0b3IuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vdWRsL3VkbF9jb25uZWN0b3IuYwpAQCAtMTcsMTggKzE3LDE5IEBACiAjaW5jbHVkZSAi dWRsX2Nvbm5lY3Rvci5oIgogI2luY2x1ZGUgInVkbF9kcnYuaCIKIAotc3RhdGljIGJvb2wgdWRs X2dldF9lZGlkX2Jsb2NrKHN0cnVjdCB1ZGxfZGV2aWNlICp1ZGwsIGludCBibG9ja19pZHgsCi0J CQkJCQkJICAgdTggKmJ1ZmYpCitzdGF0aWMgaW50IHVkbF9nZXRfZWRpZF9ibG9jayh2b2lkICpk YXRhLCB1OCAqYnVmLCB1bnNpZ25lZCBpbnQgYmxvY2ssCisJCQkJc2l6ZV90IGxlbikKIHsKIAlp bnQgcmV0LCBpOwogCXU4ICpyZWFkX2J1ZmY7CisJc3RydWN0IHVkbF9kZXZpY2UgKnVkbCA9IGRh dGE7CiAKIAlyZWFkX2J1ZmYgPSBrbWFsbG9jKDIsIEdGUF9LRVJORUwpOwogCWlmICghcmVhZF9i dWZmKQotCQlyZXR1cm4gZmFsc2U7CisJCXJldHVybiAtMTsKIAotCWZvciAoaSA9IDA7IGkgPCBF RElEX0xFTkdUSDsgaSsrKSB7Ci0JCWludCBidmFsID0gKGkgKyBibG9ja19pZHggKiBFRElEX0xF TkdUSCkgPDwgODsKKwlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKwkJaW50IGJ2YWwgPSAo aSArIGJsb2NrICogRURJRF9MRU5HVEgpIDw8IDg7CiAJCXJldCA9IHVzYl9jb250cm9sX21zZyh1 ZGwtPnVkZXYsCiAJCQkJICAgICAgdXNiX3JjdmN0cmxwaXBlKHVkbC0+dWRldiwgMCksCiAJCQkJ CSAgKDB4MDIpLCAoMHg4MCB8ICgweDAyIDw8IDUpKSwgYnZhbCwKQEAgLTM2LDYwICszNywxMyBA QCBzdGF0aWMgYm9vbCB1ZGxfZ2V0X2VkaWRfYmxvY2soc3RydWN0IHVkbF9kZXZpY2UgKnVkbCwg aW50IGJsb2NrX2lkeCwKIAkJaWYgKHJldCA8IDEpIHsKIAkJCURSTV9FUlJPUigiUmVhZCBFRElE IGJ5dGUgJWQgZmFpbGVkIGVyciAleFxuIiwgaSwgcmV0KTsKIAkJCWtmcmVlKHJlYWRfYnVmZik7 Ci0JCQlyZXR1cm4gZmFsc2U7CisJCQlyZXR1cm4gLTE7CiAJCX0KLQkJYnVmZltpXSA9IHJlYWRf YnVmZlsxXTsKKwkJYnVmW2ldID0gcmVhZF9idWZmWzFdOwogCX0KIAogCWtmcmVlKHJlYWRfYnVm Zik7Ci0JcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBib29sIHVkbF9nZXRfZWRpZChzdHJ1Y3Qg dWRsX2RldmljZSAqdWRsLCB1OCAqKnJlc3VsdF9idWZmLAotCQkJIGludCAqcmVzdWx0X2J1ZmZf c2l6ZSkKLXsKLQlpbnQgaSwgZXh0ZW5zaW9uczsKLQl1OCAqYmxvY2tfYnVmZiA9IE5VTEwsICpi dWZmX3B0cjsKLQotCWJsb2NrX2J1ZmYgPSBrbWFsbG9jKEVESURfTEVOR1RILCBHRlBfS0VSTkVM KTsKLQlpZiAoYmxvY2tfYnVmZiA9PSBOVUxMKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlpZiAodWRs X2dldF9lZGlkX2Jsb2NrKHVkbCwgMCwgYmxvY2tfYnVmZikgJiYKLQkgICAgbWVtY2hyX2ludihi bG9ja19idWZmLCAwLCBFRElEX0xFTkdUSCkpIHsKLQkJZXh0ZW5zaW9ucyA9ICgoc3RydWN0IGVk aWQgKilibG9ja19idWZmKS0+ZXh0ZW5zaW9uczsKLQkJaWYgKGV4dGVuc2lvbnMgPiAwKSB7Ci0J CQkvKiB3ZSBoYXZlIHRvIHJlYWQgYWxsIGV4dGVuc2lvbnMgb25lIGJ5IG9uZSAqLwotCQkJKnJl c3VsdF9idWZmX3NpemUgPSBFRElEX0xFTkdUSCAqIChleHRlbnNpb25zICsgMSk7Ci0JCQkqcmVz dWx0X2J1ZmYgPSBrbWFsbG9jKCpyZXN1bHRfYnVmZl9zaXplLCBHRlBfS0VSTkVMKTsKLQkJCWJ1 ZmZfcHRyID0gKnJlc3VsdF9idWZmOwotCQkJaWYgKGJ1ZmZfcHRyID09IE5VTEwpIHsKLQkJCQlr ZnJlZShibG9ja19idWZmKTsKLQkJCQlyZXR1cm4gZmFsc2U7Ci0JCQl9Ci0JCQltZW1jcHkoYnVm Zl9wdHIsIGJsb2NrX2J1ZmYsIEVESURfTEVOR1RIKTsKLQkJCWtmcmVlKGJsb2NrX2J1ZmYpOwot CQkJYnVmZl9wdHIgKz0gRURJRF9MRU5HVEg7Ci0JCQlmb3IgKGkgPSAxOyBpIDwgZXh0ZW5zaW9u czsgKytpKSB7Ci0JCQkJaWYgKHVkbF9nZXRfZWRpZF9ibG9jayh1ZGwsIGksIGJ1ZmZfcHRyKSkg ewotCQkJCQlidWZmX3B0ciArPSBFRElEX0xFTkdUSDsKLQkJCQl9IGVsc2UgewotCQkJCQlrZnJl ZSgqcmVzdWx0X2J1ZmYpOwotCQkJCQkqcmVzdWx0X2J1ZmYgPSBOVUxMOwotCQkJCQlyZXR1cm4g ZmFsc2U7Ci0JCQkJfQotCQkJfQotCQkJcmV0dXJuIHRydWU7Ci0JCX0KLQkJLyogd2UgaGF2ZSBv bmx5IGJhc2UgZWRpZCBibG9jayAqLwotCQkqcmVzdWx0X2J1ZmYgPSBibG9ja19idWZmOwotCQkq cmVzdWx0X2J1ZmZfc2l6ZSA9IEVESURfTEVOR1RIOwotCQlyZXR1cm4gdHJ1ZTsKLQl9Ci0KLQlr ZnJlZShibG9ja19idWZmKTsKLQotCXJldHVybiBmYWxzZTsKKwlyZXR1cm4gMDsKIH0KIAogc3Rh dGljIGludCB1ZGxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCkBA IC0xMjEsOCArNzUsNiBAQCBzdGF0aWMgaW50IHVkbF9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCiBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwogdWRs X2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQogewot CXU4ICplZGlkX2J1ZmYgPSBOVUxMOwotCWludCBlZGlkX2J1ZmZfc2l6ZSA9IDA7CiAJc3RydWN0 IHVkbF9kZXZpY2UgKnVkbCA9IGNvbm5lY3Rvci0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3Qg dWRsX2RybV9jb25uZWN0b3IgKnVkbF9jb25uZWN0b3IgPQogCQkJCQljb250YWluZXJfb2YoY29u bmVjdG9yLApAQCAtMTM1LDEyICs4NywxMCBAQCB1ZGxfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCiAJCXVkbF9jb25uZWN0b3ItPmVkaWQgPSBOVUxM OwogCX0KIAotCi0JaWYgKCF1ZGxfZ2V0X2VkaWQodWRsLCAmZWRpZF9idWZmLCAmZWRpZF9idWZm X3NpemUpKQorCXVkbF9jb25uZWN0b3ItPmVkaWQgPSBkcm1fZG9fZ2V0X2VkaWQoY29ubmVjdG9y LCB1ZGxfZ2V0X2VkaWRfYmxvY2ssIHVkbCk7CisJaWYgKCF1ZGxfY29ubmVjdG9yLT5lZGlkKQog CQlyZXR1cm4gY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7CiAKLQl1ZGxfY29ubmVjdG9y LT5lZGlkID0gKHN0cnVjdCBlZGlkICopZWRpZF9idWZmOwotCQogCXJldHVybiBjb25uZWN0b3Jf c3RhdHVzX2Nvbm5lY3RlZDsKIH0KIAotLSAKMi4yMS4wLjM2MC5nNDcxYzMwOGY5MjgtZ29vZwoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs