From mboxrd@z Thu Jan  1 00:00:00 1970
From: Lukas Wunner <lukas@wunner.de>
Subject: [PATCH v2.1 1/3] vga_switcheroo: Add support for switching only the
 DDC
Date: Fri, 14 Aug 2015 18:50:15 +0200
Message-ID: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <dri-devel-bounces@lists.freedesktop.org>
Received: from mailout3.hostsharing.net (mailout3.hostsharing.net
 [176.9.242.54])
 by gabe.freedesktop.org (Postfix) with ESMTPS id 908BD895C1
 for <dri-devel@lists.freedesktop.org>; Sun, 16 Aug 2015 12:12:10 -0700 (PDT)
List-Unsubscribe: <http://lists.freedesktop.org/mailman/options/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <http://lists.freedesktop.org/archives/dri-devel>
List-Post: <mailto:dri-devel@lists.freedesktop.org>
List-Help: <mailto:dri-devel-request@lists.freedesktop.org?subject=help>
List-Subscribe: <http://lists.freedesktop.org/mailman/listinfo/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=subscribe>
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel" <dri-devel-bounces@lists.freedesktop.org>
To: dri-devel@lists.freedesktop.org
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Dave Airlie <airlied@redhat.com>, Seth Forshee <seth.forshee@canonical.com>
List-Id: dri-devel@lists.freedesktop.org

T3JpZ2luYWxseSBieSBTZXRoIEZvcnNoZWUgPHNldGguZm9yc2hlZUBjYW5vbmljYWwuY29tPiwg
MjAxMi0xMC0wNDoKRHVyaW5nIGdyYXBoaWNzIGRyaXZlciBpbml0aWFsaXphdGlvbiBpdCdzIHVz
ZWZ1bCB0byBiZSBhYmxlIHRvIG11eCBvbmx5CnRoZSBEREMgdG8gdGhlIGluYWN0aXZlIGNsaWVu
dCBpbiBvcmRlciB0byByZWFkIHRoZSBFRElELiBBZGQgYQpzd2l0Y2hfZGRjIGNhbGxiYWNrIHRv
IGFsbG93IGNhcGFibGUgaGFuZGxlcnMgdG8gcHJvdmlkZSB0aGlzCmZ1bmN0aW9uYWxpdHksIGFu
ZCBhZGQgdmdhX3N3aXRjaGVyb29fc3dpdGNoX2RkYygpIHRvIGFsbG93IERSTSB0byBtdXgKb25s
eSB0aGUgRERDLgoKTW9kaWZpZWQgYnkgRGF2ZSBBaXJsaWUgPGFpcmxpZWRAZ21haWwuY29tPiwg
MjAxMi0xMi0yMjoKSSBjYW4ndCBmaWd1cmUgb3V0IHdoeSBJIGRpZG4ndCBsaWtlIHRoaXMsIGJ1
dCBJIHJld3JvdGUgdGhpcyBbLi4uXSB0bwpsb2NrL3VubG9jayB0aGUgZGRjIGxpbmVzIFsuLi5d
LiBJIHRoaW5rIEknZCBwcmVmZXIgc29tZXRoaW5nIGxpa2UgdGhhdApvdGhlcndpc2UgdGhlIGlu
dGVyZmFjZSBnb3QgcmVhbGx5IHVnbHkuCgpNb2RpZmllZCBieSBMdWthcyBXdW5uZXIgPGx1a2Fz
QHd1bm5lci5kZT4sIDIwMTUtMDgtMTQ6CkRvbid0IGdyYWIgdmdhc3JfbXV0ZXggaW4gbG9ja19k
ZGMvdW5sb2NrX2RkYyB0byBhdm9pZCB0aGUgZm9sbG93aW5nCmRlYWRsb2NrIHNjZW5hcmlvczog
KGEpIER1cmluZyBzd2l0Y2ggKHdpdGggdmdhc3JfbXV0ZXggYWxyZWFkeSBoZWxkKSwKR1BVIGlz
IHdva2VuIGFuZCBwcm9iZXMgaXRzIG91dHB1dHMsIHRyaWVzIHRvIHJlLWFjcXVpcmUgdmdhc3Jf
bXV0ZXgKdG8gbG9jayBEREMgbGluZXMuIChiKSBMaWtld2lzZSBkdXJpbmcgc3dpdGNoLCBHUFUg
aXMgc3VzcGVuZGVkIGFuZApjYWxscyBjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMgdG8gc3RvcCBv
dXRwdXQgcG9sbGluZywgaWYgcG9sbCB0YXNrCmlzIHJ1bm5pbmcgYXQgdGhpcyBtb21lbnQgd2Ug
bWF5IHdhaXQgZm9yZXZlciBmb3IgaXQgdG8gZmluaXNoLgpJZiB3ZSBkb24ndCBncmFiIHZnYXNy
X211dGV4IHRoZSBvbmx5IGJhZCB0aGluZyB0aGF0IGNhbiBoYXBwZW4gaXMKdGhhdCB0aGUgaGFu
ZGxlciBzdWRkZW5seSBkaXNhcHBlYXJzLiBTbyBibG9jayBoYW5kbGVyIGRlcmVnaXN0cmF0aW9u
CnVudGlsIEREQyBsaW5lcyBhcmUgdW5sb2NrZWQgYWdhaW4uCgpXQVJOX09OX09OQ0UgaWYgdW5s
b2NrX2RkYyBpcyBjYWxsZWQgd2l0aG91dCBjYWxsaW5nIGxvY2tfZGRjIGZpcnN0LgpMb2NrIGRk
Y19sb2NrIGluIHN0YWdlMiB0byBhdm9pZCByYWNlIGNvbmRpdGlvbiB3aGVyZSByZWFkaW5nIHRo
ZQpFRElEIGFuZCBzd2l0Y2hpbmcgaGFwcGVucyBzaW11bHRhbmVvdXNseS4gU3dpdGNoIEREQyBs
aW5lcyBvbgpNSUdEIC8gTURJUyBjb21tYW5kcyBhbmQgb24gcnVudGltZSBzdXNwZW5kLiBGaXgg
YnVnIGluIHN0YWdlMgp3aGVyZSBubyBjbGllbnQgaGFkIHRoZSBhY3RpdmUgYXR0cmlidXRlIHNl
dCBpZiBzd2l0Y2hpbmcgZmFpbGVkLgpGaXggZXJyb25lb3VzIGludGVyZmFjZSBkb2N1bWVudGF0
aW9uLgoKSWYgdGhlIGluYWN0aXZlIGNsaWVudCByZWdpc3RlcnMgYmVmb3JlIHRoZSBhY3RpdmUg
Y2xpZW50IHRoZW4Kb2xkX2RkY19vd25lciBjYW5ub3QgYmUgZGV0ZXJtaW5lZCB3aXRoIGZpbmRf
YWN0aXZlX2NsaWVudCgpCihudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UpLiBUaGVyZWZvcmUgY2hh
bmdlIHNlbWFudGljcyBvZiB0aGUKLT5zd2l0Y2hfZGRjIGhhbmRsZXIgY2FsbGJhY2sgdG8gcmV0
dXJuIG9sZF9kZGNfb3duZXIuCgp2Mi4xOiBPdmVyaGF1bCBsb2NraW5nLCBzcXVhc2ggY29tbWl0
cyAocmVxdWVzdGVkIGJ5IERhbmllbCBWZXR0ZXIpCgpCdWd6aWxsYTogaHR0cHM6Ly9idWd6aWxs
YS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD04ODg2MQpCdWd6aWxsYTogaHR0cHM6Ly9idWdz
LmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExMTUKVGVzdGVkLWJ5OiBMdWthcyBX
dW5uZXIgPGx1a2FzQHd1bm5lci5kZT4KICAgIFtNQlAgIDksMSAyMDEyICBpbnRlbCBJVkIgKyBu
dmlkaWEgR0sxMDcgIHByZS1yZXRpbmFdCgpDYzogU2V0aCBGb3JzaGVlIDxzZXRoLmZvcnNoZWVA
Y2Fub25pY2FsLmNvbT4KQ2M6IERhdmUgQWlybGllIDxhaXJsaWVkQGdtYWlsLmNvbT4KU2lnbmVk
LW9mZi1ieTogTHVrYXMgV3VubmVyIDxsdWthc0B3dW5uZXIuZGU+Ci0tLQogZHJpdmVycy9ncHUv
dmdhL3ZnYV9zd2l0Y2hlcm9vLmMgfCA3MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrLS0tCiBpbmNsdWRlL2xpbnV4L3ZnYV9zd2l0Y2hlcm9vLmggICB8ICA2ICsrKysKIDIg
ZmlsZXMgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9kcml2ZXJzL2dwdS92Z2EvdmdhX3N3aXRjaGVyb28uYyBiL2RyaXZlcnMvZ3B1L3ZnYS92
Z2Ffc3dpdGNoZXJvby5jCmluZGV4IDM3YWM3YjUuLmFjNGFjMTIgMTAwNjQ0Ci0tLSBhL2RyaXZl
cnMvZ3B1L3ZnYS92Z2Ffc3dpdGNoZXJvby5jCisrKyBiL2RyaXZlcnMvZ3B1L3ZnYS92Z2Ffc3dp
dGNoZXJvby5jCkBAIC05LDEyICs5LDEzIEBACiAKICBTd2l0Y2hlciBpbnRlcmZhY2UgLSBtZXRo
b2RzIHJlcXVpcmUgZm9yIEFUUFggYW5kIERDTQogIC0gc3dpdGNodG8gLSB0aGlzIHRocm93cyB0
aGUgb3V0cHV0IE1VWCBzd2l0Y2gKLSAtIGRpc2NyZXRlX3NldF9wb3dlciAtIHNldHMgdGhlIHBv
d2VyIHN0YXRlIGZvciB0aGUgZGlzY3JldGUgY2FyZAorIC0gc3dpdGNoX2RkYyAtIHN3aXRjaCBv
bmx5IEREQyBsaW5lcywgcmV0dXJuIG9sZCBEREMgb3duZXIKKyAtIHBvd2VyX3N0YXRlIC0gc2V0
cyB0aGUgcG93ZXIgc3RhdGUgZm9yIGVpdGhlciBHUFUKIAogIEdQVSBkcml2ZXIgaW50ZXJmYWNl
CiAgLSBzZXRfZ3B1X3N0YXRlIC0gdGhpcyBzaG91bGQgZG8gdGhlIGVxdWl2IG9mIHMvciBmb3Ig
dGhlIGNhcmQKIAkJICAtIHRoaXMgc2hvdWxkICpub3QqIHNldCB0aGUgZGlzY3JldGUgcG93ZXIg
c3RhdGUKLSAtIHN3aXRjaF9jaGVjayAgLSBjaGVjayBpZiB0aGUgZGV2aWNlIGlzIGluIGEgcG9z
aXRpb24gdG8gc3dpdGNoIG5vdworIC0gY2FuX3N3aXRjaCAtIGNoZWNrIGlmIHRoZSBkZXZpY2Ug
aXMgaW4gYSBwb3NpdGlvbiB0byBzd2l0Y2ggbm93CiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21v
ZHVsZS5oPgpAQCAtNTcsNiArNTgsOCBAQCBzdHJ1Y3Qgdmdhc3JfcHJpdiB7CiAJc3RydWN0IGxp
c3RfaGVhZCBjbGllbnRzOwogCiAJc3RydWN0IHZnYV9zd2l0Y2hlcm9vX2hhbmRsZXIgKmhhbmRs
ZXI7CisJc3RydWN0IG11dGV4IGRkY19sb2NrOworCWludCBvbGRfZGRjX293bmVyOwogfTsKIAog
I2RlZmluZSBJRF9CSVRfQVVESU8JCTB4MTAwCkBAIC03MCw2ICs3Myw3IEBAIHN0YXRpYyB2b2lk
IHZnYV9zd2l0Y2hlcm9vX2RlYnVnZnNfZmluaShzdHJ1Y3Qgdmdhc3JfcHJpdiAqcHJpdik7CiAv
KiBvbmx5IG9uZSBzd2l0Y2hlcm9vIHBlciBzeXN0ZW0gKi8KIHN0YXRpYyBzdHJ1Y3Qgdmdhc3Jf
cHJpdiB2Z2Fzcl9wcml2ID0gewogCS5jbGllbnRzID0gTElTVF9IRUFEX0lOSVQodmdhc3JfcHJp
di5jbGllbnRzKSwKKwkuZGRjX2xvY2sgPSBfX01VVEVYX0lOSVRJQUxJWkVSKHZnYXNyX3ByaXYu
ZGRjX2xvY2spLAogfTsKIAogc3RhdGljIGJvb2wgdmdhX3N3aXRjaGVyb29fcmVhZHkodm9pZCkK
QEAgLTEyMiwxMiArMTI2LDE0IEBAIEVYUE9SVF9TWU1CT0wodmdhX3N3aXRjaGVyb29fcmVnaXN0
ZXJfaGFuZGxlcik7CiB2b2lkIHZnYV9zd2l0Y2hlcm9vX3VucmVnaXN0ZXJfaGFuZGxlcih2b2lk
KQogewogCW11dGV4X2xvY2soJnZnYXNyX211dGV4KTsKKwltdXRleF9sb2NrKCZ2Z2Fzcl9wcml2
LmRkY19sb2NrKTsKIAl2Z2Fzcl9wcml2LmhhbmRsZXIgPSBOVUxMOwogCWlmICh2Z2Fzcl9wcml2
LmFjdGl2ZSkgewogCQlwcl9pbmZvKCJ2Z2Ffc3dpdGNoZXJvbzogZGlzYWJsZWRcbiIpOwogCQl2
Z2Ffc3dpdGNoZXJvb19kZWJ1Z2ZzX2ZpbmkoJnZnYXNyX3ByaXYpOwogCQl2Z2Fzcl9wcml2LmFj
dGl2ZSA9IGZhbHNlOwogCX0KKwltdXRleF91bmxvY2soJnZnYXNyX3ByaXYuZGRjX2xvY2spOwog
CW11dGV4X3VubG9jaygmdmdhc3JfbXV0ZXgpOwogfQogRVhQT1JUX1NZTUJPTCh2Z2Ffc3dpdGNo
ZXJvb191bnJlZ2lzdGVyX2hhbmRsZXIpOwpAQCAtMjU2LDYgKzI2Miw0MyBAQCB2b2lkIHZnYV9z
d2l0Y2hlcm9vX2NsaWVudF9mYl9zZXQoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiB9CiBFWFBPUlRf
U1lNQk9MKHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9mYl9zZXQpOwogCitpbnQgdmdhX3N3aXRjaGVy
b29fbG9ja19kZGMoc3RydWN0IHBjaV9kZXYgKnBkZXYpCit7CisJaW50IGlkOworCisJbXV0ZXhf
bG9jaygmdmdhc3JfcHJpdi5kZGNfbG9jayk7CisKKwlpZiAoIXZnYXNyX3ByaXYuaGFuZGxlciB8
fCAhdmdhc3JfcHJpdi5oYW5kbGVyLT5zd2l0Y2hfZGRjKQorCQlyZXR1cm4gdmdhc3JfcHJpdi5v
bGRfZGRjX293bmVyID0gLUVOT0RFVjsKKworCWlkID0gdmdhc3JfcHJpdi5oYW5kbGVyLT5nZXRf
Y2xpZW50X2lkKHBkZXYpOworCXJldHVybiB2Z2Fzcl9wcml2Lm9sZF9kZGNfb3duZXIgPSB2Z2Fz
cl9wcml2LmhhbmRsZXItPnN3aXRjaF9kZGMoaWQpOworfQorRVhQT1JUX1NZTUJPTCh2Z2Ffc3dp
dGNoZXJvb19sb2NrX2RkYyk7CisKK2ludCB2Z2Ffc3dpdGNoZXJvb191bmxvY2tfZGRjKHN0cnVj
dCBwY2lfZGV2ICpwZGV2KQoreworCWludCByZXQsIGlkOworCisJaWYgKFdBUk5fT05fT05DRSgh
bXV0ZXhfaXNfbG9ja2VkKCZ2Z2Fzcl9wcml2LmRkY19sb2NrKSkpCisJCXJldHVybiAtRUlOVkFM
OworCisJaWYgKHZnYXNyX3ByaXYub2xkX2RkY19vd25lciA8IDApIHsKKwkJbXV0ZXhfdW5sb2Nr
KCZ2Z2Fzcl9wcml2LmRkY19sb2NrKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJaWQgPSB2
Z2Fzcl9wcml2LmhhbmRsZXItPmdldF9jbGllbnRfaWQocGRldik7CisJaWYgKHZnYXNyX3ByaXYu
b2xkX2RkY19vd25lciAhPSBpZCkKKwkJcmV0ID0gdmdhc3JfcHJpdi5oYW5kbGVyLT5zd2l0Y2hf
ZGRjKHZnYXNyX3ByaXYub2xkX2RkY19vd25lcik7CisJZWxzZQorCQlyZXQgPSB2Z2Fzcl9wcml2
Lm9sZF9kZGNfb3duZXI7CisJbXV0ZXhfdW5sb2NrKCZ2Z2Fzcl9wcml2LmRkY19sb2NrKTsKKwor
CXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MKHZnYV9zd2l0Y2hlcm9vX3VubG9ja19kZGMp
OworCiBzdGF0aWMgaW50IHZnYV9zd2l0Y2hlcm9vX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2
b2lkICp2KQogewogCXN0cnVjdCB2Z2Ffc3dpdGNoZXJvb19jbGllbnQgKmNsaWVudDsKQEAgLTM0
MSw4ICszODQsNiBAQCBzdGF0aWMgaW50IHZnYV9zd2l0Y2h0b19zdGFnZTIoc3RydWN0IHZnYV9z
d2l0Y2hlcm9vX2NsaWVudCAqbmV3X2NsaWVudCkKIAlpZiAoIWFjdGl2ZSkKIAkJcmV0dXJuIDA7
CiAKLQlhY3RpdmUtPmFjdGl2ZSA9IGZhbHNlOwotCiAJc2V0X2F1ZGlvX3N0YXRlKGFjdGl2ZS0+
aWQsIFZHQV9TV0lUQ0hFUk9PX09GRik7CiAKIAlpZiAobmV3X2NsaWVudC0+ZmJfaW5mbykgewpA
QCAtMzUzLDkgKzM5NCwyMSBAQCBzdGF0aWMgaW50IHZnYV9zd2l0Y2h0b19zdGFnZTIoc3RydWN0
IHZnYV9zd2l0Y2hlcm9vX2NsaWVudCAqbmV3X2NsaWVudCkKIAkJY29uc29sZV91bmxvY2soKTsK
IAl9CiAKKwlpZiAodmdhc3JfcHJpdi5oYW5kbGVyLT5zd2l0Y2hfZGRjKSB7CisJCW11dGV4X2xv
Y2soJnZnYXNyX3ByaXYuZGRjX2xvY2spOworCQl2Z2Fzcl9wcml2LmhhbmRsZXItPnN3aXRjaF9k
ZGMobmV3X2NsaWVudC0+aWQpOworCQltdXRleF91bmxvY2soJnZnYXNyX3ByaXYuZGRjX2xvY2sp
OworCX0KIAlyZXQgPSB2Z2Fzcl9wcml2LmhhbmRsZXItPnN3aXRjaHRvKG5ld19jbGllbnQtPmlk
KTsKLQlpZiAocmV0KQorCWlmIChyZXQpIHsKKwkJaWYgKHZnYXNyX3ByaXYuaGFuZGxlci0+c3dp
dGNoX2RkYykgeworCQkJbXV0ZXhfbG9jaygmdmdhc3JfcHJpdi5kZGNfbG9jayk7CisJCQl2Z2Fz
cl9wcml2LmhhbmRsZXItPnN3aXRjaF9kZGMoYWN0aXZlLT5pZCk7CisJCQltdXRleF91bmxvY2so
JnZnYXNyX3ByaXYuZGRjX2xvY2spOworCQl9CiAJCXJldHVybiByZXQ7CisJfQorCWFjdGl2ZS0+
YWN0aXZlID0gZmFsc2U7CiAKIAlpZiAobmV3X2NsaWVudC0+b3BzLT5yZXByb2JlKQogCQluZXdf
Y2xpZW50LT5vcHMtPnJlcHJvYmUobmV3X2NsaWVudC0+cGRldik7CkBAIC00NjgsNiArNTIxLDEx
IEBAIHZnYV9zd2l0Y2hlcm9vX2RlYnVnZnNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0
IGNoYXIgX191c2VyICp1YnVmLAogCXZnYXNyX3ByaXYuZGVsYXllZF9zd2l0Y2hfYWN0aXZlID0g
ZmFsc2U7CiAKIAlpZiAoanVzdF9tdXgpIHsKKwkJaWYgKHZnYXNyX3ByaXYuaGFuZGxlci0+c3dp
dGNoX2RkYykgeworCQkJbXV0ZXhfbG9jaygmdmdhc3JfcHJpdi5kZGNfbG9jayk7CisJCQl2Z2Fz
cl9wcml2LmhhbmRsZXItPnN3aXRjaF9kZGMoY2xpZW50X2lkKTsKKwkJCW11dGV4X3VubG9jaygm
dmdhc3JfcHJpdi5kZGNfbG9jayk7CisJCX0KIAkJcmV0ID0gdmdhc3JfcHJpdi5oYW5kbGVyLT5z
d2l0Y2h0byhjbGllbnRfaWQpOwogCQlnb3RvIG91dDsKIAl9CkBAIC02MjMsNiArNjgxLDExIEBA
IHN0YXRpYyBpbnQgdmdhX3N3aXRjaGVyb29fcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2Ug
KmRldikKIAlyZXQgPSBkZXYtPmJ1cy0+cG0tPnJ1bnRpbWVfc3VzcGVuZChkZXYpOwogCWlmIChy
ZXQpCiAJCXJldHVybiByZXQ7CisJaWYgKHZnYXNyX3ByaXYuaGFuZGxlci0+c3dpdGNoX2RkYykg
eworCQltdXRleF9sb2NrKCZ2Z2Fzcl9wcml2LmRkY19sb2NrKTsKKwkJdmdhc3JfcHJpdi5oYW5k
bGVyLT5zd2l0Y2hfZGRjKFZHQV9TV0lUQ0hFUk9PX0lHRCk7CisJCW11dGV4X3VubG9jaygmdmdh
c3JfcHJpdi5kZGNfbG9jayk7CisJfQogCWlmICh2Z2Fzcl9wcml2LmhhbmRsZXItPnN3aXRjaHRv
KQogCQl2Z2Fzcl9wcml2LmhhbmRsZXItPnN3aXRjaHRvKFZHQV9TV0lUQ0hFUk9PX0lHRCk7CiAJ
dmdhX3N3aXRjaGVyb29fcG93ZXJfc3dpdGNoKHBkZXYsIFZHQV9TV0lUQ0hFUk9PX09GRik7CmRp
ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3ZnYV9zd2l0Y2hlcm9vLmggYi9pbmNsdWRlL2xpbnV4
L3ZnYV9zd2l0Y2hlcm9vLmgKaW5kZXggYjQ4M2FiZC4uNjJmMzAzZiAxMDA2NDQKLS0tIGEvaW5j
bHVkZS9saW51eC92Z2Ffc3dpdGNoZXJvby5oCisrKyBiL2luY2x1ZGUvbGludXgvdmdhX3N3aXRj
aGVyb28uaApAQCAtMjksNiArMjksNyBAQCBlbnVtIHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9pZCB7
CiB9OwogCiBzdHJ1Y3QgdmdhX3N3aXRjaGVyb29faGFuZGxlciB7CisJaW50ICgqc3dpdGNoX2Rk
YykoZW51bSB2Z2Ffc3dpdGNoZXJvb19jbGllbnRfaWQgaWQpOwogCWludCAoKnN3aXRjaHRvKShl
bnVtIHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9pZCBpZCk7CiAJaW50ICgqcG93ZXJfc3RhdGUpKGVu
dW0gdmdhX3N3aXRjaGVyb29fY2xpZW50X2lkIGlkLAogCQkJICAgZW51bSB2Z2Ffc3dpdGNoZXJv
b19zdGF0ZSBzdGF0ZSk7CkBAIC01NCw2ICs1NSw5IEBAIGludCB2Z2Ffc3dpdGNoZXJvb19yZWdp
c3Rlcl9hdWRpb19jbGllbnQoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiB2b2lkIHZnYV9zd2l0Y2hl
cm9vX2NsaWVudF9mYl9zZXQoc3RydWN0IHBjaV9kZXYgKmRldiwKIAkJCQkgIHN0cnVjdCBmYl9p
bmZvICppbmZvKTsKIAoraW50IHZnYV9zd2l0Y2hlcm9vX2xvY2tfZGRjKHN0cnVjdCBwY2lfZGV2
ICpwZGV2KTsKK2ludCB2Z2Ffc3dpdGNoZXJvb191bmxvY2tfZGRjKHN0cnVjdCBwY2lfZGV2ICpw
ZGV2KTsKKwogaW50IHZnYV9zd2l0Y2hlcm9vX3JlZ2lzdGVyX2hhbmRsZXIoc3RydWN0IHZnYV9z
d2l0Y2hlcm9vX2hhbmRsZXIgKmhhbmRsZXIpOwogdm9pZCB2Z2Ffc3dpdGNoZXJvb191bnJlZ2lz
dGVyX2hhbmRsZXIodm9pZCk7CiAKQEAgLTcyLDYgKzc2LDggQEAgc3RhdGljIGlubGluZSB2b2lk
IHZnYV9zd2l0Y2hlcm9vX3VucmVnaXN0ZXJfY2xpZW50KHN0cnVjdCBwY2lfZGV2ICpkZXYpIHt9
CiBzdGF0aWMgaW5saW5lIGludCB2Z2Ffc3dpdGNoZXJvb19yZWdpc3Rlcl9jbGllbnQoc3RydWN0
IHBjaV9kZXYgKmRldiwKIAkJY29uc3Qgc3RydWN0IHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9vcHMg
Km9wcywgYm9vbCBkcml2ZXJfcG93ZXJfY29udHJvbCkgeyByZXR1cm4gMDsgfQogc3RhdGljIGlu
bGluZSB2b2lkIHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9mYl9zZXQoc3RydWN0IHBjaV9kZXYgKmRl
diwgc3RydWN0IGZiX2luZm8gKmluZm8pIHt9CitzdGF0aWMgaW5saW5lIGludCB2Z2Ffc3dpdGNo
ZXJvb19sb2NrX2RkYyhzdHJ1Y3QgcGNpX2RldiAqcGRldikgeyByZXR1cm4gLUVOT0RFVjsgfQor
c3RhdGljIGlubGluZSBpbnQgdmdhX3N3aXRjaGVyb29fdW5sb2NrX2RkYyhzdHJ1Y3QgcGNpX2Rl
diAqcGRldikgeyByZXR1cm4gLUVOT0RFVjsgfQogc3RhdGljIGlubGluZSBpbnQgdmdhX3N3aXRj
aGVyb29fcmVnaXN0ZXJfaGFuZGxlcihzdHJ1Y3QgdmdhX3N3aXRjaGVyb29faGFuZGxlciAqaGFu
ZGxlcikgeyByZXR1cm4gMDsgfQogc3RhdGljIGlubGluZSBpbnQgdmdhX3N3aXRjaGVyb29fcmVn
aXN0ZXJfYXVkaW9fY2xpZW50KHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCWNvbnN0IHN0cnVjdCB2
Z2Ffc3dpdGNoZXJvb19jbGllbnRfb3BzICpvcHMsCi0tIAoyLjEuMAoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk
cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v
cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Lukas Wunner <lukas@wunner.de>
Subject: [PATCH v2.1 2/3] apple-gmux: Add switch_ddc support
Date: Fri, 14 Aug 2015 18:18:55 +0200
Message-ID: <3f927fb1a1df18bfdbb501b98a6b2dcd5c064f02.1439739853.git.lukas@wunner.de>
References: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <dri-devel-bounces@lists.freedesktop.org>
Received: from mailout3.hostsharing.net (mailout3.hostsharing.net
 [176.9.242.54])
 by gabe.freedesktop.org (Postfix) with ESMTPS id 961FA6E674
 for <dri-devel@lists.freedesktop.org>; Sun, 16 Aug 2015 12:12:23 -0700 (PDT)
In-Reply-To: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
List-Unsubscribe: <http://lists.freedesktop.org/mailman/options/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <http://lists.freedesktop.org/archives/dri-devel>
List-Post: <mailto:dri-devel@lists.freedesktop.org>
List-Help: <mailto:dri-devel-request@lists.freedesktop.org?subject=help>
List-Subscribe: <http://lists.freedesktop.org/mailman/listinfo/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=subscribe>
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel" <dri-devel-bounces@lists.freedesktop.org>
To: dri-devel@lists.freedesktop.org
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Dave Airlie <airlied@redhat.com>, Seth Forshee <seth.forshee@canonical.com>
List-Id: dri-devel@lists.freedesktop.org

T3JpZ2luYWxseSBieSBTZXRoIEZvcnNoZWUgPHNldGguZm9yc2hlZUBjYW5vbmljYWwuY29tPiwg
MjAxMi0xMC0wNDoKVGhlIGdtdXggYWxsb3dzIG11eGluZyB0aGUgRERDIGluZGVwZW5kZW50bHkg
ZnJvbSB0aGUgZGlzcGxheSwgc28Kc3VwcG9ydCB0aGlzIGZ1bmN0aW9uYWxpdHkuIFRoaXMgd2ls
bCBhbGxvdyByZWFkaW5nIHRoZSBFRElEIGZvciB0aGUKaW5hY3RpdmUgR1BVLCBmaXhpbmcgaXNz
dWVzIHdpdGggbWFjaGluZXMgdGhhdCBlaXRoZXIgZG9uJ3QgaGF2ZSBhIFZCVApvciBoYXZlIGlu
dmFsaWQgbW9kZSBkYXRhIGluIHRoZSBWQlQuCgpNb2RpZmllZCBieSBMdWthcyBXdW5uZXIgPGx1
a2FzQHd1bm5lci5kZT4sIDIwMTUtMDMtMjc6CklmIHRoZSBpbmFjdGl2ZSBjbGllbnQgcmVnaXN0
ZXJzIGJlZm9yZSB0aGUgYWN0aXZlIGNsaWVudCB0aGVuCm9sZF9kZGNfb3duZXIgY2Fubm90IGJl
IGRldGVybWluZWQgd2l0aCBmaW5kX2FjdGl2ZV9jbGllbnQoKQoobnVsbCBwb2ludGVyIGRlcmVm
ZXJlbmNlKS4gVGhlcmVmb3JlIGNoYW5nZSBzZW1hbnRpY3Mgb2YgdGhlCi0+c3dpdGNoX2RkYyBo
YW5kbGVyIGNhbGxiYWNrIHRvIHJldHVybiBvbGRfZGRjX293bmVyLgoKQnVnemlsbGE6IGh0dHBz
Oi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg4NjEKQnVnemlsbGE6IGh0
dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTE1ClRlc3RlZC1i
eTogUGllcnJlIE1vcmVhdSA8cGllcnJlLm1vcnJvd0BmcmVlLmZyPgogICAgW01CUCAgNSwzIDIw
MDkgIG52aWRpYSA5NDAwTSArIDk2MDBNIEdUICAgcHJlLXJldGluYV0KVGVzdGVkLWJ5OiBQYXVs
IEhvcmRpaWVua28gPHB2dC5nb3JkQGdtYWlsLmNvbT4KICAgIFtNQlAgIDYsMiAyMDEwICBpbnRl
bCBJTEsgKyBudmlkaWEgR1QyMTYgIHByZS1yZXRpbmFdClRlc3RlZC1ieTogV2lsbGlhbSBCcm93
biA8d2lsbGlhbUBibGFja2hhdHMubmV0LmF1PgogICAgW01CUCAgOCwyIDIwMTEgIGludGVsIFNO
QiArIGFtZCB0dXJrcyAgICAgcHJlLXJldGluYV0KVGVzdGVkLWJ5OiBMdWthcyBXdW5uZXIgPGx1
a2FzQHd1bm5lci5kZT4KICAgIFtNQlAgIDksMSAyMDEyICBpbnRlbCBJVkIgKyBudmlkaWEgR0sx
MDcgIHByZS1yZXRpbmFdClRlc3RlZC1ieTogQnJ1bm8gQmllcmJhdW1lciA8YnJ1bm9AYmllcmJh
dW1lci5uZXQ+CiAgICBbTUJQIDExLDMgMjAxMyAgaW50ZWwgSFNXICsgbnZpZGlhIEdLMTA3ICBy
ZXRpbmEgLS0gd29yayBpbiBwcm9ncmVzc10KCkNjOiBTZXRoIEZvcnNoZWUgPHNldGguZm9yc2hl
ZUBjYW5vbmljYWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBMdWthcyBXdW5uZXIgPGx1a2FzQHd1bm5l
ci5kZT4KLS0tCiBkcml2ZXJzL3BsYXRmb3JtL3g4Ni9hcHBsZS1nbXV4LmMgfCAyNSArKysrKysr
KysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMiBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9hcHBsZS1nbXV4
LmMgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9hcHBsZS1nbXV4LmMKaW5kZXggMGRlYzNmNS4uMDhi
ZGYxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvYXBwbGUtZ211eC5jCisrKyBi
L2RyaXZlcnMvcGxhdGZvcm0veDg2L2FwcGxlLWdtdXguYwpAQCAtMjczLDE0ICsyNzMsMzQgQEAg
c3RhdGljIGNvbnN0IHN0cnVjdCBiYWNrbGlnaHRfb3BzIGdtdXhfYmxfb3BzID0gewogCS51cGRh
dGVfc3RhdHVzID0gZ211eF91cGRhdGVfc3RhdHVzLAogfTsKIAorc3RhdGljIGludCBnbXV4X3N3
aXRjaF9kZGMoZW51bSB2Z2Ffc3dpdGNoZXJvb19jbGllbnRfaWQgaWQpCit7CisJZW51bSB2Z2Ff
c3dpdGNoZXJvb19jbGllbnRfaWQgb2xkX2RkY19vd25lcjsKKworCWlmIChnbXV4X3JlYWQ4KGFw
cGxlX2dtdXhfZGF0YSwgR01VWF9QT1JUX1NXSVRDSF9EREMpID09IDEpCisJCW9sZF9kZGNfb3du
ZXIgPSBWR0FfU1dJVENIRVJPT19JR0Q7CisJZWxzZQorCQlvbGRfZGRjX293bmVyID0gVkdBX1NX
SVRDSEVST09fRElTOworCisJcHJfZGVidWcoIlN3aXRjaGluZyBnbXV4IEREQyBmcm9tICVkIHRv
ICVkXG4iLCBvbGRfZGRjX293bmVyLCBpZCk7CisKKwlpZiAoaWQgPT0gb2xkX2RkY19vd25lcikK
KwkJcmV0dXJuIG9sZF9kZGNfb3duZXI7CisKKwlpZiAoaWQgPT0gVkdBX1NXSVRDSEVST09fSUdE
KQorCQlnbXV4X3dyaXRlOChhcHBsZV9nbXV4X2RhdGEsIEdNVVhfUE9SVF9TV0lUQ0hfRERDLCAx
KTsKKwllbHNlCisJCWdtdXhfd3JpdGU4KGFwcGxlX2dtdXhfZGF0YSwgR01VWF9QT1JUX1NXSVRD
SF9EREMsIDIpOworCisJcmV0dXJuIG9sZF9kZGNfb3duZXI7Cit9CisKIHN0YXRpYyBpbnQgZ211
eF9zd2l0Y2h0byhlbnVtIHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9pZCBpZCkKIHsKIAlpZiAoaWQg
PT0gVkdBX1NXSVRDSEVST09fSUdEKSB7Ci0JCWdtdXhfd3JpdGU4KGFwcGxlX2dtdXhfZGF0YSwg
R01VWF9QT1JUX1NXSVRDSF9EREMsIDEpOwogCQlnbXV4X3dyaXRlOChhcHBsZV9nbXV4X2RhdGEs
IEdNVVhfUE9SVF9TV0lUQ0hfRElTUExBWSwgMik7CiAJCWdtdXhfd3JpdGU4KGFwcGxlX2dtdXhf
ZGF0YSwgR01VWF9QT1JUX1NXSVRDSF9FWFRFUk5BTCwgMik7CiAJfSBlbHNlIHsKLQkJZ211eF93
cml0ZTgoYXBwbGVfZ211eF9kYXRhLCBHTVVYX1BPUlRfU1dJVENIX0REQywgMik7CiAJCWdtdXhf
d3JpdGU4KGFwcGxlX2dtdXhfZGF0YSwgR01VWF9QT1JUX1NXSVRDSF9ESVNQTEFZLCAzKTsKIAkJ
Z211eF93cml0ZTgoYXBwbGVfZ211eF9kYXRhLCBHTVVYX1BPUlRfU1dJVENIX0VYVEVSTkFMLCAz
KTsKIAl9CkBAIC0zNDcsNiArMzY3LDcgQEAgZ211eF9hY3RpdmVfY2xpZW50KHN0cnVjdCBhcHBs
ZV9nbXV4X2RhdGEgKmdtdXhfZGF0YSkKIH0KIAogc3RhdGljIHN0cnVjdCB2Z2Ffc3dpdGNoZXJv
b19oYW5kbGVyIGdtdXhfaGFuZGxlciA9IHsKKwkuc3dpdGNoX2RkYyA9IGdtdXhfc3dpdGNoX2Rk
YywKIAkuc3dpdGNodG8gPSBnbXV4X3N3aXRjaHRvLAogCS5wb3dlcl9zdGF0ZSA9IGdtdXhfc2V0
X3Bvd2VyX3N0YXRlLAogCS5nZXRfY2xpZW50X2lkID0gZ211eF9nZXRfY2xpZW50X2lkLAotLSAK
Mi4xLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy
aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw
Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Lukas Wunner <lukas@wunner.de>
Subject: [PATCH v2.1 3/3] drm/edid: Switch DDC when reading the EDID
Date: Fri, 14 Aug 2015 18:28:35 +0200
Message-ID: <3d6de562c9dd7387318f90f2dc1578e56cb666c1.1439739853.git.lukas@wunner.de>
References: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
 <3f927fb1a1df18bfdbb501b98a6b2dcd5c064f02.1439739853.git.lukas@wunner.de>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <dri-devel-bounces@lists.freedesktop.org>
Received: from mailout1.hostsharing.net (mailout1.hostsharing.net
 [83.223.95.204])
 by gabe.freedesktop.org (Postfix) with ESMTPS id 2A8046E73C
 for <dri-devel@lists.freedesktop.org>; Sun, 16 Aug 2015 12:12:37 -0700 (PDT)
In-Reply-To: <3f927fb1a1df18bfdbb501b98a6b2dcd5c064f02.1439739853.git.lukas@wunner.de>
List-Unsubscribe: <http://lists.freedesktop.org/mailman/options/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <http://lists.freedesktop.org/archives/dri-devel>
List-Post: <mailto:dri-devel@lists.freedesktop.org>
List-Help: <mailto:dri-devel-request@lists.freedesktop.org?subject=help>
List-Subscribe: <http://lists.freedesktop.org/mailman/listinfo/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=subscribe>
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel" <dri-devel-bounces@lists.freedesktop.org>
To: dri-devel@lists.freedesktop.org
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Dave Airlie <airlied@redhat.com>, Seth Forshee <seth.forshee@canonical.com>
List-Id: dri-devel@lists.freedesktop.org

T3JpZ2luYWxseSBieSBTZXRoIEZvcnNoZWUgPHNldGguZm9yc2hlZUBjYW5vbmljYWwuY29tPiwg
MjAxMi0xMC0wNDoKU29tZSBkdWFsIGdyYXBoaWNzIG1hY2hpbmVzIHN1cHBvcnQgbXV4aW5nIHRo
ZSBEREMgc2VwYXJhdGVseSBmcm9tIHRoZQpkaXNwbGF5LCBzbyBtYWtlIHVzZSBvZiB0aGlzIGZ1
bmN0aW9uYWxpdHkgd2hlbiByZWFkaW5nIHRoZSBFRElEIG9uIHRoZQppbmFjdGl2ZSBHUFUuIEFs
c28gc2VyaWFsaXplIGRybV9nZXRfZWRpZCgpIHdpdGggYSBtdXRleCB0byBhdm9pZCByYWNlcwpv
biB0aGUgRERDIG11eCBzdGF0ZS4KCk1vZGlmaWVkIGJ5IERhdmUgQWlybGllIDxhaXJsaWVkQGdt
YWlsLmNvbT4sIDIwMTItMTItMjI6CkkgY2FuJ3QgZmlndXJlIG91dCB3aHkgSSBkaWRuJ3QgbGlr
ZSB0aGlzLCBidXQgSSByZXdyb3RlIHRoaXMgWy4uLl0gdG8KbG9jay91bmxvY2sgdGhlIGRkYyBs
aW5lcyBbLi4uXS4gSSB0aGluayBJJ2QgcHJlZmVyIHNvbWV0aGluZyBsaWtlIHRoYXQKb3RoZXJ3
aXNlIHRoZSBpbnRlcmZhY2UgZ290IHJlYWxseSB1Z2x5LgoKTW9kaWZpZWQgYnkgTHVrYXMgV3Vu
bmVyIDxsdWthc0B3dW5uZXIuZGU+LCAyMDE1LTAzLTI3OgpVbmxvY2sgRERDIGxpbmVzIGlmIGRy
bV9wcm9iZV9kZGMoKSBmYWlscy4KCkJ1Z3ppbGxhOiBodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5v
cmcvc2hvd19idWcuY2dpP2lkPTg4ODYxCkJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0
b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD02MTExNQpUZXN0ZWQtYnk6IFBpZXJyZSBNb3JlYXUgPHBp
ZXJyZS5tb3Jyb3dAZnJlZS5mcj4KICAgIFtNQlAgIDUsMyAyMDA5ICBudmlkaWEgOTQwME0gKyA5
NjAwTSBHVCAgIHByZS1yZXRpbmFdClRlc3RlZC1ieTogUGF1bCBIb3JkaWllbmtvIDxwdnQuZ29y
ZEBnbWFpbC5jb20+CiAgICBbTUJQICA2LDIgMjAxMCAgaW50ZWwgSUxLICsgbnZpZGlhIEdUMjE2
ICBwcmUtcmV0aW5hXQpUZXN0ZWQtYnk6IFdpbGxpYW0gQnJvd24gPHdpbGxpYW1AYmxhY2toYXRz
Lm5ldC5hdT4KICAgIFtNQlAgIDgsMiAyMDExICBpbnRlbCBTTkIgKyBhbWQgdHVya3MgICAgIHBy
ZS1yZXRpbmFdClRlc3RlZC1ieTogTHVrYXMgV3VubmVyIDxsdWthc0B3dW5uZXIuZGU+CiAgICBb
TUJQICA5LDEgMjAxMiAgaW50ZWwgSVZCICsgbnZpZGlhIEdLMTA3ICBwcmUtcmV0aW5hXQpUZXN0
ZWQtYnk6IEJydW5vIEJpZXJiYXVtZXIgPGJydW5vQGJpZXJiYXVtZXIubmV0PgogICAgW01CUCAx
MSwzIDIwMTMgIGludGVsIEhTVyArIG52aWRpYSBHSzEwNyAgcmV0aW5hIC0tIHdvcmsgaW4gcHJv
Z3Jlc3NdCgpDYzogU2V0aCBGb3JzaGVlIDxzZXRoLmZvcnNoZWVAY2Fub25pY2FsLmNvbT4KQ2M6
IERhdmUgQWlybGllIDxhaXJsaWVkQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogTHVrYXMgV3Vu
bmVyIDxsdWthc0B3dW5uZXIuZGU+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMgfCAx
MSArKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEgZGVsZXRp
b24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyBiL2RyaXZlcnMv
Z3B1L2RybS9kcm1fZWRpZC5jCmluZGV4IGU2ZTA1YmIuLmNkYjJmYTEgMTAwNjQ0Ci0tLSBhL2Ry
aXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5j
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8bGludXgvaGRtaS5oPgogI2luY2x1ZGUgPGxp
bnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3Zn
YV9zd2l0Y2hlcm9vLmg+CiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJt
X2VkaWQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2Rpc3BsYXlpZC5oPgpAQCAtMTM3NywxMyArMTM3
OCwyMSBAQCBzdHJ1Y3QgZWRpZCAqZHJtX2dldF9lZGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpj
b25uZWN0b3IsCiAJCQkgIHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcikKIHsKIAlzdHJ1Y3Qg
ZWRpZCAqZWRpZDsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGNvbm5lY3Rvci0+ZGV2LT5wZGV2
OwogCi0JaWYgKCFkcm1fcHJvYmVfZGRjKGFkYXB0ZXIpKQorCXZnYV9zd2l0Y2hlcm9vX2xvY2tf
ZGRjKHBkZXYpOworCisJaWYgKCFkcm1fcHJvYmVfZGRjKGFkYXB0ZXIpKSB7CisJCXZnYV9zd2l0
Y2hlcm9vX3VubG9ja19kZGMocGRldik7CiAJCXJldHVybiBOVUxMOworCX0KIAogCWVkaWQgPSBk
cm1fZG9fZ2V0X2VkaWQoY29ubmVjdG9yLCBkcm1fZG9fcHJvYmVfZGRjX2VkaWQsIGFkYXB0ZXIp
OwogCWlmIChlZGlkKQogCQlkcm1fZ2V0X2Rpc3BsYXlpZChjb25uZWN0b3IsIGVkaWQpOworCisJ
dmdhX3N3aXRjaGVyb29fdW5sb2NrX2RkYyhwZGV2KTsKKwogCXJldHVybiBlZGlkOwogfQogRVhQ
T1JUX1NZTUJPTChkcm1fZ2V0X2VkaWQpOwotLSAKMi4xLjAKCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl
dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h
aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Thierry Reding <thierry.reding@gmail.com>
Subject: Re: [PATCH v2.1 1/3] vga_switcheroo: Add support for switching only
 the DDC
Date: Mon, 17 Aug 2015 12:36:55 +0200
Message-ID: <20150817103653.GB8453@ulmo.nvidia.com>
References: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="===============1406455806=="
Return-path: <dri-devel-bounces@lists.freedesktop.org>
Received: from mail-pd0-f178.google.com (mail-pd0-f178.google.com
 [209.85.192.178])
 by gabe.freedesktop.org (Postfix) with ESMTPS id 70BD8720E7
 for <dri-devel@lists.freedesktop.org>; Mon, 17 Aug 2015 03:38:01 -0700 (PDT)
Received: by pdrh1 with SMTP id h1so55155854pdr.0
 for <dri-devel@lists.freedesktop.org>; Mon, 17 Aug 2015 03:38:01 -0700 (PDT)
In-Reply-To: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
List-Unsubscribe: <http://lists.freedesktop.org/mailman/options/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <http://lists.freedesktop.org/archives/dri-devel>
List-Post: <mailto:dri-devel@lists.freedesktop.org>
List-Help: <mailto:dri-devel-request@lists.freedesktop.org?subject=help>
List-Subscribe: <http://lists.freedesktop.org/mailman/listinfo/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=subscribe>
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel" <dri-devel-bounces@lists.freedesktop.org>
To: Lukas Wunner <lukas@wunner.de>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Seth Forshee <seth.forshee@canonical.com>, dri-devel@lists.freedesktop.org, Dave Airlie <airlied@redhat.com>
List-Id: dri-devel@lists.freedesktop.org


--===============1406455806==
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="LpQ9ahxlCli8rRTG"
Content-Disposition: inline


--LpQ9ahxlCli8rRTG
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 14, 2015 at 06:50:15PM +0200, Lukas Wunner wrote:
> Originally by Seth Forshee <seth.forshee@canonical.com>, 2012-10-04:
> During graphics driver initialization it's useful to be able to mux only
> the DDC to the inactive client in order to read the EDID. Add a
> switch_ddc callback to allow capable handlers to provide this
> functionality, and add vga_switcheroo_switch_ddc() to allow DRM to mux
> only the DDC.
>=20
> Modified by Dave Airlie <airlied@gmail.com>, 2012-12-22:
> I can't figure out why I didn't like this, but I rewrote this [...] to
> lock/unlock the ddc lines [...]. I think I'd prefer something like that
> otherwise the interface got really ugly.
>=20
> Modified by Lukas Wunner <lukas@wunner.de>, 2015-08-14:
> Don't grab vgasr_mutex in lock_ddc/unlock_ddc to avoid the following
> deadlock scenarios: (a) During switch (with vgasr_mutex already held),
> GPU is woken and probes its outputs, tries to re-acquire vgasr_mutex
> to lock DDC lines. (b) Likewise during switch, GPU is suspended and
> calls cancel_delayed_work_sync to stop output polling, if poll task
> is running at this moment we may wait forever for it to finish.
> If we don't grab vgasr_mutex the only bad thing that can happen is
> that the handler suddenly disappears. So block handler deregistration
> until DDC lines are unlocked again.
>=20
> WARN_ON_ONCE if unlock_ddc is called without calling lock_ddc first.
> Lock ddc_lock in stage2 to avoid race condition where reading the
> EDID and switching happens simultaneously. Switch DDC lines on
> MIGD / MDIS commands and on runtime suspend. Fix bug in stage2
> where no client had the active attribute set if switching failed.
> Fix erroneous interface documentation.
>=20
> If the inactive client registers before the active client then
> old_ddc_owner cannot be determined with find_active_client()
> (null pointer dereference). Therefore change semantics of the
> ->switch_ddc handler callback to return old_ddc_owner.
>=20
> v2.1: Overhaul locking, squash commits (requested by Daniel Vetter)
>=20
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=3D88861
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=3D61115
> Tested-by: Lukas Wunner <lukas@wunner.de>
>     [MBP  9,1 2012  intel IVB + nvidia GK107  pre-retina]
>=20
> Cc: Seth Forshee <seth.forshee@canonical.com>
> Cc: Dave Airlie <airlied@gmail.com>
> Signed-off-by: Lukas Wunner <lukas@wunner.de>
> ---
>  drivers/gpu/vga/vga_switcheroo.c | 73 ++++++++++++++++++++++++++++++++++=
+++---
>  include/linux/vga_switcheroo.h   |  6 ++++
>  2 files changed, 74 insertions(+), 5 deletions(-)
>=20
> diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switc=
heroo.c
> index 37ac7b5..ac4ac12 100644
> --- a/drivers/gpu/vga/vga_switcheroo.c
> +++ b/drivers/gpu/vga/vga_switcheroo.c
> @@ -9,12 +9,13 @@
> =20
>   Switcher interface - methods require for ATPX and DCM
>   - switchto - this throws the output MUX switch
> - - discrete_set_power - sets the power state for the discrete card
> + - switch_ddc - switch only DDC lines, return old DDC owner
> + - power_state - sets the power state for either GPU
> =20
>   GPU driver interface
>   - set_gpu_state - this should do the equiv of s/r for the card
>  		  - this should *not* set the discrete power state
> - - switch_check  - check if the device is in a position to switch now
> + - can_switch - check if the device is in a position to switch now
>   */
> =20
>  #include <linux/module.h>
> @@ -57,6 +58,8 @@ struct vgasr_priv {
>  	struct list_head clients;
> =20
>  	struct vga_switcheroo_handler *handler;
> +	struct mutex ddc_lock;
> +	int old_ddc_owner;
>  };
> =20
>  #define ID_BIT_AUDIO		0x100
> @@ -70,6 +73,7 @@ static void vga_switcheroo_debugfs_fini(struct vgasr_pr=
iv *priv);
>  /* only one switcheroo per system */
>  static struct vgasr_priv vgasr_priv =3D {
>  	.clients =3D LIST_HEAD_INIT(vgasr_priv.clients),
> +	.ddc_lock =3D __MUTEX_INITIALIZER(vgasr_priv.ddc_lock),
>  };
> =20
>  static bool vga_switcheroo_ready(void)
> @@ -122,12 +126,14 @@ EXPORT_SYMBOL(vga_switcheroo_register_handler);
>  void vga_switcheroo_unregister_handler(void)
>  {
>  	mutex_lock(&vgasr_mutex);
> +	mutex_lock(&vgasr_priv.ddc_lock);
>  	vgasr_priv.handler =3D NULL;
>  	if (vgasr_priv.active) {
>  		pr_info("vga_switcheroo: disabled\n");
>  		vga_switcheroo_debugfs_fini(&vgasr_priv);
>  		vgasr_priv.active =3D false;
>  	}
> +	mutex_unlock(&vgasr_priv.ddc_lock);
>  	mutex_unlock(&vgasr_mutex);
>  }
>  EXPORT_SYMBOL(vga_switcheroo_unregister_handler);
> @@ -256,6 +262,43 @@ void vga_switcheroo_client_fb_set(struct pci_dev *pd=
ev,
>  }
>  EXPORT_SYMBOL(vga_switcheroo_client_fb_set);
> =20
> +int vga_switcheroo_lock_ddc(struct pci_dev *pdev)
> +{
> +	int id;
> +
> +	mutex_lock(&vgasr_priv.ddc_lock);
> +
> +	if (!vgasr_priv.handler || !vgasr_priv.handler->switch_ddc)
> +		return vgasr_priv.old_ddc_owner =3D -ENODEV;

I find this very hard to read. Can this be split across two lines?

> +
> +	id =3D vgasr_priv.handler->get_client_id(pdev);
> +	return vgasr_priv.old_ddc_owner =3D vgasr_priv.handler->switch_ddc(id);

This too. I also notice that the only place you call this from doesn't
care about the return value, so why even bother returning one?

> +int vga_switcheroo_unlock_ddc(struct pci_dev *pdev)
> +{
> +	int ret, id;
> +
> +	if (WARN_ON_ONCE(!mutex_is_locked(&vgasr_priv.ddc_lock)))
> +		return -EINVAL;
> +
> +	if (vgasr_priv.old_ddc_owner < 0) {
> +		mutex_unlock(&vgasr_priv.ddc_lock);
> +		return -ENODEV;
> +	}
> +
> +	id =3D vgasr_priv.handler->get_client_id(pdev);
> +	if (vgasr_priv.old_ddc_owner !=3D id)
> +		ret =3D vgasr_priv.handler->switch_ddc(vgasr_priv.old_ddc_owner);
> +	else
> +		ret =3D vgasr_priv.old_ddc_owner;
> +	mutex_unlock(&vgasr_priv.ddc_lock);
> +
> +	return ret;
> +}
> +EXPORT_SYMBOL(vga_switcheroo_unlock_ddc);

Same comment about the return value here.

> diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switchero=
o.h
> index b483abd..62f303f 100644
> --- a/include/linux/vga_switcheroo.h
> +++ b/include/linux/vga_switcheroo.h
> @@ -29,6 +29,7 @@ enum vga_switcheroo_client_id {
>  };
> =20
>  struct vga_switcheroo_handler {
> +	int (*switch_ddc)(enum vga_switcheroo_client_id id);
>  	int (*switchto)(enum vga_switcheroo_client_id id);
>  	int (*power_state)(enum vga_switcheroo_client_id id,
>  			   enum vga_switcheroo_state state);
> @@ -54,6 +55,9 @@ int vga_switcheroo_register_audio_client(struct pci_dev=
 *pdev,
>  void vga_switcheroo_client_fb_set(struct pci_dev *dev,
>  				  struct fb_info *info);
> =20
> +int vga_switcheroo_lock_ddc(struct pci_dev *pdev);
> +int vga_switcheroo_unlock_ddc(struct pci_dev *pdev);
> +
>  int vga_switcheroo_register_handler(struct vga_switcheroo_handler *handl=
er);
>  void vga_switcheroo_unregister_handler(void);
> =20
> @@ -72,6 +76,8 @@ static inline void vga_switcheroo_unregister_client(str=
uct pci_dev *dev) {}
>  static inline int vga_switcheroo_register_client(struct pci_dev *dev,
>  		const struct vga_switcheroo_client_ops *ops, bool driver_power_control=
) { return 0; }
>  static inline void vga_switcheroo_client_fb_set(struct pci_dev *dev, str=
uct fb_info *info) {}
> +static inline int vga_switcheroo_lock_ddc(struct pci_dev *pdev) { return=
 -ENODEV; }
> +static inline int vga_switcheroo_unlock_ddc(struct pci_dev *pdev) { retu=
rn -ENODEV; }

If you care about the return value you'll want to return 0 here to make
sure kernels without VGA switcheroo support will continue to work
properly.

Thierry

--LpQ9ahxlCli8rRTG
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAABCAAGBQJV0blCAAoJEN0jrNd/PrOhFt4P/2n6P/7dlNZej3yktutQVTVl
NzYpcOgtc7JvWNUfPteAOGiZJzpuyRFDuzRQYakSP3RpRP2lHtBk76ikLrYUOQf6
0BQIXJ5vdgniR6jTt3tv8JAR/rv9t6tL2xVK4j5nPOJgagfgWNC184wfk/bgktUr
Ska7fwQdCRk39gwe3UN2wBWRWA0pS6D3i3ngvIgmZsStbB5gL6Nlkf6vV/ruEcG1
FKPS0LQ8tLjag4RVCMJ8bj8NNk2KJji8lxbrqcyiDKsgQ/KdF6u3Rv0EDGRVYqFQ
JsTg5fADQfTBifxW1mpkT75RKxG0yGAraMAeA845v5NXiXhBRN4mz52B0gmJHGFd
NbcQwKhKOrkL1btMFm5ZaLz/rKoXXH+EALOBS2CH28JnpEmoztjv4S7NO1g8p5bO
lNBoUpr9W8Z8zL2EOScED365T7w3PF+7AofxI+I7otN05iatJ9x2OX44KD+Zn6LV
a/eHYXhiOK5KoMCK7qndq5gy2sojAlOT+vG/Oi+jS4+nbMq8AA4IZlejhx/uBK5p
Gh/6PaWp1DyeeHjS1LBiECcoSRzYyWv+GUX3J+aAzuh13vk2kKrApKUW9xq4onf6
XGAdDJi0fXZ5ogGZi+9Z33d5iYAOe53N0GKh7iaIkRI7jvJ1SZIXVCNizKsU912L
8LxIBLartY1pfwGAcf9x
=JeYS
-----END PGP SIGNATURE-----

--LpQ9ahxlCli8rRTG--

--===============1406455806==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs
IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0
cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK

--===============1406455806==--

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Thierry Reding <thierry.reding@gmail.com>
Subject: Re: [PATCH v2.1 3/3] drm/edid: Switch DDC when reading the EDID
Date: Mon, 17 Aug 2015 12:41:32 +0200
Message-ID: <20150817104130.GC8453@ulmo.nvidia.com>
References: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
 <3f927fb1a1df18bfdbb501b98a6b2dcd5c064f02.1439739853.git.lukas@wunner.de>
 <3d6de562c9dd7387318f90f2dc1578e56cb666c1.1439739853.git.lukas@wunner.de>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="===============1486342302=="
Return-path: <dri-devel-bounces@lists.freedesktop.org>
Received: from mail-pa0-f50.google.com (mail-pa0-f50.google.com
 [209.85.220.50])
 by gabe.freedesktop.org (Postfix) with ESMTPS id D04846E8D9
 for <dri-devel@lists.freedesktop.org>; Mon, 17 Aug 2015 03:42:38 -0700 (PDT)
Received: by pawq9 with SMTP id q9so8416024paw.3
 for <dri-devel@lists.freedesktop.org>; Mon, 17 Aug 2015 03:42:38 -0700 (PDT)
In-Reply-To: <3d6de562c9dd7387318f90f2dc1578e56cb666c1.1439739853.git.lukas@wunner.de>
List-Unsubscribe: <http://lists.freedesktop.org/mailman/options/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <http://lists.freedesktop.org/archives/dri-devel>
List-Post: <mailto:dri-devel@lists.freedesktop.org>
List-Help: <mailto:dri-devel-request@lists.freedesktop.org?subject=help>
List-Subscribe: <http://lists.freedesktop.org/mailman/listinfo/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=subscribe>
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel" <dri-devel-bounces@lists.freedesktop.org>
To: Lukas Wunner <lukas@wunner.de>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Seth Forshee <seth.forshee@canonical.com>, dri-devel@lists.freedesktop.org, Dave Airlie <airlied@redhat.com>
List-Id: dri-devel@lists.freedesktop.org


--===============1486342302==
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="DIOMP1UsTsWJauNi"
Content-Disposition: inline


--DIOMP1UsTsWJauNi
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 14, 2015 at 06:28:35PM +0200, Lukas Wunner wrote:
> Originally by Seth Forshee <seth.forshee@canonical.com>, 2012-10-04:
> Some dual graphics machines support muxing the DDC separately from the
> display, so make use of this functionality when reading the EDID on the
> inactive GPU. Also serialize drm_get_edid() with a mutex to avoid races
> on the DDC mux state.
>=20
> Modified by Dave Airlie <airlied@gmail.com>, 2012-12-22:
> I can't figure out why I didn't like this, but I rewrote this [...] to
> lock/unlock the ddc lines [...]. I think I'd prefer something like that
> otherwise the interface got really ugly.
>=20
> Modified by Lukas Wunner <lukas@wunner.de>, 2015-03-27:
> Unlock DDC lines if drm_probe_ddc() fails.
>=20
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=3D88861
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=3D61115
> Tested-by: Pierre Moreau <pierre.morrow@free.fr>
>     [MBP  5,3 2009  nvidia 9400M + 9600M GT   pre-retina]
> Tested-by: Paul Hordiienko <pvt.gord@gmail.com>
>     [MBP  6,2 2010  intel ILK + nvidia GT216  pre-retina]
> Tested-by: William Brown <william@blackhats.net.au>
>     [MBP  8,2 2011  intel SNB + amd turks     pre-retina]
> Tested-by: Lukas Wunner <lukas@wunner.de>
>     [MBP  9,1 2012  intel IVB + nvidia GK107  pre-retina]
> Tested-by: Bruno Bierbaumer <bruno@bierbaumer.net>
>     [MBP 11,3 2013  intel HSW + nvidia GK107  retina -- work in progress]
>=20
> Cc: Seth Forshee <seth.forshee@canonical.com>
> Cc: Dave Airlie <airlied@gmail.com>
> Signed-off-by: Lukas Wunner <lukas@wunner.de>
> ---
>  drivers/gpu/drm/drm_edid.c | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
>=20
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index e6e05bb..cdb2fa1 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -32,6 +32,7 @@
>  #include <linux/hdmi.h>
>  #include <linux/i2c.h>
>  #include <linux/module.h>
> +#include <linux/vga_switcheroo.h>
>  #include <drm/drmP.h>
>  #include <drm/drm_edid.h>
>  #include <drm/drm_displayid.h>
> @@ -1377,13 +1378,21 @@ struct edid *drm_get_edid(struct drm_connector *c=
onnector,
>  			  struct i2c_adapter *adapter)
>  {
>  	struct edid *edid;
> +	struct pci_dev *pdev =3D connector->dev->pdev;
> =20
> -	if (!drm_probe_ddc(adapter))
> +	vga_switcheroo_lock_ddc(pdev);
> +
> +	if (!drm_probe_ddc(adapter)) {
> +		vga_switcheroo_unlock_ddc(pdev);
>  		return NULL;
> +	}
> =20
>  	edid =3D drm_do_get_edid(connector, drm_do_probe_ddc_edid, adapter);
>  	if (edid)
>  		drm_get_displayid(connector, edid);
> +
> +	vga_switcheroo_unlock_ddc(pdev);
> +
>  	return edid;
>  }
>  EXPORT_SYMBOL(drm_get_edid);

I think this is backwards and it'd be more explicit (though I suspect
slightly more work for this patch) to add a separate helper that does
the VGA switcheroo wrapping rather than have this in drm_get_edid()
where essentially every driver will go through the motions even if it
doesn't remotely support switcheroo.

Thierry

--DIOMP1UsTsWJauNi
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAABCAAGBQJV0bpaAAoJEN0jrNd/PrOhWxQQAL6NILW+bkrGDbG/ayO808tX
WXHHD3QiWPXEtTszCMx2ZZpwQ1/dJxmO06YunyQ2UB8eLF2p9TgMBUiOHSyfRuQY
FyBmEjL/6hW9RHIzG8QjWV0zGUIL5qdO4/is+N1/p+vJGlHMlZDp4WtUSoqNSl1a
7KCVaxqBUtl04QSClXNBnV+OOb0YlNi+1EhMpQWTjoQrt3t86yIyJHq1rWX7+y8/
AtcgNLKrSNDHyesy5G/37OO+ZwvmOs2AKtFsvD2LZ/lK3EqsYCywm/cVYsQqR1NU
f2zSQCVW5ZYXmEmDmIoMnI2b6ZDt3ZnqsRWQpl04X2zGeMigw398AjXdg3bnvgnG
tmdFdKYtnaGIWFmsjfzQdVccfq/ljlBB+r5vht+iSdQBM8EqR2Y5MRLlEEK8Vb5X
kndR7CKV3A+Cc7YqnibBB28HEXj525wSurzboX+lMWAXACN4z3UF/AZkIEZTJ9CD
Fz5AdYsIeePJ/InHH3lU3r7xLcdjpPRmA6rftFHrVU9y5+lpuMRaJWay8gBINunA
arK+732p3/P6OPj4S2+a+o3F5+/EzQkjvXpeHOwa8SyXEoV/xWHLs6Z5vnDa3N78
FGXRm+rbxAWRwyWRnn5gVLHkdr/rDZAJMnBKXl16az3I1YGoqcO81rNblIOHUd1n
Q4mUTDtTNfqwqmQ9UZOL
=uo2C
-----END PGP SIGNATURE-----

--DIOMP1UsTsWJauNi--

--===============1486342302==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs
IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0
cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK

--===============1486342302==--

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Lukas Wunner <lukas@wunner.de>
Subject: Re: [PATCH v2.1 1/3] vga_switcheroo: Add support for switching only
 the DDC
Date: Mon, 17 Aug 2015 21:11:07 +0200
Message-ID: <20150817191107.GA6718@wunner.de>
References: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
 <20150817103653.GB8453@ulmo.nvidia.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <dri-devel-bounces@lists.freedesktop.org>
Received: from mailout1.hostsharing.net (mailout1.hostsharing.net
 [83.223.95.204])
 by gabe.freedesktop.org (Postfix) with ESMTPS id 257F36E132
 for <dri-devel@lists.freedesktop.org>; Mon, 17 Aug 2015 12:11:13 -0700 (PDT)
Content-Disposition: inline
In-Reply-To: <20150817103653.GB8453@ulmo.nvidia.com>
List-Unsubscribe: <http://lists.freedesktop.org/mailman/options/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <http://lists.freedesktop.org/archives/dri-devel>
List-Post: <mailto:dri-devel@lists.freedesktop.org>
List-Help: <mailto:dri-devel-request@lists.freedesktop.org?subject=help>
List-Subscribe: <http://lists.freedesktop.org/mailman/listinfo/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=subscribe>
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel" <dri-devel-bounces@lists.freedesktop.org>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Seth Forshee <seth.forshee@canonical.com>, dri-devel@lists.freedesktop.org, Dave Airlie <airlied@redhat.com>
List-Id: dri-devel@lists.freedesktop.org

SGkgVGhpZXJyeSwKClRoYW5rcyBhIGxvdCBmb3IgeW91ciBjb21tZW50cyEKCk9uIE1vbiwgQXVn
IDE3LCAyMDE1IGF0IDEyOjM2OjU1UE0gKzAyMDAsIFRoaWVycnkgUmVkaW5nIHdyb3RlOgo+IE9u
IEZyaSwgQXVnIDE0LCAyMDE1IGF0IDA2OjUwOjE1UE0gKzAyMDAsIEx1a2FzIFd1bm5lciB3cm90
ZToKPiA+ICtpbnQgdmdhX3N3aXRjaGVyb29fbG9ja19kZGMoc3RydWN0IHBjaV9kZXYgKnBkZXYp
Cj4gPiArewo+ID4gKwlpbnQgaWQ7Cj4gPiArCj4gPiArCW11dGV4X2xvY2soJnZnYXNyX3ByaXYu
ZGRjX2xvY2spOwo+ID4gKwo+ID4gKwlpZiAoIXZnYXNyX3ByaXYuaGFuZGxlciB8fCAhdmdhc3Jf
cHJpdi5oYW5kbGVyLT5zd2l0Y2hfZGRjKQo+ID4gKwkJcmV0dXJuIHZnYXNyX3ByaXYub2xkX2Rk
Y19vd25lciA9IC1FTk9ERVY7Cj4gCj4gSSBmaW5kIHRoaXMgdmVyeSBoYXJkIHRvIHJlYWQuIENh
biB0aGlzIGJlIHNwbGl0IGFjcm9zcyB0d28gbGluZXM/CgpPaywgd2lsbCByZWN0aWZ5IGluIHYy
LjIuCgoKPiA+ICsJaWQgPSB2Z2Fzcl9wcml2LmhhbmRsZXItPmdldF9jbGllbnRfaWQocGRldik7
Cj4gPiArCXJldHVybiB2Z2Fzcl9wcml2Lm9sZF9kZGNfb3duZXIgPSB2Z2Fzcl9wcml2LmhhbmRs
ZXItPnN3aXRjaF9kZGMoaWQpOwo+IAo+IFRoaXMgdG9vLiBJIGFsc28gbm90aWNlIHRoYXQgdGhl
IG9ubHkgcGxhY2UgeW91IGNhbGwgdGhpcyBmcm9tIGRvZXNuJ3QKPiBjYXJlIGFib3V0IHRoZSBy
ZXR1cm4gdmFsdWUsIHNvIHdoeSBldmVuIGJvdGhlciByZXR1cm5pbmcgb25lPwoKSSBjYXJyaWVk
IHRoaXMgb3ZlciBmcm9tIFNldGggRm9yc2hlZSdzIGFuZCBEYXZlIEFpcmxpZSdzIHBhdGNoZXMs
CkkgYmVsaWV2ZSB0aGUgcmF0aW9uYWxlIGlzIHRoYXQgdGhlIC0+c3dpdGNoX2RkYyBoYW5kbGVy
IGNhbGxiYWNrCm1pZ2h0IHJldHVybiBhbiBlcnJvciBhbmQgdGhhdCBpcyBjdXN0b21hcmlseSBw
YXNzZWQgdXAgdG8gdGhlIGNhbGxlci4KCldoaWxlIGRybV9nZXRfZWRpZCgpIGRvZXMgaW5kZWVk
IGlnbm9yZSB0aGF0IHJldHVybiB2YWx1ZSAoaXQgd2lsbApqdXN0IHRyeSB0byBwcm9iZSBEREMg
YW55d2F5KSwgc29tZSBmdXR1cmUgZnVuY3Rpb24gdGhhdCBpbnZva2VzCnZnYV9zd2l0Y2hlcm9v
X2xvY2tfZGRjKCkgbWlnaHQgd2FudCB0byBkbyBzb21ldGhpbmcgdXNlZnVsIHdpdGggaXQuCgpT
byBlaXRoZXIgd2F5IGhhcyBpdHMgbWVyaXRzIGFuZCB0YmggSSBkb24ndCBmZWVsIGluIGEgcG9z
aXRpb24gdG8KanVkZ2Ugd2hhdCdzIHJpZ2h0IG9yIHdyb25nIGhlcmUuIEknZCBiZSBncmF0ZWZ1
bCBpZiB5b3Ugb3Igc29tZQpvdGhlciBtYWludGFpbmVyIHdvdWxkIGRlY2lkZSB3aGV0aGVyIHRv
IG1ha2UgdGhlIHJldHVybiB2YWx1ZQp2b2lkIG9yIG5vdCBhbmQgSSdsbCBiZSBoYXBweSB0byBj
aGFuZ2UgdGhlIHBhdGNoIGFjY29yZGluZ2x5LgoKCj4gPiArc3RhdGljIGlubGluZSBpbnQgdmdh
X3N3aXRjaGVyb29fbG9ja19kZGMoc3RydWN0IHBjaV9kZXYgKnBkZXYpIHsgcmV0dXJuIC1FTk9E
RVY7IH0KPiA+ICtzdGF0aWMgaW5saW5lIGludCB2Z2Ffc3dpdGNoZXJvb191bmxvY2tfZGRjKHN0
cnVjdCBwY2lfZGV2ICpwZGV2KSB7IHJldHVybiAtRU5PREVWOyB9Cj4gCj4gSWYgeW91IGNhcmUg
YWJvdXQgdGhlIHJldHVybiB2YWx1ZSB5b3UnbGwgd2FudCB0byByZXR1cm4gMCBoZXJlIHRvIG1h
a2UKPiBzdXJlIGtlcm5lbHMgd2l0aG91dCBWR0Egc3dpdGNoZXJvbyBzdXBwb3J0IHdpbGwgY29u
dGludWUgdG8gd29yawo+IHByb3Blcmx5LgoKTWF5YmUgSSdtIG1pc3Rha2VuIGJ1dCBJIGJlbGll
dmUgLUVOT0RFViBpcyBjb3JyZWN0LiBJZiB0aGVyZSdzIG5vIGVycm9yCnRoZW4gdmdhX3N3aXRj
aGVyb29fbG9ja19kZGMvdW5sb2NrX2RkYygpIHJldHVybiB0aGUgb2xkX2RkY19vd25lciB3aGlj
aAppcyBudW1iZXJlZCBmcm9tIDAuIEUuZy4gb24gdGhlIE1hY0Jvb2sgUHJvLCAwIGlzIElHRCBh
bmQgMSBpcyBESVMuClNvIHJldHVybmluZyAwIHdvdWxkIG1lYW4gIm9rYXksIHN1Y2Nlc3NmdWxs
eSBzd2l0Y2hlZCwgd2FzIHByZXZpb3VzbHkKc3dpdGNoZWQgdG8gdGhlIGludGVncmF0ZWQgR1BV
Ii4KCgpCZXN0IHJlZ2FyZHMsCgpMdWthcwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m
cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp
bmZvL2RyaS1kZXZlbAo=

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Lukas Wunner <lukas@wunner.de>
Subject: Re: [PATCH v2.1 3/3] drm/edid: Switch DDC when reading the EDID
Date: Mon, 17 Aug 2015 22:24:32 +0200
Message-ID: <20150817202432.GA6813@wunner.de>
References: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
 <3f927fb1a1df18bfdbb501b98a6b2dcd5c064f02.1439739853.git.lukas@wunner.de>
 <3d6de562c9dd7387318f90f2dc1578e56cb666c1.1439739853.git.lukas@wunner.de>
 <20150817104130.GC8453@ulmo.nvidia.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <dri-devel-bounces@lists.freedesktop.org>
Received: from mailout1.hostsharing.net (mailout1.hostsharing.net
 [83.223.95.204])
 by gabe.freedesktop.org (Postfix) with ESMTPS id 691A76E10C
 for <dri-devel@lists.freedesktop.org>; Mon, 17 Aug 2015 13:24:38 -0700 (PDT)
Content-Disposition: inline
In-Reply-To: <20150817104130.GC8453@ulmo.nvidia.com>
List-Unsubscribe: <http://lists.freedesktop.org/mailman/options/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <http://lists.freedesktop.org/archives/dri-devel>
List-Post: <mailto:dri-devel@lists.freedesktop.org>
List-Help: <mailto:dri-devel-request@lists.freedesktop.org?subject=help>
List-Subscribe: <http://lists.freedesktop.org/mailman/listinfo/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=subscribe>
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel" <dri-devel-bounces@lists.freedesktop.org>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Seth Forshee <seth.forshee@canonical.com>, dri-devel@lists.freedesktop.org, Dave Airlie <airlied@redhat.com>
List-Id: dri-devel@lists.freedesktop.org

SGkgVGhpZXJyeSwKCk9uIE1vbiwgQXVnIDE3LCAyMDE1IGF0IDEyOjQxOjMyUE0gKzAyMDAsIFRo
aWVycnkgUmVkaW5nIHdyb3RlOgo+IE9uIEZyaSwgQXVnIDE0LCAyMDE1IGF0IDA2OjI4OjM1UE0g
KzAyMDAsIEx1a2FzIFd1bm5lciB3cm90ZToKPiA+IEBAIC0xMzc3LDEzICsxMzc4LDIxIEBAIHN0
cnVjdCBlZGlkICpkcm1fZ2V0X2VkaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK
PiA+ICAJCQkgIHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcikKPiA+ICB7Cj4gPiAgCXN0cnVj
dCBlZGlkICplZGlkOwo+ID4gKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGNvbm5lY3Rvci0+ZGV2
LT5wZGV2Owo+ID4gIAo+ID4gLQlpZiAoIWRybV9wcm9iZV9kZGMoYWRhcHRlcikpCj4gPiArCXZn
YV9zd2l0Y2hlcm9vX2xvY2tfZGRjKHBkZXYpOwo+ID4gKwo+ID4gKwlpZiAoIWRybV9wcm9iZV9k
ZGMoYWRhcHRlcikpIHsKPiA+ICsJCXZnYV9zd2l0Y2hlcm9vX3VubG9ja19kZGMocGRldik7Cj4g
PiAgCQlyZXR1cm4gTlVMTDsKPiA+ICsJfQo+ID4gIAo+ID4gIAllZGlkID0gZHJtX2RvX2dldF9l
ZGlkKGNvbm5lY3RvciwgZHJtX2RvX3Byb2JlX2RkY19lZGlkLCBhZGFwdGVyKTsKPiA+ICAJaWYg
KGVkaWQpCj4gPiAgCQlkcm1fZ2V0X2Rpc3BsYXlpZChjb25uZWN0b3IsIGVkaWQpOwo+ID4gKwo+
ID4gKwl2Z2Ffc3dpdGNoZXJvb191bmxvY2tfZGRjKHBkZXYpOwo+ID4gKwo+ID4gIAlyZXR1cm4g
ZWRpZDsKPiA+ICB9Cj4gPiAgRVhQT1JUX1NZTUJPTChkcm1fZ2V0X2VkaWQpOwo+IAo+IEkgdGhp
bmsgdGhpcyBpcyBiYWNrd2FyZHMgYW5kIGl0J2QgYmUgbW9yZSBleHBsaWNpdCAodGhvdWdoIEkg
c3VzcGVjdAo+IHNsaWdodGx5IG1vcmUgd29yayBmb3IgdGhpcyBwYXRjaCkgdG8gYWRkIGEgc2Vw
YXJhdGUgaGVscGVyIHRoYXQgZG9lcwo+IHRoZSBWR0Egc3dpdGNoZXJvbyB3cmFwcGluZyByYXRo
ZXIgdGhhbiBoYXZlIHRoaXMgaW4gZHJtX2dldF9lZGlkKCkKPiB3aGVyZSBlc3NlbnRpYWxseSBl
dmVyeSBkcml2ZXIgd2lsbCBnbyB0aHJvdWdoIHRoZSBtb3Rpb25zIGV2ZW4gaWYgaXQKPiBkb2Vz
bid0IHJlbW90ZWx5IHN1cHBvcnQgc3dpdGNoZXJvby4KClRoaXMgaXMgYWxzbyBzb21ldGhpbmcg
SSBjYXJyaWVkIG92ZXIgZnJvbSBTZXRoIEZvcnNoZWUncyBhbmQKRGF2ZSBBaXJsaWUncyBwYXRj
aGVzIGFuZCBJIHRoaW5rIHRoZWlyIGludGVudGlvbiB3YXMgcHJlY2lzZWx5CnRvIGRvIHRoaXMg
aW4gYSBjZW50cmFsaXplZCB3YXkgaW4gb25lIG9mIHRoZSBnZW5lcmljIGZ1bmN0aW9ucywKcmF0
aGVyIHRoYW4gaGF2aW5nIHRvIG1vZGlmeSBlYWNoIGRyaXZlci4KCkZvciBkcml2ZXJzIHdpdGhv
dXQgdmdhX3N3aXRjaGVyb28gc3VwcG9ydCwgdGhlIGFkZGl0aW9uYWwgY29zdAphbW91bnRzIHRv
IG9uZSBtdXRleF9sb2NrL3VubG9jayAoYmVjYXVzZSB0aGVyZSdzIG5vIGhhbmRsZXIKcmVnaXN0
ZXJlZCBhbmQgdmdhX3N3aXRjaGVyb29fbG9ja19kZGMgYmFpbHMgb3V0IGltbWVkaWF0ZWx5Cmlm
IHRoZXJlJ3Mgbm9uZSkuCgpBcyBhbiBleGFtcGxlIHdoeSBJIHRoaW5rIHRoaXMgYXBwcm9hY2gg
d2FzIHRha2VuOiBMZXQncyBzYXkgdGhhdApUZWdyYSBvciBvdGhlciBtb2JpbGUgU29DcyBoYXZl
IGR1YWwgR1BVcyBpbiB0aGUgZnV0dXJlLCBraW5kIG9mCmxpa2UgQVJNIGJpZy5MSVRUTEUgZm9y
IGdyYXBoaWNzLiBXZSB3b3VsZCBwb3RlbnRpYWxseSBzdXBwb3J0CnRob3NlIGRldmljZXMgb3V0
IG9mIHRoZSBib3ggd2l0aG91dCBoYXZpbmcgdG8gbW9kaWZ5IHRoZSBkcml2ZXIKdG8gY2FsbCBk
cm1fZ2V0X2VkaWRfc3dpdGNoZXJvbygpIHJhdGhlciB0aGFuIGRybV9nZXRfZWRpZCgpLgpUaGF0
IHdhcyBraW5kIG9mIHRoZSBpZGVhIEkgZ3Vlc3MuCgpPbiB0aGUgb3RoZXIgaGFuZCwgYSBjYXNl
IGNvdWxkIGJlIG1hZGUgZm9yIHlvdXIgc3VnZ2VzdGVkIGFwcHJvYWNoCmFzIHdlbGw6IFRoZSBw
cm94eWluZyBzdHVmZiB3aWxsIGNsdXR0ZXIgZHJtX2dldF9lZGlkKCkgYW5kCmRybV9kcF9kcGNk
X3JlYWQoKSB3aXRoIGV2ZW4gbW9yZSB2Z2Ffc3dpdGNoZXJvbyBjYWxscywKYXMgY2FuIGJlIHNl
ZW4gaW4gZXhwZXJpbWVudGFsIHBhdGNoIDIwOgpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn
L2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE1LUF1Z3VzdC8wODgxNTQuaHRtbAoKQWxzbywgdG8gY29u
c3RyYWluIHByb3h5aW5nIHRvIGVEUCwgSSBoYWQgdG8gYW1lbmQgZHJtX2RwX2F1eCB3aXRoCmEg
Y29ubmVjdG9yIGF0dHJpYnV0ZSBzbyB0aGF0IHRoZSBjb25uZWN0b3IgdHlwZSBjYW4gYmUgY2hl
Y2tlZCBpbgpkcm1fZHBfZHBjZF9yZWFkKCkgKHBhdGNoIDE5KToKaHR0cDovL2xpc3RzLmZyZWVk
ZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxNS1BdWd1c3QvMDg4MTcyLmh0bWwKCldp
dGggeW91ciBhcHByb2FjaCwgSSB0aGluayB0aGlzIHdpbGwgYmUgdW5uZWNlc3NhcnkgYmVjYXVz
ZSB0aGUKZnVuY3Rpb25zIGluIHRoZSBkcml2ZXJzIHdoaWNoIHdvdWxkIGNhbGwgZHJtX2dldF9l
ZGlkX3N3aXRjaGVyb28oKQp3b3VsZCBhbHJlYWR5IGtub3cgdGhlIGNvbm5lY3RvciB0eXBlLgoK
U28gb25jZSBhZ2FpbiwgYSBjYXNlIGNhbiBiZSBtYWRlIGZvciBlaXRoZXIgYXBwcm9hY2gsIEkg
ZmVlbCBsaWtlCkknbSBub3QgaW4gYSBwb3NpdGlvbiB0byBwcm9wZXJseSBqdWRnZSB0aGlzLCBh
bmQgSSBraW5kbHkgYXNrIHRoYXQKeW91IG9yIGFub3RoZXIgbWFpbnRhaW5lciBtYWtlIHRoYXQg
ZGVjaXNpb24gYmFzZWQgb24gdGhlIGFkZGl0aW9uYWwKaW5mb3JtYXRpb24gSSd2ZSBwcm92aWRl
ZCBhYm92ZS4gSSdsbCB0aGVuIGdsYWRseSBhZGp1c3QgdGhlIHBhdGNoLgoKVGhhbmtzLAoKTHVr
YXMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl
dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s
aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Jani Nikula <jani.nikula@linux.intel.com>
Subject: Re: [PATCH v2.1 3/3] drm/edid: Switch DDC when reading the EDID
Date: Tue, 18 Aug 2015 10:02:43 +0300
Message-ID: <87r3n1m63w.fsf@intel.com>
References: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
 <3f927fb1a1df18bfdbb501b98a6b2dcd5c064f02.1439739853.git.lukas@wunner.de>
 <3d6de562c9dd7387318f90f2dc1578e56cb666c1.1439739853.git.lukas@wunner.de>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <dri-devel-bounces@lists.freedesktop.org>
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by gabe.freedesktop.org (Postfix) with ESMTP id 2041A6E331
 for <dri-devel@lists.freedesktop.org>; Mon, 17 Aug 2015 23:59:45 -0700 (PDT)
In-Reply-To: <3d6de562c9dd7387318f90f2dc1578e56cb666c1.1439739853.git.lukas@wunner.de>
List-Unsubscribe: <http://lists.freedesktop.org/mailman/options/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <http://lists.freedesktop.org/archives/dri-devel>
List-Post: <mailto:dri-devel@lists.freedesktop.org>
List-Help: <mailto:dri-devel-request@lists.freedesktop.org?subject=help>
List-Subscribe: <http://lists.freedesktop.org/mailman/listinfo/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=subscribe>
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel" <dri-devel-bounces@lists.freedesktop.org>
To: Lukas Wunner <lukas@wunner.de>, dri-devel@lists.freedesktop.org
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Seth Forshee <seth.forshee@canonical.com>, Dave Airlie <airlied@redhat.com>
List-Id: dri-devel@lists.freedesktop.org

T24gRnJpLCAxNCBBdWcgMjAxNSwgTHVrYXMgV3VubmVyIDxsdWthc0B3dW5uZXIuZGU+IHdyb3Rl
Ogo+IE9yaWdpbmFsbHkgYnkgU2V0aCBGb3JzaGVlIDxzZXRoLmZvcnNoZWVAY2Fub25pY2FsLmNv
bT4sIDIwMTItMTAtMDQ6Cj4gU29tZSBkdWFsIGdyYXBoaWNzIG1hY2hpbmVzIHN1cHBvcnQgbXV4
aW5nIHRoZSBEREMgc2VwYXJhdGVseSBmcm9tIHRoZQo+IGRpc3BsYXksIHNvIG1ha2UgdXNlIG9m
IHRoaXMgZnVuY3Rpb25hbGl0eSB3aGVuIHJlYWRpbmcgdGhlIEVESUQgb24gdGhlCj4gaW5hY3Rp
dmUgR1BVLiBBbHNvIHNlcmlhbGl6ZSBkcm1fZ2V0X2VkaWQoKSB3aXRoIGEgbXV0ZXggdG8gYXZv
aWQgcmFjZXMKPiBvbiB0aGUgRERDIG11eCBzdGF0ZS4KCkF0IGEgZ2xhbmNlLCBhbGwgdGhlIHJl
ZmVyZW5jZWQgYnVncyBoYXZlIExWRFMgZGlzcGxheXMuIElzIHRoaXMKc3VwcG9zZWQgdG8gd29y
ayBmb3IgZURQIGFzIHdlbGw/IEhvdyBhYm91dCBtdXhpbmcgYW5kIGxvY2tpbmcgb2YgRFBDRAph
Y2Nlc3M/CgpCUiwKSmFuaS4KCgoKCgo+Cj4gTW9kaWZpZWQgYnkgRGF2ZSBBaXJsaWUgPGFpcmxp
ZWRAZ21haWwuY29tPiwgMjAxMi0xMi0yMjoKPiBJIGNhbid0IGZpZ3VyZSBvdXQgd2h5IEkgZGlk
bid0IGxpa2UgdGhpcywgYnV0IEkgcmV3cm90ZSB0aGlzIFsuLi5dIHRvCj4gbG9jay91bmxvY2sg
dGhlIGRkYyBsaW5lcyBbLi4uXS4gSSB0aGluayBJJ2QgcHJlZmVyIHNvbWV0aGluZyBsaWtlIHRo
YXQKPiBvdGhlcndpc2UgdGhlIGludGVyZmFjZSBnb3QgcmVhbGx5IHVnbHkuCj4KPiBNb2RpZmll
ZCBieSBMdWthcyBXdW5uZXIgPGx1a2FzQHd1bm5lci5kZT4sIDIwMTUtMDMtMjc6Cj4gVW5sb2Nr
IEREQyBsaW5lcyBpZiBkcm1fcHJvYmVfZGRjKCkgZmFpbHMuCj4KPiBCdWd6aWxsYTogaHR0cHM6
Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD04ODg2MQo+IEJ1Z3ppbGxhOiBo
dHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD02MTExNQo+IFRlc3Rl
ZC1ieTogUGllcnJlIE1vcmVhdSA8cGllcnJlLm1vcnJvd0BmcmVlLmZyPgo+ICAgICBbTUJQICA1
LDMgMjAwOSAgbnZpZGlhIDk0MDBNICsgOTYwME0gR1QgICBwcmUtcmV0aW5hXQo+IFRlc3RlZC1i
eTogUGF1bCBIb3JkaWllbmtvIDxwdnQuZ29yZEBnbWFpbC5jb20+Cj4gICAgIFtNQlAgIDYsMiAy
MDEwICBpbnRlbCBJTEsgKyBudmlkaWEgR1QyMTYgIHByZS1yZXRpbmFdCj4gVGVzdGVkLWJ5OiBX
aWxsaWFtIEJyb3duIDx3aWxsaWFtQGJsYWNraGF0cy5uZXQuYXU+Cj4gICAgIFtNQlAgIDgsMiAy
MDExICBpbnRlbCBTTkIgKyBhbWQgdHVya3MgICAgIHByZS1yZXRpbmFdCj4gVGVzdGVkLWJ5OiBM
dWthcyBXdW5uZXIgPGx1a2FzQHd1bm5lci5kZT4KPiAgICAgW01CUCAgOSwxIDIwMTIgIGludGVs
IElWQiArIG52aWRpYSBHSzEwNyAgcHJlLXJldGluYV0KPiBUZXN0ZWQtYnk6IEJydW5vIEJpZXJi
YXVtZXIgPGJydW5vQGJpZXJiYXVtZXIubmV0Pgo+ICAgICBbTUJQIDExLDMgMjAxMyAgaW50ZWwg
SFNXICsgbnZpZGlhIEdLMTA3ICByZXRpbmEgLS0gd29yayBpbiBwcm9ncmVzc10KPgo+IENjOiBT
ZXRoIEZvcnNoZWUgPHNldGguZm9yc2hlZUBjYW5vbmljYWwuY29tPgo+IENjOiBEYXZlIEFpcmxp
ZSA8YWlybGllZEBnbWFpbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTHVrYXMgV3VubmVyIDxsdWth
c0B3dW5uZXIuZGU+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jIHwgMTEgKysr
KysrKysrKy0KPiAgMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o
LSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyBiL2RyaXZlcnMv
Z3B1L2RybS9kcm1fZWRpZC5jCj4gaW5kZXggZTZlMDViYi4uY2RiMmZhMSAxMDA2NDQKPiAtLS0g
YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f
ZWRpZC5jCj4gQEAgLTMyLDYgKzMyLDcgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L2hkbWkuaD4KPiAg
I2luY2x1ZGUgPGxpbnV4L2kyYy5oPgo+ICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gKyNp
bmNsdWRlIDxsaW51eC92Z2Ffc3dpdGNoZXJvby5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybVAuaD4K
PiAgI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9kaXNwbGF5
aWQuaD4KPiBAQCAtMTM3NywxMyArMTM3OCwyMSBAQCBzdHJ1Y3QgZWRpZCAqZHJtX2dldF9lZGlk
KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkJCSAgc3RydWN0IGkyY19hZGFw
dGVyICphZGFwdGVyKQo+ICB7Cj4gIAlzdHJ1Y3QgZWRpZCAqZWRpZDsKPiArCXN0cnVjdCBwY2lf
ZGV2ICpwZGV2ID0gY29ubmVjdG9yLT5kZXYtPnBkZXY7Cj4gIAo+IC0JaWYgKCFkcm1fcHJvYmVf
ZGRjKGFkYXB0ZXIpKQo+ICsJdmdhX3N3aXRjaGVyb29fbG9ja19kZGMocGRldik7Cj4gKwo+ICsJ
aWYgKCFkcm1fcHJvYmVfZGRjKGFkYXB0ZXIpKSB7Cj4gKwkJdmdhX3N3aXRjaGVyb29fdW5sb2Nr
X2RkYyhwZGV2KTsKPiAgCQlyZXR1cm4gTlVMTDsKPiArCX0KPiAgCj4gIAllZGlkID0gZHJtX2Rv
X2dldF9lZGlkKGNvbm5lY3RvciwgZHJtX2RvX3Byb2JlX2RkY19lZGlkLCBhZGFwdGVyKTsKPiAg
CWlmIChlZGlkKQo+ICAJCWRybV9nZXRfZGlzcGxheWlkKGNvbm5lY3RvciwgZWRpZCk7Cj4gKwo+
ICsJdmdhX3N3aXRjaGVyb29fdW5sb2NrX2RkYyhwZGV2KTsKPiArCj4gIAlyZXR1cm4gZWRpZDsK
PiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9nZXRfZWRpZCk7Cj4gLS0gCj4gMi4xLjAKPgo+IF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVs
IG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8v
bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAKSmFu
aSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp
c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0
b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Lukas Wunner <lukas@wunner.de>
Subject: Re: [PATCH v2.1 3/3] drm/edid: Switch DDC when reading the EDID
Date: Tue, 18 Aug 2015 16:16:37 +0200
Message-ID: <20150818141637.GA7030@wunner.de>
References: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
 <3f927fb1a1df18bfdbb501b98a6b2dcd5c064f02.1439739853.git.lukas@wunner.de>
 <3d6de562c9dd7387318f90f2dc1578e56cb666c1.1439739853.git.lukas@wunner.de>
 <87r3n1m63w.fsf@intel.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <dri-devel-bounces@lists.freedesktop.org>
Received: from mailout3.hostsharing.net (mailout3.hostsharing.net
 [176.9.242.54])
 by gabe.freedesktop.org (Postfix) with ESMTPS id 9039C6E418
 for <dri-devel@lists.freedesktop.org>; Tue, 18 Aug 2015 07:16:42 -0700 (PDT)
Content-Disposition: inline
In-Reply-To: <87r3n1m63w.fsf@intel.com>
List-Unsubscribe: <http://lists.freedesktop.org/mailman/options/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <http://lists.freedesktop.org/archives/dri-devel>
List-Post: <mailto:dri-devel@lists.freedesktop.org>
List-Help: <mailto:dri-devel-request@lists.freedesktop.org?subject=help>
List-Subscribe: <http://lists.freedesktop.org/mailman/listinfo/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=subscribe>
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel" <dri-devel-bounces@lists.freedesktop.org>
To: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Seth Forshee <seth.forshee@canonical.com>, dri-devel@lists.freedesktop.org, Dave Airlie <airlied@redhat.com>
List-Id: dri-devel@lists.freedesktop.org

SGkgSmFuaSwKCk9uIFR1ZSwgQXVnIDE4LCAyMDE1IGF0IDEwOjAyOjQzQU0gKzAzMDAsIEphbmkg
TmlrdWxhIHdyb3RlOgo+IE9uIEZyaSwgMTQgQXVnIDIwMTUsIEx1a2FzIFd1bm5lciA8bHVrYXNA
d3VubmVyLmRlPiB3cm90ZToKPiA+IE9yaWdpbmFsbHkgYnkgU2V0aCBGb3JzaGVlIDxzZXRoLmZv
cnNoZWVAY2Fub25pY2FsLmNvbT4sIDIwMTItMTAtMDQ6Cj4gPiBTb21lIGR1YWwgZ3JhcGhpY3Mg
bWFjaGluZXMgc3VwcG9ydCBtdXhpbmcgdGhlIEREQyBzZXBhcmF0ZWx5IGZyb20gdGhlCj4gPiBk
aXNwbGF5LCBzbyBtYWtlIHVzZSBvZiB0aGlzIGZ1bmN0aW9uYWxpdHkgd2hlbiByZWFkaW5nIHRo
ZSBFRElEIG9uIHRoZQo+ID4gaW5hY3RpdmUgR1BVLiBBbHNvIHNlcmlhbGl6ZSBkcm1fZ2V0X2Vk
aWQoKSB3aXRoIGEgbXV0ZXggdG8gYXZvaWQgcmFjZXMKPiA+IG9uIHRoZSBEREMgbXV4IHN0YXRl
Lgo+IAo+IEF0IGEgZ2xhbmNlLCBhbGwgdGhlIHJlZmVyZW5jZWQgYnVncyBoYXZlIExWRFMgZGlz
cGxheXMuCgpGb3IgdGhlIG9yaWdpbmFsIHJlcG9ydGVycyBvZiB0aGUgYnVncyB0aGF0J3MgdHJ1
ZSwgYnV0IGFub3RoZXIgdXNlcgpqdW1wZWQgb24gdGhlIGJhbmR3YWdvbiB3aG8gaGFzIGEgcmV0
aW5hIGFuZCB0aGF0IG9uZSB1c2VzIGVEUDoKaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3No
b3dfYnVnLmNnaT9pZD04ODg2MSNjNwoKVGhlIHByZS1yZXRpbmFzIHdpdGggZHVhbCBHUFVzIChw
cm9kdWNlZCAyMDA4LTIwMTMpIHVzZWQgTFZEUy4KVGhlIHJldGluYXMgKDIwMTItcHJlc2VudCkg
dXNlIGVEUC4gKEJlY2F1c2UgdGhlIGRvdGNsb2NrIHJlcXVpcmVkCmZvciAyODgweDE4MDAgKDMz
Nzc1MCBrSHopIGlzIG5vdCBzdXBwb3J0ZWQgYnkgTFZEUyBldmVuIHdpdGggZHVhbApjaGFubmVs
cywgbWF4IGlzIDIyNCBNSHouKQoKCj4gSXMgdGhpcyBzdXBwb3NlZCB0byB3b3JrIGZvciBlRFAg
YXMgd2VsbD8KClRoZSAzIHBhdGNoZXMgSSd2ZSBwb3N0ZWQgd2l0aCB2Mi4xIGVuYWJsZSBHUFUg
c3dpdGNoaW5nIG9ubHkgb24gTFZEUywKYW5kIG9ubHkgdW5kZXIgY2VydGFpbiBjaXJjdW1zdGFu
Y2VzLiAoYXBwbGUtZ211eCBtdXN0IHJlZ2lzdGVyIGJlZm9yZQp0aGUgaW5hY3RpdmUgR1BVJ3Mg
ZHJpdmVyIGFuZCB0aGUgaW5hY3RpdmUgR1BVIG1heSBub3QgYmUgYW4gTnZpZGlhLikKClRoZSAy
MiBwYXRjaGVzIEkndmUgcG9zdGVkIHdpdGggdjIgZW5hYmxlIEdQVSBzd2l0Y2hpbmcgb24gTFZE
UyB1bmRlcgphbnkgY2lyY3Vtc3RhbmNlcyBhbmQgYWxzbyBjb250YWluIGV4cGVyaW1lbnRhbCBj
b21taXRzIHRoYXQgcHJldmlldwpob3cgd2UncmUgdGFja2xpbmcgZURQIHN1cHBvcnQuCgoKPiBI
b3cgYWJvdXQgbXV4aW5nIGFuZCBsb2NraW5nIG9mIERQQ0QgYWNjZXNzPwoKTXV4aW5nIHRoZSBB
VVggY2hhbm5lbCBzZXBhcmF0ZWx5IGZyb20gdGhlIG1haW4gbGluayBpcyBhcHBhcmVudGx5CnVu
c3VwcG9ydGVkIGJ5IHRoZSBnbXV4IGNvbnRyb2xsZXIuIFNlZSB0aGUgY292ZXIgbGV0dGVyIG9m
IHYyIGZvcgpkZXRhaWxzIChzY3JvbGwgZG93biB0byAiVGhlIGxvbmcgam91cm5leSB0b3dhcmRz
IHJldGluYSBzdXBwb3J0Iik6Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMv
ZHJpLWRldmVsLzIwMTUtQXVndXN0LzA4ODE1Ni5odG1sCgpJJ20gdHJ5aW5nIHRvIHNvbHZlIHRo
aXMgYnkgZW11bGF0aW5nIG11eGluZyBpbiBzb2Z0d2FyZTogUmVhZCBhY2Nlc3MKdG8gdGhlIERQ
Q0QgaXMgcHJveGllZCB2aWEgdGhlIGFjdGl2ZSBHUFUuIEhvd2V2ZXIgdGhlIGRyaXZlcnMgYWxz
bwp0cnkgdG8gd3JpdGUgdG8gdGhlIERQQ0QgYW5kIGFib3J0IGxpbmsgdHJhaW5pbmcgaWYgdGhl
IHdyaXRlIGZhaWxzLApzbyBpbiB0aG9zZSBzaXR1YXRpb25zIEkgY2hlY2sgaWYgdGhlIGNvbnRl
bnRzIG9mIERQQ0QgbWF0Y2ggd2l0aAp3aGF0IHRoZSBkcml2ZXIgd2FudHMgdG8gd3JpdGUsIGFu
ZCBpZiBzbywgc2lnbmFsIHN1Y2Nlc3Mgd2l0aG91dAp3cml0aW5nIGFueXRoaW5nLiBFLmcuIG5v
dXZlYXUgdHJpZXMgdG8gY29uZmlndXJlIDQgbGFuZXMgYXQgMjcwMDAwCmFuZCBpOTE1IGNvbmZp
Z3VyZXMgdGhlIHNhbWUsIHNvIG5vIHBvaW50IGluIHdyaXRpbmcgdG8gRFBDRC4KRGFuaWVsIGV4
cHJlc3NlZCBjb25jZXJucyB0aGF0IHRoZSBpbmFjdGl2ZSBHUFUgbWlnaHQgYWN0dWFsbHkgd3Jp
dGUKdG8gRFBDRCBidXQgdGhlcmUncyBubyBjb2RlIGxldCBpdCBkbyB0aGF0IChkZWxpYmVyYXRl
bHkgc28gYXMgaXQKd291bGQgYmUgdW5zYWZlKToKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y
Zy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxNS1BdWd1c3QvMDg4MTU0Lmh0bWwKaHR0cDovL2xpc3Rz
LmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxNS1KdWx5LzA4ODE3My5odG1s
CgoKQmVzdCByZWdhcmRzLAoKTHVrYXMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl
ZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m
by9kcmktZGV2ZWwK

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Daniel Vetter <daniel@ffwll.ch>
Subject: Re: [PATCH v2.1 3/3] drm/edid: Switch DDC when reading the EDID
Date: Tue, 25 Aug 2015 10:00:24 +0200
Message-ID: <20150825080024.GN20434@phenom.ffwll.local>
References: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
 <3f927fb1a1df18bfdbb501b98a6b2dcd5c064f02.1439739853.git.lukas@wunner.de>
 <3d6de562c9dd7387318f90f2dc1578e56cb666c1.1439739853.git.lukas@wunner.de>
 <20150817104130.GC8453@ulmo.nvidia.com>
 <20150817202432.GA6813@wunner.de>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <dri-devel-bounces@lists.freedesktop.org>
Received: from mail-wi0-f180.google.com (mail-wi0-f180.google.com
 [209.85.212.180])
 by gabe.freedesktop.org (Postfix) with ESMTPS id 0C4B06EB23
 for <dri-devel@lists.freedesktop.org>; Tue, 25 Aug 2015 01:00:29 -0700 (PDT)
Received: by widdq5 with SMTP id dq5so6726708wid.0
 for <dri-devel@lists.freedesktop.org>; Tue, 25 Aug 2015 01:00:27 -0700 (PDT)
Content-Disposition: inline
In-Reply-To: <20150817202432.GA6813@wunner.de>
List-Unsubscribe: <http://lists.freedesktop.org/mailman/options/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <http://lists.freedesktop.org/archives/dri-devel>
List-Post: <mailto:dri-devel@lists.freedesktop.org>
List-Help: <mailto:dri-devel-request@lists.freedesktop.org?subject=help>
List-Subscribe: <http://lists.freedesktop.org/mailman/listinfo/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=subscribe>
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel" <dri-devel-bounces@lists.freedesktop.org>
To: Lukas Wunner <lukas@wunner.de>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Seth Forshee <seth.forshee@canonical.com>, dri-devel@lists.freedesktop.org, Dave Airlie <airlied@redhat.com>
List-Id: dri-devel@lists.freedesktop.org

T24gTW9uLCBBdWcgMTcsIDIwMTUgYXQgMTA6MjQ6MzJQTSArMDIwMCwgTHVrYXMgV3VubmVyIHdy
b3RlOgo+IEhpIFRoaWVycnksCj4gCj4gT24gTW9uLCBBdWcgMTcsIDIwMTUgYXQgMTI6NDE6MzJQ
TSArMDIwMCwgVGhpZXJyeSBSZWRpbmcgd3JvdGU6Cj4gPiBPbiBGcmksIEF1ZyAxNCwgMjAxNSBh
dCAwNjoyODozNVBNICswMjAwLCBMdWthcyBXdW5uZXIgd3JvdGU6Cj4gPiA+IEBAIC0xMzc3LDEz
ICsxMzc4LDIxIEBAIHN0cnVjdCBlZGlkICpkcm1fZ2V0X2VkaWQoc3RydWN0IGRybV9jb25uZWN0
b3IgKmNvbm5lY3RvciwKPiA+ID4gIAkJCSAgc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyKQo+
ID4gPiAgewo+ID4gPiAgCXN0cnVjdCBlZGlkICplZGlkOwo+ID4gPiArCXN0cnVjdCBwY2lfZGV2
ICpwZGV2ID0gY29ubmVjdG9yLT5kZXYtPnBkZXY7Cj4gPiA+ICAKPiA+ID4gLQlpZiAoIWRybV9w
cm9iZV9kZGMoYWRhcHRlcikpCj4gPiA+ICsJdmdhX3N3aXRjaGVyb29fbG9ja19kZGMocGRldik7
Cj4gPiA+ICsKPiA+ID4gKwlpZiAoIWRybV9wcm9iZV9kZGMoYWRhcHRlcikpIHsKPiA+ID4gKwkJ
dmdhX3N3aXRjaGVyb29fdW5sb2NrX2RkYyhwZGV2KTsKPiA+ID4gIAkJcmV0dXJuIE5VTEw7Cj4g
PiA+ICsJfQo+ID4gPiAgCj4gPiA+ICAJZWRpZCA9IGRybV9kb19nZXRfZWRpZChjb25uZWN0b3Is
IGRybV9kb19wcm9iZV9kZGNfZWRpZCwgYWRhcHRlcik7Cj4gPiA+ICAJaWYgKGVkaWQpCj4gPiA+
ICAJCWRybV9nZXRfZGlzcGxheWlkKGNvbm5lY3RvciwgZWRpZCk7Cj4gPiA+ICsKPiA+ID4gKwl2
Z2Ffc3dpdGNoZXJvb191bmxvY2tfZGRjKHBkZXYpOwo+ID4gPiArCj4gPiA+ICAJcmV0dXJuIGVk
aWQ7Cj4gPiA+ICB9Cj4gPiA+ICBFWFBPUlRfU1lNQk9MKGRybV9nZXRfZWRpZCk7Cj4gPiAKPiA+
IEkgdGhpbmsgdGhpcyBpcyBiYWNrd2FyZHMgYW5kIGl0J2QgYmUgbW9yZSBleHBsaWNpdCAodGhv
dWdoIEkgc3VzcGVjdAo+ID4gc2xpZ2h0bHkgbW9yZSB3b3JrIGZvciB0aGlzIHBhdGNoKSB0byBh
ZGQgYSBzZXBhcmF0ZSBoZWxwZXIgdGhhdCBkb2VzCj4gPiB0aGUgVkdBIHN3aXRjaGVyb28gd3Jh
cHBpbmcgcmF0aGVyIHRoYW4gaGF2ZSB0aGlzIGluIGRybV9nZXRfZWRpZCgpCj4gPiB3aGVyZSBl
c3NlbnRpYWxseSBldmVyeSBkcml2ZXIgd2lsbCBnbyB0aHJvdWdoIHRoZSBtb3Rpb25zIGV2ZW4g
aWYgaXQKPiA+IGRvZXNuJ3QgcmVtb3RlbHkgc3VwcG9ydCBzd2l0Y2hlcm9vLgo+IAo+IFRoaXMg
aXMgYWxzbyBzb21ldGhpbmcgSSBjYXJyaWVkIG92ZXIgZnJvbSBTZXRoIEZvcnNoZWUncyBhbmQK
PiBEYXZlIEFpcmxpZSdzIHBhdGNoZXMgYW5kIEkgdGhpbmsgdGhlaXIgaW50ZW50aW9uIHdhcyBw
cmVjaXNlbHkKPiB0byBkbyB0aGlzIGluIGEgY2VudHJhbGl6ZWQgd2F5IGluIG9uZSBvZiB0aGUg
Z2VuZXJpYyBmdW5jdGlvbnMsCj4gcmF0aGVyIHRoYW4gaGF2aW5nIHRvIG1vZGlmeSBlYWNoIGRy
aXZlci4KPiAKPiBGb3IgZHJpdmVycyB3aXRob3V0IHZnYV9zd2l0Y2hlcm9vIHN1cHBvcnQsIHRo
ZSBhZGRpdGlvbmFsIGNvc3QKPiBhbW91bnRzIHRvIG9uZSBtdXRleF9sb2NrL3VubG9jayAoYmVj
YXVzZSB0aGVyZSdzIG5vIGhhbmRsZXIKPiByZWdpc3RlcmVkIGFuZCB2Z2Ffc3dpdGNoZXJvb19s
b2NrX2RkYyBiYWlscyBvdXQgaW1tZWRpYXRlbHkKPiBpZiB0aGVyZSdzIG5vbmUpLgo+IAo+IEFz
IGFuIGV4YW1wbGUgd2h5IEkgdGhpbmsgdGhpcyBhcHByb2FjaCB3YXMgdGFrZW46IExldCdzIHNh
eSB0aGF0Cj4gVGVncmEgb3Igb3RoZXIgbW9iaWxlIFNvQ3MgaGF2ZSBkdWFsIEdQVXMgaW4gdGhl
IGZ1dHVyZSwga2luZCBvZgo+IGxpa2UgQVJNIGJpZy5MSVRUTEUgZm9yIGdyYXBoaWNzLiBXZSB3
b3VsZCBwb3RlbnRpYWxseSBzdXBwb3J0Cj4gdGhvc2UgZGV2aWNlcyBvdXQgb2YgdGhlIGJveCB3
aXRob3V0IGhhdmluZyB0byBtb2RpZnkgdGhlIGRyaXZlcgo+IHRvIGNhbGwgZHJtX2dldF9lZGlk
X3N3aXRjaGVyb28oKSByYXRoZXIgdGhhbiBkcm1fZ2V0X2VkaWQoKS4KPiBUaGF0IHdhcyBraW5k
IG9mIHRoZSBpZGVhIEkgZ3Vlc3MuCj4gCj4gT24gdGhlIG90aGVyIGhhbmQsIGEgY2FzZSBjb3Vs
ZCBiZSBtYWRlIGZvciB5b3VyIHN1Z2dlc3RlZCBhcHByb2FjaAo+IGFzIHdlbGw6IFRoZSBwcm94
eWluZyBzdHVmZiB3aWxsIGNsdXR0ZXIgZHJtX2dldF9lZGlkKCkgYW5kCj4gZHJtX2RwX2RwY2Rf
cmVhZCgpIHdpdGggZXZlbiBtb3JlIHZnYV9zd2l0Y2hlcm9vIGNhbGxzLAo+IGFzIGNhbiBiZSBz
ZWVuIGluIGV4cGVyaW1lbnRhbCBwYXRjaCAyMDoKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au
b3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE1LUF1Z3VzdC8wODgxNTQuaHRtbAo+IAo+IEFsc28s
IHRvIGNvbnN0cmFpbiBwcm94eWluZyB0byBlRFAsIEkgaGFkIHRvIGFtZW5kIGRybV9kcF9hdXgg
d2l0aAo+IGEgY29ubmVjdG9yIGF0dHJpYnV0ZSBzbyB0aGF0IHRoZSBjb25uZWN0b3IgdHlwZSBj
YW4gYmUgY2hlY2tlZCBpbgo+IGRybV9kcF9kcGNkX3JlYWQoKSAocGF0Y2ggMTkpOgo+IGh0dHA6
Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTUtQXVndXN0LzA4
ODE3Mi5odG1sCj4gCj4gV2l0aCB5b3VyIGFwcHJvYWNoLCBJIHRoaW5rIHRoaXMgd2lsbCBiZSB1
bm5lY2Vzc2FyeSBiZWNhdXNlIHRoZQo+IGZ1bmN0aW9ucyBpbiB0aGUgZHJpdmVycyB3aGljaCB3
b3VsZCBjYWxsIGRybV9nZXRfZWRpZF9zd2l0Y2hlcm9vKCkKPiB3b3VsZCBhbHJlYWR5IGtub3cg
dGhlIGNvbm5lY3RvciB0eXBlLgo+IAo+IFNvIG9uY2UgYWdhaW4sIGEgY2FzZSBjYW4gYmUgbWFk
ZSBmb3IgZWl0aGVyIGFwcHJvYWNoLCBJIGZlZWwgbGlrZQo+IEknbSBub3QgaW4gYSBwb3NpdGlv
biB0byBwcm9wZXJseSBqdWRnZSB0aGlzLCBhbmQgSSBraW5kbHkgYXNrIHRoYXQKPiB5b3Ugb3Ig
YW5vdGhlciBtYWludGFpbmVyIG1ha2UgdGhhdCBkZWNpc2lvbiBiYXNlZCBvbiB0aGUgYWRkaXRp
b25hbAo+IGluZm9ybWF0aW9uIEkndmUgcHJvdmlkZWQgYWJvdmUuIEknbGwgdGhlbiBnbGFkbHkg
YWRqdXN0IHRoZSBwYXRjaC4KCkdlbmVyYWxseSB3ZSBtYWtlIGhlbHBlcnMgb3B0LWluIGFuZCBu
b3Qgb3B0LW91dCBzaW5jZSB0aGVyZSdzIGFsd2F5cyB0aGUKb2RkYmFsbCBvbmUgb3V0IHRoZXJl
IHdoaWNoIG5lZWRzIHNvbWUgYWRkaXRpb25hbCBjb2RlLiBUaGUgYWRkaXRpb24gb2YKZHJtX2Rv
X2dldF9lZGlkIGlzIGltbyBjbGVhciBwcmVjZWRlbmNlIHRoYXQgdGhlcmUncyBsb3RzIG9mIGZ1
biB0aGluZ3MKZ29pbmcgb24gd2hlbiBmZXRjaGluZyBlZGlkLiBIZW5jZSBJJ20gYWxzbyB2b3Rp
bmcgZm9yIGEgc2VwYXJhdGUgaGVscGVyCnRvIGRvIGRkYyBzd2l0Y2hpbmcuCgpUaGF0IHdpbGwg
YWxzbyBjbGVhciB1cCB0aGUgY29uZnVzaW9uIHdpdGggZHJtX2RwX2F1eCwgYWRkaW5nIGEKZHJt
X2Nvbm5lY3RvciB0aGVyZSBmZWVscyB3cm9uZyBzaW5jZSBub3QgZXZlcnkgZHBfYXV4IGxpbmUg
aGFzIGEKY29ubmVjdG9yIChlLmcuIGZvciBkcCBtc3QpLiBJZiB3ZSBjYW4gbGlmdCB0aGlzIHJl
bGF0aW9uIG91dCBpbnRvIGRyaXZlcnMKKHdoZXJlIHRoaXMgaXMga25vd24pIHRoYXQgc2VlbXMg
Y2xlYW5lci4KLURhbmllbAotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50
ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2
ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp
bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Daniel Vetter <daniel@ffwll.ch>
Subject: Re: [PATCH v2.1 1/3] vga_switcheroo: Add support for switching only
 the DDC
Date: Tue, 25 Aug 2015 10:12:50 +0200
Message-ID: <20150825081249.GO20434@phenom.ffwll.local>
References: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <dri-devel-bounces@lists.freedesktop.org>
Received: from mail-wi0-f173.google.com (mail-wi0-f173.google.com
 [209.85.212.173])
 by gabe.freedesktop.org (Postfix) with ESMTPS id F07156E0F6
 for <dri-devel@lists.freedesktop.org>; Tue, 25 Aug 2015 01:12:53 -0700 (PDT)
Received: by wicja10 with SMTP id ja10so7023065wic.1
 for <dri-devel@lists.freedesktop.org>; Tue, 25 Aug 2015 01:12:52 -0700 (PDT)
Content-Disposition: inline
In-Reply-To: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
List-Unsubscribe: <http://lists.freedesktop.org/mailman/options/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <http://lists.freedesktop.org/archives/dri-devel>
List-Post: <mailto:dri-devel@lists.freedesktop.org>
List-Help: <mailto:dri-devel-request@lists.freedesktop.org?subject=help>
List-Subscribe: <http://lists.freedesktop.org/mailman/listinfo/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=subscribe>
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel" <dri-devel-bounces@lists.freedesktop.org>
To: Lukas Wunner <lukas@wunner.de>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Dave Airlie <airlied@redhat.com>, dri-devel@lists.freedesktop.org, Seth Forshee <seth.forshee@canonical.com>
List-Id: dri-devel@lists.freedesktop.org

T24gRnJpLCBBdWcgMTQsIDIwMTUgYXQgMDY6NTA6MTVQTSArMDIwMCwgTHVrYXMgV3VubmVyIHdy
b3RlOgo+IE9yaWdpbmFsbHkgYnkgU2V0aCBGb3JzaGVlIDxzZXRoLmZvcnNoZWVAY2Fub25pY2Fs
LmNvbT4sIDIwMTItMTAtMDQ6Cj4gRHVyaW5nIGdyYXBoaWNzIGRyaXZlciBpbml0aWFsaXphdGlv
biBpdCdzIHVzZWZ1bCB0byBiZSBhYmxlIHRvIG11eCBvbmx5Cj4gdGhlIEREQyB0byB0aGUgaW5h
Y3RpdmUgY2xpZW50IGluIG9yZGVyIHRvIHJlYWQgdGhlIEVESUQuIEFkZCBhCj4gc3dpdGNoX2Rk
YyBjYWxsYmFjayB0byBhbGxvdyBjYXBhYmxlIGhhbmRsZXJzIHRvIHByb3ZpZGUgdGhpcwo+IGZ1
bmN0aW9uYWxpdHksIGFuZCBhZGQgdmdhX3N3aXRjaGVyb29fc3dpdGNoX2RkYygpIHRvIGFsbG93
IERSTSB0byBtdXgKPiBvbmx5IHRoZSBEREMuCj4gCj4gTW9kaWZpZWQgYnkgRGF2ZSBBaXJsaWUg
PGFpcmxpZWRAZ21haWwuY29tPiwgMjAxMi0xMi0yMjoKPiBJIGNhbid0IGZpZ3VyZSBvdXQgd2h5
IEkgZGlkbid0IGxpa2UgdGhpcywgYnV0IEkgcmV3cm90ZSB0aGlzIFsuLi5dIHRvCj4gbG9jay91
bmxvY2sgdGhlIGRkYyBsaW5lcyBbLi4uXS4gSSB0aGluayBJJ2QgcHJlZmVyIHNvbWV0aGluZyBs
aWtlIHRoYXQKPiBvdGhlcndpc2UgdGhlIGludGVyZmFjZSBnb3QgcmVhbGx5IHVnbHkuCj4gCj4g
TW9kaWZpZWQgYnkgTHVrYXMgV3VubmVyIDxsdWthc0B3dW5uZXIuZGU+LCAyMDE1LTA4LTE0Ogo+
IERvbid0IGdyYWIgdmdhc3JfbXV0ZXggaW4gbG9ja19kZGMvdW5sb2NrX2RkYyB0byBhdm9pZCB0
aGUgZm9sbG93aW5nCj4gZGVhZGxvY2sgc2NlbmFyaW9zOiAoYSkgRHVyaW5nIHN3aXRjaCAod2l0
aCB2Z2Fzcl9tdXRleCBhbHJlYWR5IGhlbGQpLAo+IEdQVSBpcyB3b2tlbiBhbmQgcHJvYmVzIGl0
cyBvdXRwdXRzLCB0cmllcyB0byByZS1hY3F1aXJlIHZnYXNyX211dGV4Cj4gdG8gbG9jayBEREMg
bGluZXMuIChiKSBMaWtld2lzZSBkdXJpbmcgc3dpdGNoLCBHUFUgaXMgc3VzcGVuZGVkIGFuZAo+
IGNhbGxzIGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYyB0byBzdG9wIG91dHB1dCBwb2xsaW5nLCBp
ZiBwb2xsIHRhc2sKPiBpcyBydW5uaW5nIGF0IHRoaXMgbW9tZW50IHdlIG1heSB3YWl0IGZvcmV2
ZXIgZm9yIGl0IHRvIGZpbmlzaC4KPiBJZiB3ZSBkb24ndCBncmFiIHZnYXNyX211dGV4IHRoZSBv
bmx5IGJhZCB0aGluZyB0aGF0IGNhbiBoYXBwZW4gaXMKPiB0aGF0IHRoZSBoYW5kbGVyIHN1ZGRl
bmx5IGRpc2FwcGVhcnMuIFNvIGJsb2NrIGhhbmRsZXIgZGVyZWdpc3RyYXRpb24KPiB1bnRpbCBE
REMgbGluZXMgYXJlIHVubG9ja2VkIGFnYWluLgo+IAo+IFdBUk5fT05fT05DRSBpZiB1bmxvY2tf
ZGRjIGlzIGNhbGxlZCB3aXRob3V0IGNhbGxpbmcgbG9ja19kZGMgZmlyc3QuCj4gTG9jayBkZGNf
bG9jayBpbiBzdGFnZTIgdG8gYXZvaWQgcmFjZSBjb25kaXRpb24gd2hlcmUgcmVhZGluZyB0aGUK
PiBFRElEIGFuZCBzd2l0Y2hpbmcgaGFwcGVucyBzaW11bHRhbmVvdXNseS4gU3dpdGNoIEREQyBs
aW5lcyBvbgo+IE1JR0QgLyBNRElTIGNvbW1hbmRzIGFuZCBvbiBydW50aW1lIHN1c3BlbmQuIEZp
eCBidWcgaW4gc3RhZ2UyCj4gd2hlcmUgbm8gY2xpZW50IGhhZCB0aGUgYWN0aXZlIGF0dHJpYnV0
ZSBzZXQgaWYgc3dpdGNoaW5nIGZhaWxlZC4KPiBGaXggZXJyb25lb3VzIGludGVyZmFjZSBkb2N1
bWVudGF0aW9uLgo+IAo+IElmIHRoZSBpbmFjdGl2ZSBjbGllbnQgcmVnaXN0ZXJzIGJlZm9yZSB0
aGUgYWN0aXZlIGNsaWVudCB0aGVuCj4gb2xkX2RkY19vd25lciBjYW5ub3QgYmUgZGV0ZXJtaW5l
ZCB3aXRoIGZpbmRfYWN0aXZlX2NsaWVudCgpCj4gKG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSku
IFRoZXJlZm9yZSBjaGFuZ2Ugc2VtYW50aWNzIG9mIHRoZQo+IC0+c3dpdGNoX2RkYyBoYW5kbGVy
IGNhbGxiYWNrIHRvIHJldHVybiBvbGRfZGRjX293bmVyLgo+IAo+IHYyLjE6IE92ZXJoYXVsIGxv
Y2tpbmcsIHNxdWFzaCBjb21taXRzIChyZXF1ZXN0ZWQgYnkgRGFuaWVsIFZldHRlcikKPiAKPiBC
dWd6aWxsYTogaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD04ODg2
MQo+IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MTExNQo+IFRlc3RlZC1ieTogTHVrYXMgV3VubmVyIDxsdWthc0B3dW5uZXIuZGU+Cj4gICAg
IFtNQlAgIDksMSAyMDEyICBpbnRlbCBJVkIgKyBudmlkaWEgR0sxMDcgIHByZS1yZXRpbmFdCj4g
Cj4gQ2M6IFNldGggRm9yc2hlZSA8c2V0aC5mb3JzaGVlQGNhbm9uaWNhbC5jb20+Cj4gQ2M6IERh
dmUgQWlybGllIDxhaXJsaWVkQGdtYWlsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBMdWthcyBXdW5u
ZXIgPGx1a2FzQHd1bm5lci5kZT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvdmdhL3ZnYV9zd2l0Y2hl
cm9vLmMgfCA3MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCj4gIGlu
Y2x1ZGUvbGludXgvdmdhX3N3aXRjaGVyb28uaCAgIHwgIDYgKysrKwo+ICAyIGZpbGVzIGNoYW5n
ZWQsIDc0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2Ry
aXZlcnMvZ3B1L3ZnYS92Z2Ffc3dpdGNoZXJvby5jIGIvZHJpdmVycy9ncHUvdmdhL3ZnYV9zd2l0
Y2hlcm9vLmMKPiBpbmRleCAzN2FjN2I1Li5hYzRhYzEyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv
Z3B1L3ZnYS92Z2Ffc3dpdGNoZXJvby5jCj4gKysrIGIvZHJpdmVycy9ncHUvdmdhL3ZnYV9zd2l0
Y2hlcm9vLmMKPiBAQCAtOSwxMiArOSwxMyBAQAo+ICAKPiAgIFN3aXRjaGVyIGludGVyZmFjZSAt
IG1ldGhvZHMgcmVxdWlyZSBmb3IgQVRQWCBhbmQgRENNCj4gICAtIHN3aXRjaHRvIC0gdGhpcyB0
aHJvd3MgdGhlIG91dHB1dCBNVVggc3dpdGNoCj4gLSAtIGRpc2NyZXRlX3NldF9wb3dlciAtIHNl
dHMgdGhlIHBvd2VyIHN0YXRlIGZvciB0aGUgZGlzY3JldGUgY2FyZAo+ICsgLSBzd2l0Y2hfZGRj
IC0gc3dpdGNoIG9ubHkgRERDIGxpbmVzLCByZXR1cm4gb2xkIEREQyBvd25lcgo+ICsgLSBwb3dl
cl9zdGF0ZSAtIHNldHMgdGhlIHBvd2VyIHN0YXRlIGZvciBlaXRoZXIgR1BVCj4gIAo+ICAgR1BV
IGRyaXZlciBpbnRlcmZhY2UKPiAgIC0gc2V0X2dwdV9zdGF0ZSAtIHRoaXMgc2hvdWxkIGRvIHRo
ZSBlcXVpdiBvZiBzL3IgZm9yIHRoZSBjYXJkCj4gIAkJICAtIHRoaXMgc2hvdWxkICpub3QqIHNl
dCB0aGUgZGlzY3JldGUgcG93ZXIgc3RhdGUKPiAtIC0gc3dpdGNoX2NoZWNrICAtIGNoZWNrIGlm
IHRoZSBkZXZpY2UgaXMgaW4gYSBwb3NpdGlvbiB0byBzd2l0Y2ggbm93Cj4gKyAtIGNhbl9zd2l0
Y2ggLSBjaGVjayBpZiB0aGUgZGV2aWNlIGlzIGluIGEgcG9zaXRpb24gdG8gc3dpdGNoIG5vdwo+
ICAgKi8KClNpbmNlIHlvdSdyZSBqdXN0IGRpZ2dpbiBhcm91bmQgaW4gc3dpdGNoZXJvbyBjb2Rl
IGl0IHdvdWxkIGJlIGF3ZXNvbWUgdG8Kd3JpdGUgcHJvcGVyIGtlcm5lbGRvYyBmb3IgYWxsIHRo
ZSBmdW5jdGlvbnMgZXhwb3NlZCB0byBkcml2ZXJzLCBtb3ZlIHRoZQphYm92ZSB0byBhIHByb3Bl
ciBrZXJuZWxkb2MgZm9yIHRoZSB2ZnVuYyB0YWJsZXMgKHRoZXJlJ3MgbmV3IHN1cHBvcnQgZm9y
CmFkZGluZyBrZXJuZWxkb2Mgc3BsaXQgdXAgcGVyIG1lbWJlciBpbnN0ZWFkIG9mIG9uZSBiaWcg
cGlsZSBzcXVhc2hlZCBhdAp0aGUgdG9wKS4gQW5kIHRoZW4gYmluZCBpdCB0b2dldGhlciB3aXRo
IHRoZSBvdmVydmlldyBzZWN0aW9ucyB3aXRoIERPQwpjb21tZW50cyBpbiBEb2N1bWVudGF0aW9u
L0RvY0Jvb2svZHJtLnRtcGwuCgpUaGF0IHdvdWxkIGFsc28gaGVscCByZXZpZXdpbmcgOy0pCgo+
ICAKPiAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+IEBAIC01Nyw2ICs1OCw4IEBAIHN0cnVj
dCB2Z2Fzcl9wcml2IHsKPiAgCXN0cnVjdCBsaXN0X2hlYWQgY2xpZW50czsKPiAgCj4gIAlzdHJ1
Y3QgdmdhX3N3aXRjaGVyb29faGFuZGxlciAqaGFuZGxlcjsKPiArCXN0cnVjdCBtdXRleCBkZGNf
bG9jazsKPiArCWludCBvbGRfZGRjX293bmVyOwoKTmV3IGxvY2tzIGltbyBuZWVkIGNvbW1lbnRz
IGFib3V0IHdoYXQgZXhhY3RseSB0aGV5IHByb3RlY3QuCgo+ICB9Owo+ICAKPiAgI2RlZmluZSBJ
RF9CSVRfQVVESU8JCTB4MTAwCj4gQEAgLTcwLDYgKzczLDcgQEAgc3RhdGljIHZvaWQgdmdhX3N3
aXRjaGVyb29fZGVidWdmc19maW5pKHN0cnVjdCB2Z2Fzcl9wcml2ICpwcml2KTsKPiAgLyogb25s
eSBvbmUgc3dpdGNoZXJvbyBwZXIgc3lzdGVtICovCj4gIHN0YXRpYyBzdHJ1Y3Qgdmdhc3JfcHJp
diB2Z2Fzcl9wcml2ID0gewo+ICAJLmNsaWVudHMgPSBMSVNUX0hFQURfSU5JVCh2Z2Fzcl9wcml2
LmNsaWVudHMpLAo+ICsJLmRkY19sb2NrID0gX19NVVRFWF9JTklUSUFMSVpFUih2Z2Fzcl9wcml2
LmRkY19sb2NrKSwKPiAgfTsKPiAgCj4gIHN0YXRpYyBib29sIHZnYV9zd2l0Y2hlcm9vX3JlYWR5
KHZvaWQpCj4gQEAgLTEyMiwxMiArMTI2LDE0IEBAIEVYUE9SVF9TWU1CT0wodmdhX3N3aXRjaGVy
b29fcmVnaXN0ZXJfaGFuZGxlcik7Cj4gIHZvaWQgdmdhX3N3aXRjaGVyb29fdW5yZWdpc3Rlcl9o
YW5kbGVyKHZvaWQpCj4gIHsKPiAgCW11dGV4X2xvY2soJnZnYXNyX211dGV4KTsKPiArCW11dGV4
X2xvY2soJnZnYXNyX3ByaXYuZGRjX2xvY2spOwo+ICAJdmdhc3JfcHJpdi5oYW5kbGVyID0gTlVM
TDsKPiAgCWlmICh2Z2Fzcl9wcml2LmFjdGl2ZSkgewo+ICAJCXByX2luZm8oInZnYV9zd2l0Y2hl
cm9vOiBkaXNhYmxlZFxuIik7Cj4gIAkJdmdhX3N3aXRjaGVyb29fZGVidWdmc19maW5pKCZ2Z2Fz
cl9wcml2KTsKPiAgCQl2Z2Fzcl9wcml2LmFjdGl2ZSA9IGZhbHNlOwo+ICAJfQo+ICsJbXV0ZXhf
dW5sb2NrKCZ2Z2Fzcl9wcml2LmRkY19sb2NrKTsKPiAgCW11dGV4X3VubG9jaygmdmdhc3JfbXV0
ZXgpOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0wodmdhX3N3aXRjaGVyb29fdW5yZWdpc3Rlcl9oYW5k
bGVyKTsKPiBAQCAtMjU2LDYgKzI2Miw0MyBAQCB2b2lkIHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9m
Yl9zZXQoc3RydWN0IHBjaV9kZXYgKnBkZXYsCj4gIH0KPiAgRVhQT1JUX1NZTUJPTCh2Z2Ffc3dp
dGNoZXJvb19jbGllbnRfZmJfc2V0KTsKPiAgCj4gK2ludCB2Z2Ffc3dpdGNoZXJvb19sb2NrX2Rk
YyhzdHJ1Y3QgcGNpX2RldiAqcGRldikKClNpbmNlIHRoaXMgY2FuIGZhaWwgcGxlYXNlIGNhbGwg
aXQgc29tZXRoaW5nIGxpa2UgdHJ5X2xvY2tfZGRjIHRvIG1ha2UKdGhhdCBjbGVhciB0byBjYWxs
ZXJzLiBPciBtYWtlIGl0IHJldHVybiB2b2lkLgoKPiArewo+ICsJaW50IGlkOwo+ICsKPiArCW11
dGV4X2xvY2soJnZnYXNyX3ByaXYuZGRjX2xvY2spOwo+ICsKPiArCWlmICghdmdhc3JfcHJpdi5o
YW5kbGVyIHx8ICF2Z2Fzcl9wcml2LmhhbmRsZXItPnN3aXRjaF9kZGMpCj4gKwkJcmV0dXJuIHZn
YXNyX3ByaXYub2xkX2RkY19vd25lciA9IC1FTk9ERVY7Cj4gKwo+ICsJaWQgPSB2Z2Fzcl9wcml2
LmhhbmRsZXItPmdldF9jbGllbnRfaWQocGRldik7Cj4gKwlyZXR1cm4gdmdhc3JfcHJpdi5vbGRf
ZGRjX293bmVyID0gdmdhc3JfcHJpdi5oYW5kbGVyLT5zd2l0Y2hfZGRjKGlkKTsKCkxvb2tpbmcg
YXQgcGF0Y2ggMyB5b3UgZG9uJ3Qgc2VlbSB0byBoYW5kbGUgdGhpcyBlcnJvci4gQWxzbyBpZiB0
aGlzCmZ1bmN0aW9uIGZhaWxzIGl0IHNob3VsZCBfbm90XyBncmFiIHRoZSBsb2NrIHNvIHRoYXQg
d2UgY2FuIGRvIHNvbWV0aGluZwpsaWtlCgoJcmV0ID0gdHJ5X2xvY2tfZGRjKCk7CglpZiAocmV0
KSB7CgkJcHJpbnRrKCJhcmchIik7CgkJcmV0dXJuIHJldDsKCX0KCglkcm1fZ2V0X2VkaWQoKTsK
CXVubG9ja19kZGMoKTsKCn0KPiArfQo+ICtFWFBPUlRfU1lNQk9MKHZnYV9zd2l0Y2hlcm9vX2xv
Y2tfZGRjKTsKPiArCj4gK2ludCB2Z2Ffc3dpdGNoZXJvb191bmxvY2tfZGRjKHN0cnVjdCBwY2lf
ZGV2ICpwZGV2KQo+ICt7Cj4gKwlpbnQgcmV0LCBpZDsKPiArCj4gKwlpZiAoV0FSTl9PTl9PTkNF
KCFtdXRleF9pc19sb2NrZWQoJnZnYXNyX3ByaXYuZGRjX2xvY2spKSkKPiArCQlyZXR1cm4gLUVJ
TlZBTDsKPiArCj4gKwlpZiAodmdhc3JfcHJpdi5vbGRfZGRjX293bmVyIDwgMCkgewo+ICsJCW11
dGV4X3VubG9jaygmdmdhc3JfcHJpdi5kZGNfbG9jayk7Cj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4g
Kwl9Cj4gKwo+ICsJaWQgPSB2Z2Fzcl9wcml2LmhhbmRsZXItPmdldF9jbGllbnRfaWQocGRldik7
Cj4gKwlpZiAodmdhc3JfcHJpdi5vbGRfZGRjX293bmVyICE9IGlkKQo+ICsJCXJldCA9IHZnYXNy
X3ByaXYuaGFuZGxlci0+c3dpdGNoX2RkYyh2Z2Fzcl9wcml2Lm9sZF9kZGNfb3duZXIpOwo+ICsJ
ZWxzZQo+ICsJCXJldCA9IHZnYXNyX3ByaXYub2xkX2RkY19vd25lcjsKPiArCW11dGV4X3VubG9j
aygmdmdhc3JfcHJpdi5kZGNfbG9jayk7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICtFWFBP
UlRfU1lNQk9MKHZnYV9zd2l0Y2hlcm9vX3VubG9ja19kZGMpOwo+ICsKPiAgc3RhdGljIGludCB2
Z2Ffc3dpdGNoZXJvb19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKPiAgewo+ICAJ
c3RydWN0IHZnYV9zd2l0Y2hlcm9vX2NsaWVudCAqY2xpZW50Owo+IEBAIC0zNDEsOCArMzg0LDYg
QEAgc3RhdGljIGludCB2Z2Ffc3dpdGNodG9fc3RhZ2UyKHN0cnVjdCB2Z2Ffc3dpdGNoZXJvb19j
bGllbnQgKm5ld19jbGllbnQpCj4gIAlpZiAoIWFjdGl2ZSkKPiAgCQlyZXR1cm4gMDsKPiAgCj4g
LQlhY3RpdmUtPmFjdGl2ZSA9IGZhbHNlOwo+IC0KPiAgCXNldF9hdWRpb19zdGF0ZShhY3RpdmUt
PmlkLCBWR0FfU1dJVENIRVJPT19PRkYpOwo+ICAKPiAgCWlmIChuZXdfY2xpZW50LT5mYl9pbmZv
KSB7Cj4gQEAgLTM1Myw5ICszOTQsMjEgQEAgc3RhdGljIGludCB2Z2Ffc3dpdGNodG9fc3RhZ2Uy
KHN0cnVjdCB2Z2Ffc3dpdGNoZXJvb19jbGllbnQgKm5ld19jbGllbnQpCj4gIAkJY29uc29sZV91
bmxvY2soKTsKPiAgCX0KPiAgCj4gKwlpZiAodmdhc3JfcHJpdi5oYW5kbGVyLT5zd2l0Y2hfZGRj
KSB7Cj4gKwkJbXV0ZXhfbG9jaygmdmdhc3JfcHJpdi5kZGNfbG9jayk7Cj4gKwkJdmdhc3JfcHJp
di5oYW5kbGVyLT5zd2l0Y2hfZGRjKG5ld19jbGllbnQtPmlkKTsKPiArCQltdXRleF91bmxvY2so
JnZnYXNyX3ByaXYuZGRjX2xvY2spOwo+ICsJfQo+ICAJcmV0ID0gdmdhc3JfcHJpdi5oYW5kbGVy
LT5zd2l0Y2h0byhuZXdfY2xpZW50LT5pZCk7Cj4gLQlpZiAocmV0KQo+ICsJaWYgKHJldCkgewo+
ICsJCWlmICh2Z2Fzcl9wcml2LmhhbmRsZXItPnN3aXRjaF9kZGMpIHsKPiArCQkJbXV0ZXhfbG9j
aygmdmdhc3JfcHJpdi5kZGNfbG9jayk7Cj4gKwkJCXZnYXNyX3ByaXYuaGFuZGxlci0+c3dpdGNo
X2RkYyhhY3RpdmUtPmlkKTsKPiArCQkJbXV0ZXhfdW5sb2NrKCZ2Z2Fzcl9wcml2LmRkY19sb2Nr
KTsKPiArCQl9CgpKdXN0IGZvciBzYWZldHkgSSdkIGdyYWIgdGhlIGRkY19sb2NrIGFyb3VuZCB0
aGUgZW50aXJlIHNlcXVlbmNlLgoKT3ZlcmFsbCB0aGVyZSBzZWVtcyB0byBiZSBhIGxvdCBsZXNz
IHNjYXJ5IGluIHRoZXNlIDMgcGF0Y2hlcyB0aGFuIHRoZQpwcmV2aW91cyBzZXJpZXMuIElzIHRo
aXMgcmVhbGx5IGFsbCBkdWUgdG8gc3F1YXNoaW5nIG9yIGlzIHRoaXMgc2VyaWVzCmluY29tcGxl
dGU/Ci1EYW5pZWwKCj4gIAkJcmV0dXJuIHJldDsKPiArCX0KPiArCWFjdGl2ZS0+YWN0aXZlID0g
ZmFsc2U7Cj4gIAo+ICAJaWYgKG5ld19jbGllbnQtPm9wcy0+cmVwcm9iZSkKPiAgCQluZXdfY2xp
ZW50LT5vcHMtPnJlcHJvYmUobmV3X2NsaWVudC0+cGRldik7Cj4gQEAgLTQ2OCw2ICs1MjEsMTEg
QEAgdmdhX3N3aXRjaGVyb29fZGVidWdmc193cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3Qg
Y2hhciBfX3VzZXIgKnVidWYsCj4gIAl2Z2Fzcl9wcml2LmRlbGF5ZWRfc3dpdGNoX2FjdGl2ZSA9
IGZhbHNlOwo+ICAKPiAgCWlmIChqdXN0X211eCkgewo+ICsJCWlmICh2Z2Fzcl9wcml2LmhhbmRs
ZXItPnN3aXRjaF9kZGMpIHsKPiArCQkJbXV0ZXhfbG9jaygmdmdhc3JfcHJpdi5kZGNfbG9jayk7
Cj4gKwkJCXZnYXNyX3ByaXYuaGFuZGxlci0+c3dpdGNoX2RkYyhjbGllbnRfaWQpOwo+ICsJCQlt
dXRleF91bmxvY2soJnZnYXNyX3ByaXYuZGRjX2xvY2spOwo+ICsJCX0KPiAgCQlyZXQgPSB2Z2Fz
cl9wcml2LmhhbmRsZXItPnN3aXRjaHRvKGNsaWVudF9pZCk7Cj4gIAkJZ290byBvdXQ7Cj4gIAl9
Cj4gQEAgLTYyMyw2ICs2ODEsMTEgQEAgc3RhdGljIGludCB2Z2Ffc3dpdGNoZXJvb19ydW50aW1l
X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQo+ICAJcmV0ID0gZGV2LT5idXMtPnBtLT5ydW50
aW1lX3N1c3BlbmQoZGV2KTsKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiArCWlmICh2
Z2Fzcl9wcml2LmhhbmRsZXItPnN3aXRjaF9kZGMpIHsKPiArCQltdXRleF9sb2NrKCZ2Z2Fzcl9w
cml2LmRkY19sb2NrKTsKPiArCQl2Z2Fzcl9wcml2LmhhbmRsZXItPnN3aXRjaF9kZGMoVkdBX1NX
SVRDSEVST09fSUdEKTsKPiArCQltdXRleF91bmxvY2soJnZnYXNyX3ByaXYuZGRjX2xvY2spOwo+
ICsJfQo+ICAJaWYgKHZnYXNyX3ByaXYuaGFuZGxlci0+c3dpdGNodG8pCj4gIAkJdmdhc3JfcHJp
di5oYW5kbGVyLT5zd2l0Y2h0byhWR0FfU1dJVENIRVJPT19JR0QpOwo+ICAJdmdhX3N3aXRjaGVy
b29fcG93ZXJfc3dpdGNoKHBkZXYsIFZHQV9TV0lUQ0hFUk9PX09GRik7Cj4gZGlmZiAtLWdpdCBh
L2luY2x1ZGUvbGludXgvdmdhX3N3aXRjaGVyb28uaCBiL2luY2x1ZGUvbGludXgvdmdhX3N3aXRj
aGVyb28uaAo+IGluZGV4IGI0ODNhYmQuLjYyZjMwM2YgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9s
aW51eC92Z2Ffc3dpdGNoZXJvby5oCj4gKysrIGIvaW5jbHVkZS9saW51eC92Z2Ffc3dpdGNoZXJv
by5oCj4gQEAgLTI5LDYgKzI5LDcgQEAgZW51bSB2Z2Ffc3dpdGNoZXJvb19jbGllbnRfaWQgewo+
ICB9Owo+ICAKPiAgc3RydWN0IHZnYV9zd2l0Y2hlcm9vX2hhbmRsZXIgewo+ICsJaW50ICgqc3dp
dGNoX2RkYykoZW51bSB2Z2Ffc3dpdGNoZXJvb19jbGllbnRfaWQgaWQpOwo+ICAJaW50ICgqc3dp
dGNodG8pKGVudW0gdmdhX3N3aXRjaGVyb29fY2xpZW50X2lkIGlkKTsKPiAgCWludCAoKnBvd2Vy
X3N0YXRlKShlbnVtIHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9pZCBpZCwKPiAgCQkJICAgZW51bSB2
Z2Ffc3dpdGNoZXJvb19zdGF0ZSBzdGF0ZSk7Cj4gQEAgLTU0LDYgKzU1LDkgQEAgaW50IHZnYV9z
d2l0Y2hlcm9vX3JlZ2lzdGVyX2F1ZGlvX2NsaWVudChzdHJ1Y3QgcGNpX2RldiAqcGRldiwKPiAg
dm9pZCB2Z2Ffc3dpdGNoZXJvb19jbGllbnRfZmJfc2V0KHN0cnVjdCBwY2lfZGV2ICpkZXYsCj4g
IAkJCQkgIHN0cnVjdCBmYl9pbmZvICppbmZvKTsKPiAgCj4gK2ludCB2Z2Ffc3dpdGNoZXJvb19s
b2NrX2RkYyhzdHJ1Y3QgcGNpX2RldiAqcGRldik7Cj4gK2ludCB2Z2Ffc3dpdGNoZXJvb191bmxv
Y2tfZGRjKHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKPiArCj4gIGludCB2Z2Ffc3dpdGNoZXJvb19y
ZWdpc3Rlcl9oYW5kbGVyKHN0cnVjdCB2Z2Ffc3dpdGNoZXJvb19oYW5kbGVyICpoYW5kbGVyKTsK
PiAgdm9pZCB2Z2Ffc3dpdGNoZXJvb191bnJlZ2lzdGVyX2hhbmRsZXIodm9pZCk7Cj4gIAo+IEBA
IC03Miw2ICs3Niw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB2Z2Ffc3dpdGNoZXJvb191bnJlZ2lz
dGVyX2NsaWVudChzdHJ1Y3QgcGNpX2RldiAqZGV2KSB7fQo+ICBzdGF0aWMgaW5saW5lIGludCB2
Z2Ffc3dpdGNoZXJvb19yZWdpc3Rlcl9jbGllbnQoc3RydWN0IHBjaV9kZXYgKmRldiwKPiAgCQlj
b25zdCBzdHJ1Y3QgdmdhX3N3aXRjaGVyb29fY2xpZW50X29wcyAqb3BzLCBib29sIGRyaXZlcl9w
b3dlcl9jb250cm9sKSB7IHJldHVybiAwOyB9Cj4gIHN0YXRpYyBpbmxpbmUgdm9pZCB2Z2Ffc3dp
dGNoZXJvb19jbGllbnRfZmJfc2V0KHN0cnVjdCBwY2lfZGV2ICpkZXYsIHN0cnVjdCBmYl9pbmZv
ICppbmZvKSB7fQo+ICtzdGF0aWMgaW5saW5lIGludCB2Z2Ffc3dpdGNoZXJvb19sb2NrX2RkYyhz
dHJ1Y3QgcGNpX2RldiAqcGRldikgeyByZXR1cm4gLUVOT0RFVjsgfQo+ICtzdGF0aWMgaW5saW5l
IGludCB2Z2Ffc3dpdGNoZXJvb191bmxvY2tfZGRjKHN0cnVjdCBwY2lfZGV2ICpwZGV2KSB7IHJl
dHVybiAtRU5PREVWOyB9Cj4gIHN0YXRpYyBpbmxpbmUgaW50IHZnYV9zd2l0Y2hlcm9vX3JlZ2lz
dGVyX2hhbmRsZXIoc3RydWN0IHZnYV9zd2l0Y2hlcm9vX2hhbmRsZXIgKmhhbmRsZXIpIHsgcmV0
dXJuIDA7IH0KPiAgc3RhdGljIGlubGluZSBpbnQgdmdhX3N3aXRjaGVyb29fcmVnaXN0ZXJfYXVk
aW9fY2xpZW50KHN0cnVjdCBwY2lfZGV2ICpwZGV2LAo+ICAJY29uc3Qgc3RydWN0IHZnYV9zd2l0
Y2hlcm9vX2NsaWVudF9vcHMgKm9wcywKPiAtLSAKPiAyLjEuMAo+IAoKLS0gCkRhbmllbCBWZXR0
ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xs
LmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k
ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v
bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Daniel Vetter <daniel@ffwll.ch>
Subject: Re: [PATCH v2.1 2/3] apple-gmux: Add switch_ddc support
Date: Tue, 25 Aug 2015 10:13:58 +0200
Message-ID: <20150825081358.GP20434@phenom.ffwll.local>
References: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
 <3f927fb1a1df18bfdbb501b98a6b2dcd5c064f02.1439739853.git.lukas@wunner.de>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <dri-devel-bounces@lists.freedesktop.org>
Received: from mail-wi0-f180.google.com (mail-wi0-f180.google.com
 [209.85.212.180])
 by gabe.freedesktop.org (Postfix) with ESMTPS id 0F1A16E11C
 for <dri-devel@lists.freedesktop.org>; Tue, 25 Aug 2015 01:14:02 -0700 (PDT)
Received: by wicne3 with SMTP id ne3so7077534wic.0
 for <dri-devel@lists.freedesktop.org>; Tue, 25 Aug 2015 01:14:00 -0700 (PDT)
Content-Disposition: inline
In-Reply-To: <3f927fb1a1df18bfdbb501b98a6b2dcd5c064f02.1439739853.git.lukas@wunner.de>
List-Unsubscribe: <http://lists.freedesktop.org/mailman/options/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <http://lists.freedesktop.org/archives/dri-devel>
List-Post: <mailto:dri-devel@lists.freedesktop.org>
List-Help: <mailto:dri-devel-request@lists.freedesktop.org?subject=help>
List-Subscribe: <http://lists.freedesktop.org/mailman/listinfo/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=subscribe>
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel" <dri-devel-bounces@lists.freedesktop.org>
To: Lukas Wunner <lukas@wunner.de>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Dave Airlie <airlied@redhat.com>, dri-devel@lists.freedesktop.org, Seth Forshee <seth.forshee@canonical.com>
List-Id: dri-devel@lists.freedesktop.org

T24gRnJpLCBBdWcgMTQsIDIwMTUgYXQgMDY6MTg6NTVQTSArMDIwMCwgTHVrYXMgV3VubmVyIHdy
b3RlOgo+IE9yaWdpbmFsbHkgYnkgU2V0aCBGb3JzaGVlIDxzZXRoLmZvcnNoZWVAY2Fub25pY2Fs
LmNvbT4sIDIwMTItMTAtMDQ6Cj4gVGhlIGdtdXggYWxsb3dzIG11eGluZyB0aGUgRERDIGluZGVw
ZW5kZW50bHkgZnJvbSB0aGUgZGlzcGxheSwgc28KPiBzdXBwb3J0IHRoaXMgZnVuY3Rpb25hbGl0
eS4gVGhpcyB3aWxsIGFsbG93IHJlYWRpbmcgdGhlIEVESUQgZm9yIHRoZQo+IGluYWN0aXZlIEdQ
VSwgZml4aW5nIGlzc3VlcyB3aXRoIG1hY2hpbmVzIHRoYXQgZWl0aGVyIGRvbid0IGhhdmUgYSBW
QlQKPiBvciBoYXZlIGludmFsaWQgbW9kZSBkYXRhIGluIHRoZSBWQlQuCj4gCj4gTW9kaWZpZWQg
YnkgTHVrYXMgV3VubmVyIDxsdWthc0B3dW5uZXIuZGU+LCAyMDE1LTAzLTI3Ogo+IElmIHRoZSBp
bmFjdGl2ZSBjbGllbnQgcmVnaXN0ZXJzIGJlZm9yZSB0aGUgYWN0aXZlIGNsaWVudCB0aGVuCj4g
b2xkX2RkY19vd25lciBjYW5ub3QgYmUgZGV0ZXJtaW5lZCB3aXRoIGZpbmRfYWN0aXZlX2NsaWVu
dCgpCj4gKG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSkuIFRoZXJlZm9yZSBjaGFuZ2Ugc2VtYW50
aWNzIG9mIHRoZQo+IC0+c3dpdGNoX2RkYyBoYW5kbGVyIGNhbGxiYWNrIHRvIHJldHVybiBvbGRf
ZGRjX293bmVyLgo+IAo+IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4ODYxCj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5v
cmcvc2hvd19idWcuY2dpP2lkPTYxMTE1Cj4gVGVzdGVkLWJ5OiBQaWVycmUgTW9yZWF1IDxwaWVy
cmUubW9ycm93QGZyZWUuZnI+Cj4gICAgIFtNQlAgIDUsMyAyMDA5ICBudmlkaWEgOTQwME0gKyA5
NjAwTSBHVCAgIHByZS1yZXRpbmFdCj4gVGVzdGVkLWJ5OiBQYXVsIEhvcmRpaWVua28gPHB2dC5n
b3JkQGdtYWlsLmNvbT4KPiAgICAgW01CUCAgNiwyIDIwMTAgIGludGVsIElMSyArIG52aWRpYSBH
VDIxNiAgcHJlLXJldGluYV0KPiBUZXN0ZWQtYnk6IFdpbGxpYW0gQnJvd24gPHdpbGxpYW1AYmxh
Y2toYXRzLm5ldC5hdT4KPiAgICAgW01CUCAgOCwyIDIwMTEgIGludGVsIFNOQiArIGFtZCB0dXJr
cyAgICAgcHJlLXJldGluYV0KPiBUZXN0ZWQtYnk6IEx1a2FzIFd1bm5lciA8bHVrYXNAd3VubmVy
LmRlPgo+ICAgICBbTUJQICA5LDEgMjAxMiAgaW50ZWwgSVZCICsgbnZpZGlhIEdLMTA3ICBwcmUt
cmV0aW5hXQo+IFRlc3RlZC1ieTogQnJ1bm8gQmllcmJhdW1lciA8YnJ1bm9AYmllcmJhdW1lci5u
ZXQ+Cj4gICAgIFtNQlAgMTEsMyAyMDEzICBpbnRlbCBIU1cgKyBudmlkaWEgR0sxMDcgIHJldGlu
YSAtLSB3b3JrIGluIHByb2dyZXNzXQo+IAo+IENjOiBTZXRoIEZvcnNoZWUgPHNldGguZm9yc2hl
ZUBjYW5vbmljYWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEx1a2FzIFd1bm5lciA8bHVrYXNAd3Vu
bmVyLmRlPgo+IC0tLQo+ICBkcml2ZXJzL3BsYXRmb3JtL3g4Ni9hcHBsZS1nbXV4LmMgfCAyNSAr
KysrKysrKysrKysrKysrKysrKysrKy0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRpb25z
KCspLCAyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3g4
Ni9hcHBsZS1nbXV4LmMgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9hcHBsZS1nbXV4LmMKPiBpbmRl
eCAwZGVjM2Y1Li4wOGJkZjFlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L2Fw
cGxlLWdtdXguYwo+ICsrKyBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L2FwcGxlLWdtdXguYwo+IEBA
IC0yNzMsMTQgKzI3MywzNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJhY2tsaWdodF9vcHMgZ211
eF9ibF9vcHMgPSB7Cj4gIAkudXBkYXRlX3N0YXR1cyA9IGdtdXhfdXBkYXRlX3N0YXR1cywKPiAg
fTsKPiAgCj4gK3N0YXRpYyBpbnQgZ211eF9zd2l0Y2hfZGRjKGVudW0gdmdhX3N3aXRjaGVyb29f
Y2xpZW50X2lkIGlkKQo+ICt7Cj4gKwllbnVtIHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9pZCBvbGRf
ZGRjX293bmVyOwo+ICsKPiArCWlmIChnbXV4X3JlYWQ4KGFwcGxlX2dtdXhfZGF0YSwgR01VWF9Q
T1JUX1NXSVRDSF9EREMpID09IDEpCj4gKwkJb2xkX2RkY19vd25lciA9IFZHQV9TV0lUQ0hFUk9P
X0lHRDsKPiArCWVsc2UKPiArCQlvbGRfZGRjX293bmVyID0gVkdBX1NXSVRDSEVST09fRElTOwo+
ICsKPiArCXByX2RlYnVnKCJTd2l0Y2hpbmcgZ211eCBEREMgZnJvbSAlZCB0byAlZFxuIiwgb2xk
X2RkY19vd25lciwgaWQpOwo+ICsKPiArCWlmIChpZCA9PSBvbGRfZGRjX293bmVyKQo+ICsJCXJl
dHVybiBvbGRfZGRjX293bmVyOwo+ICsKPiArCWlmIChpZCA9PSBWR0FfU1dJVENIRVJPT19JR0Qp
Cj4gKwkJZ211eF93cml0ZTgoYXBwbGVfZ211eF9kYXRhLCBHTVVYX1BPUlRfU1dJVENIX0REQywg
MSk7Cj4gKwllbHNlCj4gKwkJZ211eF93cml0ZTgoYXBwbGVfZ211eF9kYXRhLCBHTVVYX1BPUlRf
U1dJVENIX0REQywgMik7Cj4gKwo+ICsJcmV0dXJuIG9sZF9kZGNfb3duZXI7Cj4gK30KPiArCj4g
IHN0YXRpYyBpbnQgZ211eF9zd2l0Y2h0byhlbnVtIHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9pZCBp
ZCkKPiAgewo+ICAJaWYgKGlkID09IFZHQV9TV0lUQ0hFUk9PX0lHRCkgewo+IC0JCWdtdXhfd3Jp
dGU4KGFwcGxlX2dtdXhfZGF0YSwgR01VWF9QT1JUX1NXSVRDSF9EREMsIDEpOwo+ICAJCWdtdXhf
d3JpdGU4KGFwcGxlX2dtdXhfZGF0YSwgR01VWF9QT1JUX1NXSVRDSF9ESVNQTEFZLCAyKTsKPiAg
CQlnbXV4X3dyaXRlOChhcHBsZV9nbXV4X2RhdGEsIEdNVVhfUE9SVF9TV0lUQ0hfRVhURVJOQUws
IDIpOwo+ICAJfSBlbHNlIHsKPiAtCQlnbXV4X3dyaXRlOChhcHBsZV9nbXV4X2RhdGEsIEdNVVhf
UE9SVF9TV0lUQ0hfRERDLCAyKTsKPiAgCQlnbXV4X3dyaXRlOChhcHBsZV9nbXV4X2RhdGEsIEdN
VVhfUE9SVF9TV0lUQ0hfRElTUExBWSwgMyk7Cj4gIAkJZ211eF93cml0ZTgoYXBwbGVfZ211eF9k
YXRhLCBHTVVYX1BPUlRfU1dJVENIX0VYVEVSTkFMLCAzKTsKPiAgCX0KPiBAQCAtMzQ3LDYgKzM2
Nyw3IEBAIGdtdXhfYWN0aXZlX2NsaWVudChzdHJ1Y3QgYXBwbGVfZ211eF9kYXRhICpnbXV4X2Rh
dGEpCj4gIH0KCklmIHdlJ2QgcmVxdWlyZWQgdGhhdCBzd2l0Y2h0byBhbHNvIHN3aXRjaGVzIGRk
YyB0aGVuIHRoZSBlcnJvciBoYW5kbGluZwppbiBwYXRjaCAxIHdvdWxkIGJlIGEgbG90IHNpbXBs
ZXIuIHN3aXRjaF9kZGMgd291bGQgdGhlbiBvbmx5IGJlIGZvcgp0ZW1wb3Jhcnkgc3dpdGNoaW5n
IHdoaWxlIHByb2JpbmcuCi1EYW5pZWwKCj4gIAo+ICBzdGF0aWMgc3RydWN0IHZnYV9zd2l0Y2hl
cm9vX2hhbmRsZXIgZ211eF9oYW5kbGVyID0gewo+ICsJLnN3aXRjaF9kZGMgPSBnbXV4X3N3aXRj
aF9kZGMsCj4gIAkuc3dpdGNodG8gPSBnbXV4X3N3aXRjaHRvLAo+ICAJLnBvd2VyX3N0YXRlID0g
Z211eF9zZXRfcG93ZXJfc3RhdGUsCj4gIAkuZ2V0X2NsaWVudF9pZCA9IGdtdXhfZ2V0X2NsaWVu
dF9pZCwKPiAtLSAKPiAyLjEuMAo+IAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5l
ZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK
ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au
b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Lukas Wunner <lukas@wunner.de>
Subject: vga_switcheroo docs (was: Re: [PATCH v2.1 1/3] vga_switcheroo: Add
 support for switching only the DDC)
Date: Thu, 17 Sep 2015 17:25:28 +0200
Message-ID: <20150917152528.GA7098@wunner.de>
References: <7984d8eacbb0386ca52e3fdf2ad2554dc90ff1fe.1439739853.git.lukas@wunner.de>
 <20150825081249.GO20434@phenom.ffwll.local>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <dri-devel-bounces@lists.freedesktop.org>
Received: from mailout2.hostsharing.net (mailout2.hostsharing.net
 [83.223.90.233])
 by gabe.freedesktop.org (Postfix) with ESMTPS id C537A6ECC5
 for <dri-devel@lists.freedesktop.org>; Thu, 17 Sep 2015 08:35:11 -0700 (PDT)
Content-Disposition: inline
In-Reply-To: <20150825081249.GO20434@phenom.ffwll.local>
List-Unsubscribe: <http://lists.freedesktop.org/mailman/options/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <http://lists.freedesktop.org/archives/dri-devel>
List-Post: <mailto:dri-devel@lists.freedesktop.org>
List-Help: <mailto:dri-devel-request@lists.freedesktop.org?subject=help>
List-Subscribe: <http://lists.freedesktop.org/mailman/listinfo/dri-devel>,
 <mailto:dri-devel-request@lists.freedesktop.org?subject=subscribe>
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel" <dri-devel-bounces@lists.freedesktop.org>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: Dave Airlie <airlied@redhat.com>, dri-devel@lists.freedesktop.org
List-Id: dri-devel@lists.freedesktop.org

SGkgRGFuaWVsLAoKT24gVHVlLCBBdWcgMjUsIDIwMTUgYXQgMTA6MTI6NTBBTSArMDIwMCwgRGFu
aWVsIFZldHRlciB3cm90ZToKPiBTaW5jZSB5b3UncmUganVzdCBkaWdnaW4gYXJvdW5kIGluIHN3
aXRjaGVyb28gY29kZSBpdCB3b3VsZCBiZSBhd2Vzb21lIHRvCj4gd3JpdGUgcHJvcGVyIGtlcm5l
bGRvYyBmb3IgYWxsIHRoZSBmdW5jdGlvbnMgZXhwb3NlZCB0byBkcml2ZXJzLCBtb3ZlIHRoZQo+
IGFib3ZlIHRvIGEgcHJvcGVyIGtlcm5lbGRvYyBmb3IgdGhlIHZmdW5jIHRhYmxlcwoKQWxyaWdo
dCwgYSBwYXRjaCBzZXQgd2l0aCB2Z2Ffc3dpdGNoZXJvbyBkb2NzIGlzIGNvbWluZyB1cCByaWdo
dCBhZnRlciB0aGlzCmUtbWFpbC4gSSBhbHNvIGZpeGVkIHNvbWUgYnVncyBhbmQgY29zbWV0aWMg
aXNzdWVzIHdoaWxlIEkgd2FzIGF0IGl0LgoKVG8gZWFzZSByZXZpZXdpbmcgSSd2ZSBwdXNoZWQg
dGhpcyB0byBHaXRIdWI6Cmh0dHBzOi8vZ2l0aHViLmNvbS9sMWsvbGludXgvY29tbWl0cy92Z2Ff
c3dpdGNoZXJvb19kb2NzCgpQYXRjaCAjMiByZXF1aXJlcyBNYXJrZG93biBzdXBwb3J0IHNvIHlv
dSBtYXkgd2FudCB0byBwb3N0cG9uZSB0aGF0IHNpbmdsZQpwYXRjaCBmb3Igbm93LiBUaGUgcGF0
Y2hlcyBhcmUgYmFzZWQgb24gdG9kYXkncyB0b3BpYy9kcm0tbWlzYy4KCgo+ICh0aGVyZSdzIG5l
dyBzdXBwb3J0IGZvciBhZGRpbmcga2VybmVsZG9jIHNwbGl0IHVwIHBlciBtZW1iZXIgaW5zdGVh
ZCBvZgo+IG9uZSBiaWcgcGlsZSBzcXVhc2hlZCBhdCB0aGUgdG9wKS4KClRvIGJlIGhvbmVzdCB0
aGUgZGF0YSBzdHJ1Y3R1cmVzIGFyZW4ndCB0aGF0IGxhcmdlIHNvIEkgZmVsdCB0aGF0IHRoZQp0
cmFkaXRpb25hbCAiZG9jcyBhYm92ZSwgc3RydWN0IGJlbG93IiB3YXkgaXMgY2xlYXJlciBhbmQg
bW9yZSBjb25jaXNlCmluIHRoaXMgY2FzZS4KCgo+IEFuZCB0aGVuIGJpbmQgaXQgdG9nZXRoZXIg
d2l0aCB0aGUgb3ZlcnZpZXcgc2VjdGlvbnMgd2l0aCBET0MKPiBjb21tZW50cyBpbiBEb2N1bWVu
dGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwuCgp2Z2Ffc3dpdGNoZXJvbyBpcyBhIHN1YnN5c3RlbSBv
ZiBpdHMgb3duIHdoaWNoIGludGVyZmFjZXMgbm90IGp1c3Qgd2l0aApEUk0gYnV0IGFsc28gd2l0
aCBtdWx0aXBsZXhlciBkcml2ZXJzLCBBTFNBIGFuZCBwb3dlciBtYW5hZ2VtZW50LApzbyBJIHB1
dCBpdCBpbiBhIHNlcGFyYXRlIC50bXBsIGZpbGUuCgoKVGhhbmtzLAoKTHVrYXMKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg
bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz
a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK

