From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v2 19/21] drm/dp: Add support for eDP link rates Date: Mon, 2 Sep 2019 13:31:19 +0200 Message-ID: <20190902113121.31323-20-thierry.reding@gmail.com> References: <20190902113121.31323-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com [IPv6:2a00:1450:4864:20::343]) by gabe.freedesktop.org (Postfix) with ESMTPS id 34A2C89C2C for ; Mon, 2 Sep 2019 11:32:06 +0000 (UTC) Received: by mail-wm1-x343.google.com with SMTP id k2so12750449wmj.4 for ; Mon, 02 Sep 2019 04:32:06 -0700 (PDT) In-Reply-To: <20190902113121.31323-1-thierry.reding@gmail.com> 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 List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClNpZ25lZC1vZmYtYnk6 IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2RybV9kcF9oZWxwZXIuYyB8IDEyMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog aW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oICAgICB8ICAgOSArKysKIDIgZmlsZXMgY2hhbmdl ZCwgMTMwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rw X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYwppbmRleCAwMWQzNGYz M2M2NTguLjEzNmVlNjA5ZjJlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9o ZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCkBAIC0zODUsNiAr Mzg1LDEwNyBAQCBzdGF0aWMgdm9pZCBkcm1fZHBfbGlua19yZXNldChzdHJ1Y3QgZHJtX2RwX2xp bmsgKmxpbmspCiAJbGluay0+bGFuZXMgPSAwOwogfQogCisvKioKKyAqIGRybV9kcF9saW5rX2Fk ZF9yYXRlKCkgLSBhZGQgYSByYXRlIHRvIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCByYXRlcworICog QGxpbms6IHRoZSBsaW5rIHRvIGFkZCB0aGUgcmF0ZSB0bworICogQHJhdGU6IHRoZSByYXRlIHRv IGFkZAorICoKKyAqIEFkZCBhIGxpbmsgcmF0ZSB0byB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgbGlu ayByYXRlcy4KKyAqCisgKiBSZXR1cm5zOgorICogMCBvbiBzdWNjZXNzIG9yIG9uZSBvZiB0aGUg Zm9sbG93aW5nIG5lZ2F0aXZlIGVycm9yIGNvZGVzIG9uIGZhaWx1cmU6CisgKiAtIEVOT1NQQyBp ZiB0aGUgbWF4aW11bSBudW1iZXIgb2Ygc3VwcG9ydGVkIHJhdGVzIGhhcyBiZWVuIHJlYWNoZWQK KyAqIC0gRUVYSVNUUyBpZiB0aGUgbGluayBhbHJlYWR5IHN1cHBvcnRzIHRoaXMgcmF0ZQorICoK KyAqIFNlZSBhbHNvOgorICogZHJtX2RwX2xpbmtfcmVtb3ZlX3JhdGUoKQorICovCitpbnQgZHJt X2RwX2xpbmtfYWRkX3JhdGUoc3RydWN0IGRybV9kcF9saW5rICpsaW5rLCB1bnNpZ25lZCBsb25n IHJhdGUpCit7CisJdW5zaWduZWQgaW50IGksIHBpdm90OworCisJaWYgKGxpbmstPm51bV9yYXRl cyA9PSBEUF9NQVhfU1VQUE9SVEVEX1JBVEVTKQorCQlyZXR1cm4gLUVOT1NQQzsKKworCWZvciAo cGl2b3QgPSAwOyBwaXZvdCA8IGxpbmstPm51bV9yYXRlczsgcGl2b3QrKykKKwkJaWYgKHJhdGUg PD0gbGluay0+cmF0ZXNbcGl2b3RdKQorCQkJYnJlYWs7CisKKwlpZiAocGl2b3QgIT0gbGluay0+ bnVtX3JhdGVzICYmIHJhdGUgPT0gbGluay0+cmF0ZXNbcGl2b3RdKQorCQlyZXR1cm4gLUVFWElT VDsKKworCWZvciAoaSA9IGxpbmstPm51bV9yYXRlczsgaSA+IHBpdm90OyBpLS0pCisJCWxpbmst PnJhdGVzW2ldID0gbGluay0+cmF0ZXNbaSAtIDFdOworCisJbGluay0+cmF0ZXNbcGl2b3RdID0g cmF0ZTsKKwlsaW5rLT5udW1fcmF0ZXMrKzsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJP TChkcm1fZHBfbGlua19hZGRfcmF0ZSk7CisKKy8qKgorICogZHJtX2RwX2xpbmtfcmVtb3ZlX3Jh dGUoKSAtIHJlbW92ZSBhIHJhdGUgZnJvbSB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgcmF0ZXMKKyAq IEBsaW5rOiB0aGUgbGluayBmcm9tIHdoaWNoIHRvIHJlbW92ZSB0aGUgcmF0ZQorICogQHJhdGU6 IHRoZSByYXRlIHRvIHJlbW92ZQorICoKKyAqIFJlbW92ZXMgYSBsaW5rIHJhdGUgZnJvbSB0aGUg bGlzdCBvZiBzdXBwb3J0ZWQgbGluayByYXRlcy4KKyAqCisgKiBSZXR1cm5zOgorICogMCBvbiBz dWNjZXNzIG9yIG9uZSBvZiB0aGUgZm9sbG93aW5nIG5lZ2F0aXZlIGVycm9yIGNvZGVzIG9uIGZh aWx1cmU6CisgKiAtIEVJTlZBTCBpZiB0aGUgc3BlY2lmaWVkIHJhdGUgaXMgbm90IGFtb25nIHRo ZSBzdXBwb3J0ZWQgcmF0ZXMKKyAqCisgKiBTZWUgYWxzbzoKKyAqIGRybV9kcF9saW5rX2FkZF9y YXRlKCkKKyAqLworaW50IGRybV9kcF9saW5rX3JlbW92ZV9yYXRlKHN0cnVjdCBkcm1fZHBfbGlu ayAqbGluaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXVuc2lnbmVkIGludCBpOworCisJZm9y IChpID0gMDsgaSA8IGxpbmstPm51bV9yYXRlczsgaSsrKQorCQlpZiAocmF0ZSA9PSBsaW5rLT5y YXRlc1tpXSkKKwkJCWJyZWFrOworCisJaWYgKGkgPT0gbGluay0+bnVtX3JhdGVzKQorCQlyZXR1 cm4gLUVJTlZBTDsKKworCWxpbmstPm51bV9yYXRlcy0tOworCisJZm9yIChpID0gaTsgaSA8IGxp bmstPm51bV9yYXRlczsgaSsrKQorCQlsaW5rLT5yYXRlc1tpXSA9IGxpbmstPnJhdGVzW2kgKyAx XTsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChkcm1fZHBfbGlua19yZW1vdmVfcmF0 ZSk7CisKKy8qKgorICogZHJtX2RwX2xpbmtfdXBkYXRlX3JhdGVzKCkgLSBub3JtYWxpemUgdGhl IHN1cHBvcnRlZCBsaW5rIHJhdGVzIGFycmF5CisgKiBAbGluazogdGhlIGxpbmsgZm9yIHdoaWNo IHRvIG5vcm1hbGl6ZSB0aGUgc3VwcG9ydGVkIGxpbmsgcmF0ZXMKKyAqCisgKiBVc2VycyBzaG91 bGQgY2FsbCB0aGlzIGZ1bmN0aW9uIGFmdGVyIHRoZXkndmUgbWFudWFsbHkgbW9kaWZpZWQgdGhl IGFycmF5CisgKiBvZiBzdXBwb3J0ZWQgbGluayByYXRlcy4gVGhpcyBmdW5jdGlvbiByZW1vdmVz IGFueSBzdGFsZSBlbnRyaWVzLCBjb21wYWN0cworICogdGhlIGFycmF5IGFuZCB1cGRhdGVzIHRo ZSBzdXBwb3J0ZWQgbGluayByYXRlIGNvdW50LiBOb3RlIHRoYXQgY2FsbGluZyB0aGUKKyAqIGRy bV9kcF9saW5rX3JlbW92ZV9yYXRlKCkgZnVuY3Rpb24gYWxyZWFkeSBkb2VzIHRoaXMgamFuaXRv cmlhbCB3b3JrLgorICoKKyAqIFNlZSBhbHNvOgorICogZHJtX2RwX2xpbmtfYWRkX3JhdGUoKSwg ZHJtX2RwX2xpbmtfcmVtb3ZlX3JhdGUoKQorICovCit2b2lkIGRybV9kcF9saW5rX3VwZGF0ZV9y YXRlcyhzdHJ1Y3QgZHJtX2RwX2xpbmsgKmxpbmspCit7CisJdW5zaWduZWQgaW50IGksIGNvdW50 ID0gMDsKKworCWZvciAoaSA9IDA7IGkgPCBsaW5rLT5udW1fcmF0ZXM7IGkrKykgeworCQlpZiAo bGluay0+cmF0ZXNbaV0gIT0gMCkKKwkJCWxpbmstPnJhdGVzW2NvdW50KytdID0gbGluay0+cmF0 ZXNbaV07CisJfQorCisJZm9yIChpID0gY291bnQ7IGkgPCBsaW5rLT5udW1fcmF0ZXM7IGkrKykK KwkJbGluay0+cmF0ZXNbaV0gPSAwOworCisJbGluay0+bnVtX3JhdGVzID0gY291bnQ7Cit9CitF WFBPUlRfU1lNQk9MKGRybV9kcF9saW5rX3VwZGF0ZV9yYXRlcyk7CisKIC8qKgogICogZHJtX2Rw X2xpbmtfcHJvYmUoKSAtIHByb2JlIGEgRGlzcGxheVBvcnQgbGluayBmb3IgY2FwYWJpbGl0aWVz CiAgKiBAYXV4OiBEaXNwbGF5UG9ydCBBVVggY2hhbm5lbApAQCAtNDM3LDYgKzUzOCwyNiBAQCBp bnQgZHJtX2RwX2xpbmtfcHJvYmUoc3RydWN0IGRybV9kcF9hdXggKmF1eCwgc3RydWN0IGRybV9k cF9saW5rICpsaW5rKQogCWxpbmstPnJhdGUgPSBsaW5rLT5tYXhfcmF0ZTsKIAlsaW5rLT5sYW5l cyA9IGxpbmstPm1heF9sYW5lczsKIAorCS8qIFBhcnNlIFNVUFBPUlRFRF9MSU5LX1JBVEVTIGZy b20gZURQIDEuNCAqLworCWlmIChsaW5rLT5lZHAgPj0gMHgxNCkgeworCQl1OCBzdXBwb3J0ZWRf cmF0ZXNbRFBfTUFYX1NVUFBPUlRFRF9SQVRFUyAqIDJdOworCQl1bnNpZ25lZCBpbnQgaTsKKwkJ dTE2IHJhdGU7CisKKwkJZXJyID0gZHJtX2RwX2RwY2RfcmVhZChhdXgsIERQX1NVUFBPUlRFRF9M SU5LX1JBVEVTLAorCQkJCSAgICAgICBzdXBwb3J0ZWRfcmF0ZXMsCisJCQkJICAgICAgIHNpemVv ZihzdXBwb3J0ZWRfcmF0ZXMpKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCisJ CWZvciAoaSA9IDA7IGkgPCBEUF9NQVhfU1VQUE9SVEVEX1JBVEVTOyBpKyspIHsKKwkJCXJhdGUg PSBzdXBwb3J0ZWRfcmF0ZXNbaSAqIDIgKyAxXSA8PCA4IHwKKwkJCSAgICAgICBzdXBwb3J0ZWRf cmF0ZXNbaSAqIDIgKyAwXTsKKworCQkJZHJtX2RwX2xpbmtfYWRkX3JhdGUobGluaywgcmF0ZSAq IDIwMCk7CisJCX0KKwl9CisKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2RwX2xp bmtfcHJvYmUpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oIGIvaW5j bHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oCmluZGV4IDgxNzIzMWUzODA1My4uZGZlMTYwNjllMDI5 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9k cm0vZHJtX2RwX2hlbHBlci5oCkBAIC0xNDUzLDYgKzE0NTMsOCBAQCB2b2lkIGRybV9kcF9saW5r X2NhcHNfY29weShzdHJ1Y3QgZHJtX2RwX2xpbmtfY2FwcyAqZGVzdCwKICAqIEBlZHA6IGVEUCBy ZXZpc2lvbiAoMHgxMTogZURQIDEuMSwgMHgxMjogZURQIDEuMiwgLi4uKQogICogQHJhdGU6IGN1 cnJlbnRseSBjb25maWd1cmVkIGxpbmsgcmF0ZQogICogQGxhbmVzOiBjdXJyZW50bHkgY29uZmln dXJlZCBudW1iZXIgb2YgbGFuZXMKKyAqIEByYXRlczogYWRkaXRpb25hbCBzdXBwb3J0ZWQgbGlu ayByYXRlcyBpbiBrSHogKGVEUCAxLjQpCisgKiBAbnVtX3JhdGVzOiBudW1iZXIgb2YgYWRkaXRp b25hbCBzdXBwb3J0ZWQgbGluayByYXRlcyAoZURQIDEuNCkKICAqLwogc3RydWN0IGRybV9kcF9s aW5rIHsKIAl1bnNpZ25lZCBjaGFyIHJldmlzaW9uOwpAQCAtMTQ2NSw4ICsxNDY3LDE1IEBAIHN0 cnVjdCBkcm1fZHBfbGluayB7CiAKIAl1bnNpZ25lZCBpbnQgcmF0ZTsKIAl1bnNpZ25lZCBpbnQg bGFuZXM7CisKKwl1bnNpZ25lZCBsb25nIHJhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdOwor CXVuc2lnbmVkIGludCBudW1fcmF0ZXM7CiB9OwogCitpbnQgZHJtX2RwX2xpbmtfYWRkX3JhdGUo c3RydWN0IGRybV9kcF9saW5rICpsaW5rLCB1bnNpZ25lZCBsb25nIHJhdGUpOworaW50IGRybV9k cF9saW5rX3JlbW92ZV9yYXRlKHN0cnVjdCBkcm1fZHBfbGluayAqbGluaywgdW5zaWduZWQgbG9u ZyByYXRlKTsKK3ZvaWQgZHJtX2RwX2xpbmtfdXBkYXRlX3JhdGVzKHN0cnVjdCBkcm1fZHBfbGlu ayAqbGluayk7CisKIGludCBkcm1fZHBfbGlua19wcm9iZShzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4 LCBzdHJ1Y3QgZHJtX2RwX2xpbmsgKmxpbmspOwogaW50IGRybV9kcF9saW5rX3Bvd2VyX3VwKHN0 cnVjdCBkcm1fZHBfYXV4ICphdXgsIHN0cnVjdCBkcm1fZHBfbGluayAqbGluayk7CiBpbnQgZHJt X2RwX2xpbmtfcG93ZXJfZG93bihzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LCBzdHJ1Y3QgZHJtX2Rw X2xpbmsgKmxpbmspOwotLSAKMi4yMi4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWw=