From mboxrd@z Thu Jan 1 00:00:00 1970 From: sonika.jindal@intel.com Subject: [v3 05/13] drm: Add drm_rect rotation functions Date: Tue, 8 Jul 2014 10:31:55 +0530 Message-ID: <1404795723-9630-6-git-send-email-sonika.jindal@intel.com> References: <1404795723-9630-1-git-send-email-sonika.jindal@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1404795723-9630-1-git-send-email-sonika.jindal@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFk ZCBzb21lIGhlbHBlciBmdW5jdGlvbnMgdG8gbW92ZSBkcm1fcmVjdHMgYmV0d2VlbiBkaWZmZXJl bnQgcm90YXRlZApjb29yZGluYXRlIHNwYWNlcy4gT25lIGZ1bmN0aW9uIGRvZXMgdGhlIGZvcndh cmQgdHJhbnNmb3JtIGFuZAphbm90aGVyIGRvZXMgdGhlIGludmVyc2UuCgpDYzogZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogSW1yZSBEZWFrIDxpbXJl LmRlYWtAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fcmVjdC5jIHwgIDE0MCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0v ZHJtX3JlY3QuaCAgICAgfCAgICA2ICsrCiAyIGZpbGVzIGNoYW5nZWQsIDE0NiBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9yZWN0LmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX3JlY3QuYwppbmRleCA3MDQ3Y2EwLi42MzFmNWFmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX3JlY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3JlY3QuYwpA QCAtMjkzLDMgKzI5MywxNDMgQEAgdm9pZCBkcm1fcmVjdF9kZWJ1Z19wcmludChjb25zdCBzdHJ1 Y3QgZHJtX3JlY3QgKnIsIGJvb2wgZml4ZWRfcG9pbnQpCiAJCURSTV9ERUJVR19LTVMoIiVkeCVk JStkJStkXG4iLCB3LCBoLCByLT54MSwgci0+eTEpOwogfQogRVhQT1JUX1NZTUJPTChkcm1fcmVj dF9kZWJ1Z19wcmludCk7CisKKy8qKgorICogZHJtX3JlY3Rfcm90YXRlIC0gUm90YXRlIHRoZSBy ZWN0YW5nbGUKKyAqIEByOiByZWN0YW5nbGUgdG8gYmUgcm90YXRlZAorICogQHdpZHRoOiBXaWR0 aCBvZiB0aGUgY29vcmRpbmF0ZSBzcGFjZQorICogQGhlaWdodDogSGVpZ2h0IG9mIHRoZSBjb29y ZGluYXRlIHNwYWNlCisgKiBAcm90YXRpb246IFRyYW5zZm9ybWF0aW9uIHRvIGJlIGFwcGxpZWQK KyAqCisgKiBBcHBseSBAcm90YXRpb24gdG8gdGhlIGNvb3JkaW5hdGVzIG9mIHJlY3RhbmdsZSBA ci4KKyAqCisgKiBAd2lkdGggYW5kIEBoZWlnaHQgY29tYmluZWQgd2l0aCBAcm90YXRpb24gZGVm aW5lCisgKiB0aGUgbG9jYXRpb24gb2YgdGhlIG5ldyBvcmlnaW4uCisgKgorICogQHdpZHRoIGNv cnJlY3Nwb25kcyB0byB0aGUgaG9yaXpvbnRhbCBhbmQgQGhlaWdodAorICogdG8gdGhlIHZlcnRp Y2FsIGF4aXMgb2YgdGhlIHVudHJhbnNmb3JtZWQgY29vcmRpbmF0ZQorICogc3BhY2UuCisgKi8K K3ZvaWQgZHJtX3JlY3Rfcm90YXRlKHN0cnVjdCBkcm1fcmVjdCAqciwKKwkJICAgICBpbnQgd2lk dGgsIGludCBoZWlnaHQsCisJCSAgICAgdW5zaWduZWQgaW50IHJvdGF0aW9uKQoreworCXN0cnVj dCBkcm1fcmVjdCB0bXA7CisKKwlpZiAocm90YXRpb24gJiAoQklUKERSTV9SRUZMRUNUX1gpIHwg QklUKERSTV9SRUZMRUNUX1kpKSkgeworCQl0bXAgPSAqcjsKKworCQlpZiAocm90YXRpb24gJiBC SVQoRFJNX1JFRkxFQ1RfWCkpIHsKKwkJCXItPngxID0gd2lkdGggLSB0bXAueDI7CisJCQlyLT54 MiA9IHdpZHRoIC0gdG1wLngxOworCQl9CisKKwkJaWYgKHJvdGF0aW9uICYgQklUKERSTV9SRUZM RUNUX1kpKSB7CisJCQlyLT55MSA9IGhlaWdodCAtIHRtcC55MjsKKwkJCXItPnkyID0gaGVpZ2h0 IC0gdG1wLnkxOworCQl9CisJfQorCisJc3dpdGNoIChyb3RhdGlvbiAmIDB4ZikgeworCWNhc2Ug QklUKERSTV9ST1RBVEVfMCk6CisJCWJyZWFrOworCWNhc2UgQklUKERSTV9ST1RBVEVfOTApOgor CQl0bXAgPSAqcjsKKwkJci0+eDEgPSB0bXAueTE7CisJCXItPngyID0gdG1wLnkyOworCQlyLT55 MSA9IHdpZHRoIC0gdG1wLngyOworCQlyLT55MiA9IHdpZHRoIC0gdG1wLngxOworCQlicmVhazsK KwljYXNlIEJJVChEUk1fUk9UQVRFXzE4MCk6CisJCXRtcCA9ICpyOworCQlyLT54MSA9IHdpZHRo IC0gdG1wLngyOworCQlyLT54MiA9IHdpZHRoIC0gdG1wLngxOworCQlyLT55MSA9IGhlaWdodCAt IHRtcC55MjsKKwkJci0+eTIgPSBoZWlnaHQgLSB0bXAueTE7CisJCWJyZWFrOworCWNhc2UgQklU KERSTV9ST1RBVEVfMjcwKToKKwkJdG1wID0gKnI7CisJCXItPngxID0gaGVpZ2h0IC0gdG1wLnky OworCQlyLT54MiA9IGhlaWdodCAtIHRtcC55MTsKKwkJci0+eTEgPSB0bXAueDE7CisJCXItPnky ID0gdG1wLngyOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9Cit9CitFWFBPUlRf U1lNQk9MKGRybV9yZWN0X3JvdGF0ZSk7CisKKy8qKgorICogZHJtX3JlY3Rfcm90YXRlX2ludiAt IEludmVyc2Ugcm90YXRlIHRoZSByZWN0YW5nbGUKKyAqIEByOiByZWN0YW5nbGUgdG8gYmUgcm90 YXRlZAorICogQHdpZHRoOiBXaWR0aCBvZiB0aGUgY29vcmRpbmF0ZSBzcGFjZQorICogQGhlaWdo dDogSGVpZ2h0IG9mIHRoZSBjb29yZGluYXRlIHNwYWNlCisgKiBAcm90YXRpb246IFRyYW5zZm9y bWF0aW9uIHdob3NlIGludmVyc2UgaXMgdG8gYmUgYXBwbGllZAorICoKKyAqIEFwcGx5IHRoZSBp bnZlcnNlIG9mIEByb3RhdGlvbiB0byB0aGUgY29vcmRpbmF0ZXMKKyAqIG9mIHJlY3RhbmdsZSBA ci4KKyAqCisgKiBAd2lkdGggYW5kIEBoZWlnaHQgY29tYmluZWQgd2l0aCBAcm90YXRpb24gZGVm aW5lCisgKiB0aGUgbG9jYXRpb24gb2YgdGhlIG5ldyBvcmlnaW4uCisgKgorICogQHdpZHRoIGNv cnJlY3Nwb25kcyB0byB0aGUgaG9yaXpvbnRhbCBhbmQgQGhlaWdodAorICogdG8gdGhlIHZlcnRp Y2FsIGF4aXMgb2YgdGhlIG9yaWdpbmFsIHVudHJhbnNmb3JtZWQKKyAqIGNvb3JkaW5hdGUgc3Bh Y2UsIHNvIHRoYXQgeW91IG5ldmVyIGhhdmUgdG8gZmxpcAorICogdGhlbSB3aGVuIGRvaW5nIGEg cm90YXRhdGlvbiBhbmQgaXRzIGludmVyc2UuCisgKiBUaGF0IGlzLCBpZiB5b3UgZG86CisgKgor ICogZHJtX3JvdGF0ZSgmciwgd2lkdGgsIGhlaWdodCwgcm90YXRpb24pOworICogZHJtX3JvdGF0 ZV9pbnYoJnIsIHdpZHRoLCBoZWlnaHQsIHJvdGF0aW9uKTsKKyAqCisgKiB5b3Ugd2lsbCBhbHdh eXMgZ2V0IGJhY2sgdGhlIG9yaWdpbmFsIHJlY3RhbmdsZS4KKyAqLwordm9pZCBkcm1fcmVjdF9y b3RhdGVfaW52KHN0cnVjdCBkcm1fcmVjdCAqciwKKwkJCSBpbnQgd2lkdGgsIGludCBoZWlnaHQs CisJCQkgdW5zaWduZWQgaW50IHJvdGF0aW9uKQoreworCXN0cnVjdCBkcm1fcmVjdCB0bXA7CisK Kwlzd2l0Y2ggKHJvdGF0aW9uICYgMHhmKSB7CisJY2FzZSBCSVQoRFJNX1JPVEFURV8wKToKKwkJ YnJlYWs7CisJY2FzZSBCSVQoRFJNX1JPVEFURV85MCk6CisJCXRtcCA9ICpyOworCQlyLT54MSA9 IHdpZHRoIC0gdG1wLnkyOworCQlyLT54MiA9IHdpZHRoIC0gdG1wLnkxOworCQlyLT55MSA9IHRt cC54MTsKKwkJci0+eTIgPSB0bXAueDI7CisJCWJyZWFrOworCWNhc2UgQklUKERSTV9ST1RBVEVf MTgwKToKKwkJdG1wID0gKnI7CisJCXItPngxID0gd2lkdGggLSB0bXAueDI7CisJCXItPngyID0g d2lkdGggLSB0bXAueDE7CisJCXItPnkxID0gaGVpZ2h0IC0gdG1wLnkyOworCQlyLT55MiA9IGhl aWdodCAtIHRtcC55MTsKKwkJYnJlYWs7CisJY2FzZSBCSVQoRFJNX1JPVEFURV8yNzApOgorCQl0 bXAgPSAqcjsKKwkJci0+eDEgPSB0bXAueTE7CisJCXItPngyID0gdG1wLnkyOworCQlyLT55MSA9 IGhlaWdodCAtIHRtcC54MjsKKwkJci0+eTIgPSBoZWlnaHQgLSB0bXAueDE7CisJCWJyZWFrOwor CWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKworCWlmIChyb3RhdGlvbiAmIChCSVQoRFJNX1JFRkxF Q1RfWCkgfCBCSVQoRFJNX1JFRkxFQ1RfWSkpKSB7CisJCXRtcCA9ICpyOworCisJCWlmIChyb3Rh dGlvbiAmIEJJVChEUk1fUkVGTEVDVF9YKSkgeworCQkJci0+eDEgPSB3aWR0aCAtIHRtcC54MjsK KwkJCXItPngyID0gd2lkdGggLSB0bXAueDE7CisJCX0KKworCQlpZiAocm90YXRpb24gJiBCSVQo RFJNX1JFRkxFQ1RfWSkpIHsKKwkJCXItPnkxID0gaGVpZ2h0IC0gdG1wLnkyOworCQkJci0+eTIg PSBoZWlnaHQgLSB0bXAueTE7CisJCX0KKwl9Cit9CitFWFBPUlRfU1lNQk9MKGRybV9yZWN0X3Jv dGF0ZV9pbnYpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3JlY3QuaCBiL2luY2x1ZGUv ZHJtL2RybV9yZWN0LmgKaW5kZXggZDEyODYyOS4uMjZiYjU1ZSAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9kcm0vZHJtX3JlY3QuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fcmVjdC5oCkBAIC0xNjMsNSAr MTYzLDExIEBAIGludCBkcm1fcmVjdF9jYWxjX3ZzY2FsZV9yZWxheGVkKHN0cnVjdCBkcm1fcmVj dCAqc3JjLAogCQkJCSBzdHJ1Y3QgZHJtX3JlY3QgKmRzdCwKIAkJCQkgaW50IG1pbl92c2NhbGUs IGludCBtYXhfdnNjYWxlKTsKIHZvaWQgZHJtX3JlY3RfZGVidWdfcHJpbnQoY29uc3Qgc3RydWN0 IGRybV9yZWN0ICpyLCBib29sIGZpeGVkX3BvaW50KTsKK3ZvaWQgZHJtX3JlY3Rfcm90YXRlKHN0 cnVjdCBkcm1fcmVjdCAqciwKKwkJICAgICBpbnQgd2lkdGgsIGludCBoZWlnaHQsCisJCSAgICAg dW5zaWduZWQgaW50IHJvdGF0aW9uKTsKK3ZvaWQgZHJtX3JlY3Rfcm90YXRlX2ludihzdHJ1Y3Qg ZHJtX3JlY3QgKnIsCisJCQkgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAorCQkJIHVuc2lnbmVkIGlu dCByb3RhdGlvbik7CiAKICNlbmRpZgotLSAKMS43LjEwLjQKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==