From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Wood Subject: [PATCH v3] drm: add support for additional stereo 3D modes Date: Wed, 16 Oct 2013 15:58:50 +0100 Message-ID: <1381935530-6393-1-git-send-email-thomas.wood@intel.com> References: <20131015175554.GP13047@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20131015175554.GP13047@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UGFyc2UgdGhlIDNEX1N0cnVjdHVyZV9BTEwgYW5kIDNEX01BU0sgZmllbGRzIG9mIHRoZSBIRE1J IFZlbmRvcgpTcGVjaWZpYyBEYXRhIEJsb2NrIHRvIGV4cG9zZSBtb3JlIHN0ZXJlbyAzRCBtb2Rl cy4KCnYyOiBVc2UgKDEgPDwgMCkgZm9yIGNvbnNpc3RlbmN5LiAoVmlsbGUgU3lyasOkbMOkKQog ICAgU2tpcCBhZGRpbmcgYW55IG1vZGVzIGlmIDNEX01BU0sgaXMgaW5kaWNhdGVkIGFzIGJlaW5n IHByZXNlbnQgYnV0CiAgICB0aGUgbGVuZ3RoIG9ubHkgaW5jbHVkZXMgM0RfU3RydWN0dXJlX0FM TC4gKFZpbGxlIFN5cmrDpGzDpCkKICAgIENoZWNrIHRoYXQgdGhlIHZhbHVlIG9mIEhETUlfM0Rf TEVOIGlzIGxhcmdlIGVub3VnaCB0byBpbmNsdWRlCiAgICAzRF9TdHJ1Y3R1cmVfQUxMIGFuZCAz RF9NQVNLLCBpZiB0aGV5IGFyZSBwcmVzZW50LiAoVmlsbGUgU3lyasOkbMOkKQp2MzogSW5jcmVt ZW50IG9mZnNldCBiZWZvcmUgdGhlIGxlbmd0aCBjaGVja3MuIChWaWxsZSBTeXJqw6Rsw6QpCgpT aWduZWQtb2ZmLWJ5OiBUaG9tYXMgV29vZCA8dGhvbWFzLndvb2RAaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jIHwgMTAzICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwppbmRleCA5ZTgxNjA5Li5mMTc2NGVjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2VkaWQuYwpAQCAtMjY1Miw2ICsyNjUyLDUwIEBAIHN0YXRpYyBpbnQgYWRkX2hkbWlfbW9kZShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1OCB2aWMpCiAJcmV0dXJuIDE7CiB9CiAK K3N0YXRpYyBpbnQgYWRkXzNkX3N0cnVjdF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLCB1MTYgc3RydWN0dXJlLAorCQkJICAgICAgIGNvbnN0IHU4ICp2aWRlb19kYiwgdTgg dmlkZW9fbGVuLCB1OCB2aWRlb19pbmRleCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g Y29ubmVjdG9yLT5kZXY7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm5ld21vZGU7CisJaW50 IG1vZGVzID0gMDsKKwl1OCBjZWFfbW9kZTsKKworCWlmICh2aWRlb19kYiA9PSBOVUxMIHx8IHZp ZGVvX2luZGV4ID4gdmlkZW9fbGVuKQorCQlyZXR1cm4gMDsKKworCS8qIENFQSBtb2RlcyBhcmUg bnVtYmVyZWQgMS4uMTI3ICovCisJY2VhX21vZGUgPSAodmlkZW9fZGJbdmlkZW9faW5kZXhdICYg MTI3KSAtIDE7CisJaWYgKGNlYV9tb2RlID49IEFSUkFZX1NJWkUoZWRpZF9jZWFfbW9kZXMpKQor CQlyZXR1cm4gMDsKKworCWlmIChzdHJ1Y3R1cmUgJiAoMSA8PCAwKSkgeworCQluZXdtb2RlID0g ZHJtX21vZGVfZHVwbGljYXRlKGRldiwgJmVkaWRfY2VhX21vZGVzW2NlYV9tb2RlXSk7CisJCWlm IChuZXdtb2RlKSB7CisJCQluZXdtb2RlLT5mbGFncyB8PSBEUk1fTU9ERV9GTEFHXzNEX0ZSQU1F X1BBQ0tJTkc7CisJCQlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbmV3bW9kZSk7CisJ CQltb2RlcysrOworCQl9CisJfQorCWlmIChzdHJ1Y3R1cmUgJiAoMSA8PCA2KSkgeworCQluZXdt b2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGRldiwgJmVkaWRfY2VhX21vZGVzW2NlYV9tb2RlXSk7 CisJCWlmIChuZXdtb2RlKSB7CisJCQluZXdtb2RlLT5mbGFncyB8PSBEUk1fTU9ERV9GTEFHXzNE X1RPUF9BTkRfQk9UVE9NOworCQkJZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0b3IsIG5ld21v ZGUpOworCQkJbW9kZXMrKzsKKwkJfQorCX0KKwlpZiAoc3RydWN0dXJlICYgKDEgPDwgOCkpIHsK KwkJbmV3bW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkZXYsICZlZGlkX2NlYV9tb2Rlc1tjZWFf bW9kZV0pOworCQlpZiAobmV3bW9kZSkgeworCQkJbmV3bW9kZS0+ZmxhZ3MgPSBEUk1fTU9ERV9G TEFHXzNEX1NJREVfQllfU0lERV9IQUxGOworCQkJZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0 b3IsIG5ld21vZGUpOworCQkJbW9kZXMrKzsKKwkJfQorCX0KKworCXJldHVybiBtb2RlczsKK30K KwogLyoKICAqIGRvX2hkbWlfdnNkYl9tb2RlcyAtIFBhcnNlIHRoZSBIRE1JIFZlbmRvciBTcGVj aWZpYyBkYXRhIGJsb2NrCiAgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgY29ycmVzcG9uZGluZyB0 byB0aGUgSERNSSBzaW5rCkBAIC0yNjYyLDEwICsyNzA2LDEzIEBAIHN0YXRpYyBpbnQgYWRkX2hk bWlfbW9kZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1OCB2aWMpCiAgKiBhbHNv IGFkZHMgdGhlIHN0ZXJlbyAzZCBtb2RlcyB3aGVuIGFwcGxpY2FibGUuCiAgKi8KIHN0YXRpYyBp bnQKLWRvX2hkbWlfdnNkYl9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBj b25zdCB1OCAqZGIsIHU4IGxlbikKK2RvX2hkbWlfdnNkYl9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLCBjb25zdCB1OCAqZGIsIHU4IGxlbiwKKwkJICAgY29uc3QgdTggKnZp ZGVvX2RiLCB1OCB2aWRlb19sZW4pCiB7Ci0JaW50IG1vZGVzID0gMCwgb2Zmc2V0ID0gMCwgaTsK LQl1OCB2aWNfbGVuOworCWludCBtb2RlcyA9IDAsIG9mZnNldCA9IDAsIGksIG11bHRpX3ByZXNl bnQgPSAwOworCXU4IHZpY19sZW4sIGhkbWlfM2RfbGVuID0gMDsKKwl1MTYgbWFzazsKKwl1MTYg c3RydWN0dXJlX2FsbDsKIAogCWlmIChsZW4gPCA4KQogCQlnb3RvIG91dDsKQEAgLTI2ODksMTEg KzI3MzYsMTYgQEAgZG9faGRtaV92c2RiX21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsIGNvbnN0IHU4ICpkYiwgdTggbGVuKQogCiAJLyogM0RfUHJlc2VudCAqLwogCW9mZnNl dCsrOwotCWlmIChkYls4ICsgb2Zmc2V0XSAmICgxIDw8IDcpKQorCWlmIChkYls4ICsgb2Zmc2V0 XSAmICgxIDw8IDcpKSB7CiAJCW1vZGVzICs9IGFkZF9oZG1pX21hbmRhdG9yeV9zdGVyZW9fbW9k ZXMoY29ubmVjdG9yKTsKIAorCQkvKiAzRF9NdWx0aV9wcmVzZW50ICovCisJCW11bHRpX3ByZXNl bnQgPSAoZGJbOCArIG9mZnNldF0gJiAweDYwKSA+PiA1OworCX0KKwogCW9mZnNldCsrOwogCXZp Y19sZW4gPSBkYls4ICsgb2Zmc2V0XSA+PiA1OworCWhkbWlfM2RfbGVuID0gZGJbOCArIG9mZnNl dF0gJiAweDFmOwogCiAJZm9yIChpID0gMDsgaSA8IHZpY19sZW4gJiYgbGVuID49ICg5ICsgb2Zm c2V0ICsgaSk7IGkrKykgewogCQl1OCB2aWM7CkBAIC0yNzAxLDYgKzI3NTMsMzUgQEAgZG9faGRt aV92c2RiX21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGNvbnN0IHU4ICpk YiwgdTggbGVuKQogCQl2aWMgPSBkYls5ICsgb2Zmc2V0ICsgaV07CiAJCW1vZGVzICs9IGFkZF9o ZG1pX21vZGUoY29ubmVjdG9yLCB2aWMpOwogCX0KKwlvZmZzZXQgKz0gMSArIHZpY19sZW47CisK KwlpZiAoIShtdWx0aV9wcmVzZW50ID09IDEgfHwgbXVsdGlfcHJlc2VudCA9PSAyKSkKKwkJZ290 byBvdXQ7CisKKwlpZiAoKG11bHRpX3ByZXNlbnQgPT0gMSAmJiBsZW4gPCAoOSArIG9mZnNldCkp IHx8CisJICAgIChtdWx0aV9wcmVzZW50ID09IDIgJiYgbGVuIDwgKDExICsgb2Zmc2V0KSkpCisJ CWdvdG8gb3V0OworCisJaWYgKChtdWx0aV9wcmVzZW50ID09IDEgJiYgaGRtaV8zZF9sZW4gPCAy KSB8fAorCSAgICAobXVsdGlfcHJlc2VudCA9PSAyICYmIGhkbWlfM2RfbGVuIDwgNCkpCisJCWdv dG8gb3V0OworCisJLyogM0RfU3RydWN0dXJlX0FMTCAqLworCXN0cnVjdHVyZV9hbGwgPSAoZGJb OCArIG9mZnNldF0gPDwgOCkgfCBkYls5ICsgb2Zmc2V0XTsKKworCS8qIGNoZWNrIGlmIDNEX01B U0sgaXMgcHJlc2VudCAqLworCWlmIChtdWx0aV9wcmVzZW50ID09IDIpCisJCW1hc2sgPSAoZGJb MTAgKyBvZmZzZXRdIDw8IDgpIHwgZGJbMTEgKyBvZmZzZXRdOworCWVsc2UKKwkJbWFzayA9IDB4 ZmZmZjsKKworCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7CisJCWlmIChtYXNrICYgKDEgPDwg aSkpCisJCQltb2RlcyArPSBhZGRfM2Rfc3RydWN0X21vZGVzKGNvbm5lY3RvciwKKwkJCQkJCSAg ICAgc3RydWN0dXJlX2FsbCwKKwkJCQkJCSAgICAgdmlkZW9fZGIsCisJCQkJCQkgICAgIHZpZGVv X2xlbiwgaSk7CisJfQogCiBvdXQ6CiAJcmV0dXJuIG1vZGVzOwpAQCAtMjc1OSw4ICsyODQwLDgg QEAgc3RhdGljIGludAogYWRkX2NlYV9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLCBzdHJ1Y3QgZWRpZCAqZWRpZCkKIHsKIAljb25zdCB1OCAqY2VhID0gZHJtX2ZpbmRfY2Vh X2V4dGVuc2lvbihlZGlkKTsKLQljb25zdCB1OCAqZGIsICpoZG1pID0gTlVMTDsKLQl1OCBkYmws IGhkbWlfbGVuOworCWNvbnN0IHU4ICpkYiwgKmhkbWkgPSBOVUxMLCAqdmlkZW8gPSBOVUxMOwor CXU4IGRibCwgaGRtaV9sZW4sIHZpZGVvX2xlbiA9IDA7CiAJaW50IG1vZGVzID0gMDsKIAogCWlm IChjZWEgJiYgY2VhX3JldmlzaW9uKGNlYSkgPj0gMykgewpAQCAtMjc3Myw4ICsyODU0LDExIEBA IGFkZF9jZWFfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwgc3RydWN0IGVk aWQgKmVkaWQpCiAJCQlkYiA9ICZjZWFbaV07CiAJCQlkYmwgPSBjZWFfZGJfcGF5bG9hZF9sZW4o ZGIpOwogCi0JCQlpZiAoY2VhX2RiX3RhZyhkYikgPT0gVklERU9fQkxPQ0spCi0JCQkJbW9kZXMg Kz0gZG9fY2VhX21vZGVzKGNvbm5lY3RvciwgZGIgKyAxLCBkYmwpOworCQkJaWYgKGNlYV9kYl90 YWcoZGIpID09IFZJREVPX0JMT0NLKSB7CisJCQkJdmlkZW8gPSBkYiArIDE7CisJCQkJdmlkZW9f bGVuID0gZGJsOworCQkJCW1vZGVzICs9IGRvX2NlYV9tb2Rlcyhjb25uZWN0b3IsIHZpZGVvLCBk YmwpOworCQkJfQogCQkJZWxzZSBpZiAoY2VhX2RiX2lzX2hkbWlfdnNkYihkYikpIHsKIAkJCQlo ZG1pID0gZGI7CiAJCQkJaGRtaV9sZW4gPSBkYmw7CkBAIC0yNzg3LDcgKzI4NzEsOCBAQCBhZGRf Y2VhX21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIHN0cnVjdCBlZGlkICpl ZGlkKQogCSAqIGJlIHBhdGNoaW5nIHRoZWlyIGZsYWdzIHdoZW4gdGhlIHNpbmsgc3VwcG9ydHMg c3RlcmVvIDNELgogCSAqLwogCWlmIChoZG1pKQotCQltb2RlcyArPSBkb19oZG1pX3ZzZGJfbW9k ZXMoY29ubmVjdG9yLCBoZG1pLCBoZG1pX2xlbik7CisJCW1vZGVzICs9IGRvX2hkbWlfdnNkYl9t b2Rlcyhjb25uZWN0b3IsIGhkbWksIGhkbWlfbGVuLCB2aWRlbywKKwkJCQkJICAgIHZpZGVvX2xl bik7CiAKIAlyZXR1cm4gbW9kZXM7CiB9Ci0tIAoxLjguMy4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=