From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: [PATCH v3 03/12] drm/panel: Keep track of enabled/prepared Date: Tue, 17 Oct 2017 17:13:06 -0400 Message-ID: <20171017211321.7992-4-seanpaul@chromium.org> References: <20171017211321.7992-1-seanpaul@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-it0-x22e.google.com (mail-it0-x22e.google.com [IPv6:2607:f8b0:4001:c0b::22e]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5B36E6E777 for ; Tue, 17 Oct 2017 21:13:53 +0000 (UTC) Received: by mail-it0-x22e.google.com with SMTP id o135so4027486itb.0 for ; Tue, 17 Oct 2017 14:13:53 -0700 (PDT) In-Reply-To: <20171017211321.7992-1-seanpaul@chromium.org> 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: Daniel Vetter , thierry.reding@gmail.com, Daniel Vetter List-Id: dri-devel@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIHN0YXRlIHRyYWNraW5nIHRvIHRoZSBkcm1fcGFuZWwgZnVuY3Rpb25z IHdoaWNoIGtlZXAKdHJhY2sgb2YgZW5hYmxlZCBhbmQgcHJlcGFyZWQuIElmIHRoZSBjYWxscyBh cmUgdW5iYWxhbmNlZCwgYSBXQVJOSU5HIGlzCmlzc3VlZC4KClRoZSBtb3RpdmF0aW9uIGZvciB0 aGlzIGNoYW5nZSBpcyB0aGF0IGEgbnVtYmVyIG9mIHBhbmVsIGRyaXZlcnMKKGluY2x1ZGluZyBw YW5lbC1zaW1wbGUpIGFsbCBkbyB0aGlzIHRvIHByb3RlY3QgdGhlaXIgcmVndWxhdG9yCnJlZmNv dW50cy4gVGhlIGF0b21pYyBmcmFtZXdvcmsgZW5zdXJlcyB0aGUgY2FsbHMgYXJlIGJhbGFuY2Vk LCBhbmQKdGhlcmUgIGFyZW4ndCBhbnkgcGFuZWwgZHJpdmVycyBiZWluZyB1c2VkIGJ5IGxlZ2Fj eSBkcml2ZXJzLiBBcyBzdWNoLAp0aGVzZSBjaGVja3MgYXJlIHVzZWxlc3MsIGJ1dCBsZXQncyBh ZGQgYSBXQVJOSU5HIGp1c3QgaW4gY2FzZSBzb21ldGhpbmcKY3JhenkgaGFwcGVucyAobGlrZSBh IGxlZ2FjeSBkcml2ZXIgdXNpbmcgYSBwYW5lbCkuCgpMZXNzIGNvZGUgPT0gYmV0dGVyLgoKQ2hh bmdlcyBpbiB2MjoKIC0gUmVkdWNlZCBlbmFibGVkL3ByZXBhcmVkIGJvb2xzIHRvIG9uZSBlbnVt IChBbmRyemVqKQogLSBEb24ndCB1cGRhdGUgc3RhdGUgaWYgdGhlIG9wZXJhdGlvbiBmYWlscyAo QW5kcnplaikKIC0gSXNzdWUgd2FybmluZyBldmVuIGlmIG9wZXJhdGlvbiBpcyBub3QgaW1wbGVt ZW50ZWQKCkNoYW5nZXMgaW4gdjM6CiAtIEZ1bmN0aW9ucyBubyBsb25nZXIgc3RhdGljIGlubGlu ZSAoRGFuaWVsKQogLSBBZGRlZCBhIGhlbHBlciBmdW5jdGlvbiB0byBzaGFyZSBzdGF0ZSBjaGFu Z2UgY29kZSAoQW5kcnplaikKIC0gT25seSB3YXJuIHdoZW4gYSBwYW5lbCBpcyBwcmVzZW50IChE YW5pZWwpCiAtIFVwZGF0ZSBzdGF0ZSBpZiBmdW5jdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgKEFu ZHJ6ZWopCgpDYzogQW5kcnplaiBIYWpkYSA8YS5oYWpkYUBzYW1zdW5nLmNvbT4KQ2M6IERhbmll bCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+ClNpZ25lZC1vZmYtYnk6IFNlYW4gUGF1 bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWwu YyB8IDYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogaW5j bHVkZS9kcm0vZHJtX3BhbmVsLmggICAgIHwgMTUgKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdl ZCwgNjYgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jCmluZGV4 IDZmMjg1OThhNWQwZS4uNjU0Nzg1MGI1ZTgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX3BhbmVsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jCkBAIC0yMSw2ICsy MSw3IEBACiAgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCiAgKi8KIAorI2luY2x1ZGUgPGxp bnV4L2J1Zy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVs ZS5oPgogCkBAIC00OCw2ICs0OSw3IEBAIHN0YXRpYyBMSVNUX0hFQUQocGFuZWxfbGlzdCk7CiB2 b2lkIGRybV9wYW5lbF9pbml0KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogewogCUlOSVRfTElT VF9IRUFEKCZwYW5lbC0+bGlzdCk7CisJcGFuZWwtPnN0YXRlID0gRFJNX1BBTkVMX1BPV0VSX09G RjsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVsX2luaXQpOwogCkBAIC0xMjYsNiArMTI4LDIz IEBAIGludCBkcm1fcGFuZWxfZGV0YWNoKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQogfQogRVhQ T1JUX1NZTUJPTChkcm1fcGFuZWxfZGV0YWNoKTsKIAorc3RhdGljIGludCBkcm1fcGFuZWxfY2hh bmdlX3N0YXRlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsLAorCQkJCSAgZW51bSBkcm1fcGFuZWxf c3RhdGUgY3VyX3N0YXRlLAorCQkJCSAgZW51bSBkcm1fcGFuZWxfc3RhdGUgbmV3X3N0YXRlLAor CQkJCSAgaW50ICgqaG9vaykoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpKQoreworCWludCByZXQ7 CisKKwlXQVJOX09OKHBhbmVsLT5zdGF0ZSAhPSBjdXJfc3RhdGUpOworCWlmIChob29rKQorCQly ZXQgPSBob29rKHBhbmVsKTsKKwllbHNlCisJCXJldCA9IC1FTk9TWVM7CisKKwlwYW5lbC0+c3Rh dGUgPSBuZXdfc3RhdGU7CisJcmV0dXJuIHJldDsKK30KKwogLyoqCiAgKiBkcm1fcGFuZWxfdW5w cmVwYXJlIC0gcG93ZXIgb2ZmIGEgcGFuZWwKICAqIEBwYW5lbDogRFJNIHBhbmVsCkBAIC0xMzUs MTQgKzE1NCwxOSBAQCBFWFBPUlRfU1lNQk9MKGRybV9wYW5lbF9kZXRhY2gpOwogICogaXMgdXN1 YWxseSBubyBsb25nZXIgcG9zc2libGUgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgcGFuZWwgdW50 aWwgYW5vdGhlcgogICogY2FsbCB0byBkcm1fcGFuZWxfcHJlcGFyZSgpLgogICoKKyAqIEF0b21p YyBmcmFtZXdvcmsgd2lsbCBlbnN1cmUgdGhhdCBwcmVwYXJlL3VucHJlcGFyZSBhcmUgcHJvcGVy bHkgYmFsYW5jZWQuCisgKiBJZiB0aGlzIGlzIG5vdCB0aGUgY2FzZSwgYSBXQVJOSU5HIHdpbGwg YmUgaXNzdWVkLgorICoKICAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJy b3IgY29kZSBvbiBmYWlsdXJlLgogICovCiBpbnQgZHJtX3BhbmVsX3VucHJlcGFyZShzdHJ1Y3Qg ZHJtX3BhbmVsICpwYW5lbCkKIHsKLQlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVs LT5mdW5jcy0+dW5wcmVwYXJlKQotCQlyZXR1cm4gcGFuZWwtPmZ1bmNzLT51bnByZXBhcmUocGFu ZWwpOworCWlmICghcGFuZWwpCisJCXJldHVybiAtRUlOVkFMOwogCi0JcmV0dXJuIHBhbmVsID8g LUVOT1NZUyA6IC1FSU5WQUw7CisJcmV0dXJuIGRybV9wYW5lbF9jaGFuZ2Vfc3RhdGUocGFuZWws IERSTV9QQU5FTF9QT1dFUl9QUkVQQVJFRCwKKwkJICAgICAgRFJNX1BBTkVMX1BPV0VSX09GRiwK KwkJICAgICAgcGFuZWwtPmZ1bmNzID8gcGFuZWwtPmZ1bmNzLT51bnByZXBhcmUgOiBOVUxMKTsK IH0KIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVsX3VucHJlcGFyZSk7CiAKQEAgLTE1NCwxNCArMTc4 LDE5IEBAIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVsX3VucHJlcGFyZSk7CiAgKiBkcml2ZXJzLiBG b3Igc21hcnQgcGFuZWxzIGl0IHNob3VsZCBzdGlsbCBiZSBwb3NzaWJsZSB0byBjb21tdW5pY2F0 ZSB3aXRoCiAgKiB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0cnkgdmlhIGFueSBjb21tYW5kIGJ1cyBh ZnRlciB0aGlzIGNhbGwuCiAgKgorICogQXRvbWljIGZyYW1ld29yayB3aWxsIGVuc3VyZSB0aGF0 IGVuYWJsZS9kaXNhYmxlIGFyZSBwcm9wZXJseSBiYWxhbmNlZC4KKyAqIElmIHRoaXMgaXMgbm90 IHRoZSBjYXNlLCBhIFdBUk5JTkcgd2lsbCBiZSBpc3N1ZWQuCisgKgogICogUmV0dXJuOiAwIG9u IHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCiAgKi8KIGludCBk cm1fcGFuZWxfZGlzYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHsKLQlpZiAocGFuZWwg JiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+ZGlzYWJsZSkKLQkJcmV0dXJuIHBhbmVs LT5mdW5jcy0+ZGlzYWJsZShwYW5lbCk7CisJaWYgKCFwYW5lbCkKKwkJcmV0dXJuIC1FSU5WQUw7 CiAKLQlyZXR1cm4gcGFuZWwgPyAtRU5PU1lTIDogLUVJTlZBTDsKKwlyZXR1cm4gZHJtX3BhbmVs X2NoYW5nZV9zdGF0ZShwYW5lbCwgRFJNX1BBTkVMX1BPV0VSX0VOQUJMRUQsCisJCSAgICAgIERS TV9QQU5FTF9QT1dFUl9QUkVQQVJFRCwKKwkJICAgICAgcGFuZWwtPmZ1bmNzID8gcGFuZWwtPmZ1 bmNzLT5kaXNhYmxlIDogTlVMTCk7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9wYW5lbF9kaXNhYmxl KTsKIApAQCAtMTczLDE0ICsyMDIsMTkgQEAgRVhQT1JUX1NZTUJPTChkcm1fcGFuZWxfZGlzYWJs ZSk7CiAgKiB0aGUgcGFuZWwuIEFmdGVyIHRoaXMgaGFzIGNvbXBsZXRlZCBpdCBpcyBwb3NzaWJs ZSB0byBjb21tdW5pY2F0ZSB3aXRoIGFueQogICogaW50ZWdyYXRlZCBjaXJjdWl0cnkgdmlhIGEg Y29tbWFuZCBidXMuCiAgKgorICogQXRvbWljIGZyYW1ld29yayB3aWxsIGVuc3VyZSB0aGF0IHBy ZXBhcmUvdW5wcmVwYXJlIGFyZSBwcm9wZXJseSBiYWxhbmNlZC4KKyAqIElmIHRoaXMgaXMgbm90 IHRoZSBjYXNlLCBhIFdBUk5JTkcgd2lsbCBiZSBpc3N1ZWQuCisgKgogICogUmV0dXJuOiAwIG9u IHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCiAgKi8KIGludCBk cm1fcGFuZWxfcHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHsKLQlpZiAocGFuZWwg JiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+cHJlcGFyZSkKLQkJcmV0dXJuIHBhbmVs LT5mdW5jcy0+cHJlcGFyZShwYW5lbCk7CisJaWYgKCFwYW5lbCkKKwkJcmV0dXJuIC1FSU5WQUw7 CiAKLQlyZXR1cm4gcGFuZWwgPyAtRU5PU1lTIDogLUVJTlZBTDsKKwlyZXR1cm4gZHJtX3BhbmVs X2NoYW5nZV9zdGF0ZShwYW5lbCwgRFJNX1BBTkVMX1BPV0VSX09GRiwKKwkJICAgICAgRFJNX1BB TkVMX1BPV0VSX1BSRVBBUkVELAorCQkgICAgICBwYW5lbC0+ZnVuY3MgPyBwYW5lbC0+ZnVuY3Mt PnByZXBhcmU6IE5VTEwpOwogfQogRVhQT1JUX1NZTUJPTChkcm1fcGFuZWxfcHJlcGFyZSk7CiAK QEAgLTE5MiwxNCArMjI2LDE5IEBAIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVsX3ByZXBhcmUpOwog ICogYW5kIHRoZSBiYWNrbGlnaHQgdG8gYmUgZW5hYmxlZC4gQ29udGVudCB3aWxsIGJlIHZpc2li bGUgb24gc2NyZWVuIGFmdGVyCiAgKiB0aGlzIGNhbGwgY29tcGxldGVzLgogICoKKyAqIEF0b21p YyBmcmFtZXdvcmsgd2lsbCBlbnN1cmUgdGhhdCBlbmFibGUvZGlzYWJsZSBhcmUgcHJvcGVybHkg YmFsYW5jZWQuCisgKiBJZiB0aGlzIGlzIG5vdCB0aGUgY2FzZSwgYSBXQVJOSU5HIHdpbGwgYmUg aXNzdWVkLgorICoKICAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3Ig Y29kZSBvbiBmYWlsdXJlLgogICovCiBpbnQgZHJtX3BhbmVsX2VuYWJsZShzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCkKIHsKLQlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5j cy0+ZW5hYmxlKQotCQlyZXR1cm4gcGFuZWwtPmZ1bmNzLT5lbmFibGUocGFuZWwpOworCWlmICgh cGFuZWwpCisJCXJldHVybiAtRUlOVkFMOwogCi0JcmV0dXJuIHBhbmVsID8gLUVOT1NZUyA6IC1F SU5WQUw7CisJcmV0dXJuIGRybV9wYW5lbF9jaGFuZ2Vfc3RhdGUocGFuZWwsIERSTV9QQU5FTF9Q T1dFUl9QUkVQQVJFRCwKKwkJICAgICAgRFJNX1BBTkVMX1BPV0VSX0VOQUJMRUQsCisJCSAgICAg IHBhbmVsLT5mdW5jcyA/IHBhbmVsLT5mdW5jcy0+ZW5hYmxlOiBOVUxMKTsKIH0KIEVYUE9SVF9T WU1CT0woZHJtX3BhbmVsX2VuYWJsZSk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9w YW5lbC5oIGIvaW5jbHVkZS9kcm0vZHJtX3BhbmVsLmgKaW5kZXggMGE5NDQyMDY5ZDNjLi43ZTZh NTUyMDA1ZDcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oCisrKyBiL2luY2x1 ZGUvZHJtL2RybV9wYW5lbC5oCkBAIC03Nyw2ICs3NywxOCBAQCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1 bmNzIHsKIAkJCSAgIHN0cnVjdCBkaXNwbGF5X3RpbWluZyAqdGltaW5ncyk7CiB9OwogCisvKioK KyAqIGVudW0gZHJtX3BhbmVsX3N0YXRlIC0gZGVzY3JpYmVzIHRoZSBzdGF0ZSBvZiBhIHBhbmVs CisgKiBARFJNX1BBTkVMX1BPV0VSX09GRjogcGFuZWwgaXMgY3VycmVudGx5IG9mZiAoYWNjZXNz aWJsZSBmcm9tIFBSRVBBUkVEKQorICogQERSTV9QQU5FTF9QT1dFUl9QUkVQQVJFRDogcGFuZWwg aXMgcHJlcGFyZWQgKGFjY2Vzc2libGUgZnJvbSBPRkYgfHwgRU5BQkxFRCkKKyAqIEBEUk1fUEFO RUxfUE9XRVJfRU5BQkxFRDogcGFuZWwgaXMgZW5hYmxlZCAgKGFjY2Vzc2libGUgZnJvbSBQUkVQ QVJFRCkKKyAqLworZW51bSBkcm1fcGFuZWxfc3RhdGUgeworCURSTV9QQU5FTF9QT1dFUl9PRkYs CisJRFJNX1BBTkVMX1BPV0VSX1BSRVBBUkVELAorCURSTV9QQU5FTF9QT1dFUl9FTkFCTEVECit9 OworCiAvKioKICAqIHN0cnVjdCBkcm1fcGFuZWwgLSBEUk0gcGFuZWwgb2JqZWN0CiAgKiBAZHJt OiBEUk0gZGV2aWNlIG93bmluZyB0aGUgcGFuZWwKQEAgLTg0LDYgKzk2LDcgQEAgc3RydWN0IGRy bV9wYW5lbF9mdW5jcyB7CiAgKiBAZGV2OiBwYXJlbnQgZGV2aWNlIG9mIHRoZSBwYW5lbAogICog QGZ1bmNzOiBvcGVyYXRpb25zIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiB0aGUgcGFuZWwKICAq IEBsaXN0OiBwYW5lbCBlbnRyeSBpbiByZWdpc3RyeQorICogQHN0YXRlOiBrZWVwcyB0cmFjayBv ZiB0aGUgcGFuZWwgcG93ZXIgc3RhdHVzCiAgKi8KIHN0cnVjdCBkcm1fcGFuZWwgewogCXN0cnVj dCBkcm1fZGV2aWNlICpkcm07CkBAIC05Myw2ICsxMDYsOCBAQCBzdHJ1Y3QgZHJtX3BhbmVsIHsK IAljb25zdCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNzICpmdW5jczsKIAogCXN0cnVjdCBsaXN0X2hl YWQgbGlzdDsKKworCWVudW0gZHJtX3BhbmVsX3N0YXRlIHN0YXRlOwogfTsKIAogLyoqCi0tIAoy LjE1LjAucmMxLjI4Ny5nMmIzOGRlMTJjYy1nb29nCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK