From mboxrd@z Thu Jan 1 00:00:00 1970 From: sagar.a.kamble@intel.com Subject: [PATCH v5 05/11] drm: Add drm_rect rotation functions Date: Mon, 10 Feb 2014 13:01:12 +0530 Message-ID: <1392017478-4945-6-git-send-email-sagar.a.kamble@intel.com> References: <1392017478-4945-1-git-send-email-sagar.a.kamble@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1392017478-4945-1-git-send-email-sagar.a.kamble@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org Cc: David Airlie , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFk ZCBzb21lIGhlbHBlciBmdW5jdGlvbnMgdG8gbW92ZSBkcm1fcmVjdHMgYmV0d2VlbiBkaWZmZXJl bnQgcm90YXRlZApjb29yZGluYXRlIHNwYWNlcy4gT25lIGZ1bmN0aW9uIGRvZXMgdGhlIGZvcndh cmQgdHJhbnNmb3JtIGFuZAphbm90aGVyIGRvZXMgdGhlIGludmVyc2UuCgpDYzogRGF2aWQgQWly bGllIDxhaXJsaWVkQGxpbnV4LmllPgpDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpDYzogbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogU2Fn YXIgS2FtYmxlIDxzYWdhci5hLmthbWJsZUBpbnRlbC5jb20+ClRlc3RlZC1ieTogU2FnYXIgS2Ft YmxlIDxzYWdhci5hLmthbWJsZUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9y ZWN0LmMgfCAxNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiBpbmNsdWRlL2RybS9kcm1fcmVjdC5oICAgICB8ICAgNiArKwogMiBmaWxlcyBjaGFuZ2VkLCAx NDYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcmVjdC5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9yZWN0LmMKaW5kZXggNzA0N2NhMC4uNjMxZjVhZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9yZWN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2RybV9yZWN0LmMKQEAgLTI5MywzICsyOTMsMTQzIEBAIHZvaWQgZHJtX3JlY3RfZGVidWdfcHJp bnQoY29uc3Qgc3RydWN0IGRybV9yZWN0ICpyLCBib29sIGZpeGVkX3BvaW50KQogCQlEUk1fREVC VUdfS01TKCIlZHglZCUrZCUrZFxuIiwgdywgaCwgci0+eDEsIHItPnkxKTsKIH0KIEVYUE9SVF9T WU1CT0woZHJtX3JlY3RfZGVidWdfcHJpbnQpOworCisvKioKKyAqIGRybV9yZWN0X3JvdGF0ZSAt IFJvdGF0ZSB0aGUgcmVjdGFuZ2xlCisgKiBAcjogcmVjdGFuZ2xlIHRvIGJlIHJvdGF0ZWQKKyAq IEB3aWR0aDogV2lkdGggb2YgdGhlIGNvb3JkaW5hdGUgc3BhY2UKKyAqIEBoZWlnaHQ6IEhlaWdo dCBvZiB0aGUgY29vcmRpbmF0ZSBzcGFjZQorICogQHJvdGF0aW9uOiBUcmFuc2Zvcm1hdGlvbiB0 byBiZSBhcHBsaWVkCisgKgorICogQXBwbHkgQHJvdGF0aW9uIHRvIHRoZSBjb29yZGluYXRlcyBv ZiByZWN0YW5nbGUgQHIuCisgKgorICogQHdpZHRoIGFuZCBAaGVpZ2h0IGNvbWJpbmVkIHdpdGgg QHJvdGF0aW9uIGRlZmluZQorICogdGhlIGxvY2F0aW9uIG9mIHRoZSBuZXcgb3JpZ2luLgorICoK KyAqIEB3aWR0aCBjb3JyZWNzcG9uZHMgdG8gdGhlIGhvcml6b250YWwgYW5kIEBoZWlnaHQKKyAq IHRvIHRoZSB2ZXJ0aWNhbCBheGlzIG9mIHRoZSB1bnRyYW5zZm9ybWVkIGNvb3JkaW5hdGUKKyAq IHNwYWNlLgorICovCit2b2lkIGRybV9yZWN0X3JvdGF0ZShzdHJ1Y3QgZHJtX3JlY3QgKnIsCisJ CSAgICAgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAorCQkgICAgIHVuc2lnbmVkIGludCByb3RhdGlv bikKK3sKKwlzdHJ1Y3QgZHJtX3JlY3QgdG1wOworCisJaWYgKHJvdGF0aW9uICYgKEJJVChEUk1f UkVGTEVDVF9YKSB8IEJJVChEUk1fUkVGTEVDVF9ZKSkpIHsKKwkJdG1wID0gKnI7CisKKwkJaWYg KHJvdGF0aW9uICYgQklUKERSTV9SRUZMRUNUX1gpKSB7CisJCQlyLT54MSA9IHdpZHRoIC0gdG1w LngyOworCQkJci0+eDIgPSB3aWR0aCAtIHRtcC54MTsKKwkJfQorCisJCWlmIChyb3RhdGlvbiAm IEJJVChEUk1fUkVGTEVDVF9ZKSkgeworCQkJci0+eTEgPSBoZWlnaHQgLSB0bXAueTI7CisJCQly LT55MiA9IGhlaWdodCAtIHRtcC55MTsKKwkJfQorCX0KKworCXN3aXRjaCAocm90YXRpb24gJiAw eGYpIHsKKwljYXNlIEJJVChEUk1fUk9UQVRFXzApOgorCQlicmVhazsKKwljYXNlIEJJVChEUk1f Uk9UQVRFXzkwKToKKwkJdG1wID0gKnI7CisJCXItPngxID0gdG1wLnkxOworCQlyLT54MiA9IHRt cC55MjsKKwkJci0+eTEgPSB3aWR0aCAtIHRtcC54MjsKKwkJci0+eTIgPSB3aWR0aCAtIHRtcC54 MTsKKwkJYnJlYWs7CisJY2FzZSBCSVQoRFJNX1JPVEFURV8xODApOgorCQl0bXAgPSAqcjsKKwkJ ci0+eDEgPSB3aWR0aCAtIHRtcC54MjsKKwkJci0+eDIgPSB3aWR0aCAtIHRtcC54MTsKKwkJci0+ eTEgPSBoZWlnaHQgLSB0bXAueTI7CisJCXItPnkyID0gaGVpZ2h0IC0gdG1wLnkxOworCQlicmVh azsKKwljYXNlIEJJVChEUk1fUk9UQVRFXzI3MCk6CisJCXRtcCA9ICpyOworCQlyLT54MSA9IGhl aWdodCAtIHRtcC55MjsKKwkJci0+eDIgPSBoZWlnaHQgLSB0bXAueTE7CisJCXItPnkxID0gdG1w LngxOworCQlyLT55MiA9IHRtcC54MjsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJ fQorfQorRVhQT1JUX1NZTUJPTChkcm1fcmVjdF9yb3RhdGUpOworCisvKioKKyAqIGRybV9yZWN0 X3JvdGF0ZV9pbnYgLSBJbnZlcnNlIHJvdGF0ZSB0aGUgcmVjdGFuZ2xlCisgKiBAcjogcmVjdGFu Z2xlIHRvIGJlIHJvdGF0ZWQKKyAqIEB3aWR0aDogV2lkdGggb2YgdGhlIGNvb3JkaW5hdGUgc3Bh Y2UKKyAqIEBoZWlnaHQ6IEhlaWdodCBvZiB0aGUgY29vcmRpbmF0ZSBzcGFjZQorICogQHJvdGF0 aW9uOiBUcmFuc2Zvcm1hdGlvbiB3aG9zZSBpbnZlcnNlIGlzIHRvIGJlIGFwcGxpZWQKKyAqCisg KiBBcHBseSB0aGUgaW52ZXJzZSBvZiBAcm90YXRpb24gdG8gdGhlIGNvb3JkaW5hdGVzCisgKiBv ZiByZWN0YW5nbGUgQHIuCisgKgorICogQHdpZHRoIGFuZCBAaGVpZ2h0IGNvbWJpbmVkIHdpdGgg QHJvdGF0aW9uIGRlZmluZQorICogdGhlIGxvY2F0aW9uIG9mIHRoZSBuZXcgb3JpZ2luLgorICoK KyAqIEB3aWR0aCBjb3JyZWNzcG9uZHMgdG8gdGhlIGhvcml6b250YWwgYW5kIEBoZWlnaHQKKyAq IHRvIHRoZSB2ZXJ0aWNhbCBheGlzIG9mIHRoZSBvcmlnaW5hbCB1bnRyYW5zZm9ybWVkCisgKiBj b29yZGluYXRlIHNwYWNlLCBzbyB0aGF0IHlvdSBuZXZlciBoYXZlIHRvIGZsaXAKKyAqIHRoZW0g d2hlbiBkb2luZyBhIHJvdGF0YXRpb24gYW5kIGl0cyBpbnZlcnNlLgorICogVGhhdCBpcywgaWYg eW91IGRvOgorICoKKyAqIGRybV9yb3RhdGUoJnIsIHdpZHRoLCBoZWlnaHQsIHJvdGF0aW9uKTsK KyAqIGRybV9yb3RhdGVfaW52KCZyLCB3aWR0aCwgaGVpZ2h0LCByb3RhdGlvbik7CisgKgorICog eW91IHdpbGwgYWx3YXlzIGdldCBiYWNrIHRoZSBvcmlnaW5hbCByZWN0YW5nbGUuCisgKi8KK3Zv aWQgZHJtX3JlY3Rfcm90YXRlX2ludihzdHJ1Y3QgZHJtX3JlY3QgKnIsCisJCQkgaW50IHdpZHRo LCBpbnQgaGVpZ2h0LAorCQkJIHVuc2lnbmVkIGludCByb3RhdGlvbikKK3sKKwlzdHJ1Y3QgZHJt X3JlY3QgdG1wOworCisJc3dpdGNoIChyb3RhdGlvbiAmIDB4ZikgeworCWNhc2UgQklUKERSTV9S T1RBVEVfMCk6CisJCWJyZWFrOworCWNhc2UgQklUKERSTV9ST1RBVEVfOTApOgorCQl0bXAgPSAq cjsKKwkJci0+eDEgPSB3aWR0aCAtIHRtcC55MjsKKwkJci0+eDIgPSB3aWR0aCAtIHRtcC55MTsK KwkJci0+eTEgPSB0bXAueDE7CisJCXItPnkyID0gdG1wLngyOworCQlicmVhazsKKwljYXNlIEJJ VChEUk1fUk9UQVRFXzE4MCk6CisJCXRtcCA9ICpyOworCQlyLT54MSA9IHdpZHRoIC0gdG1wLngy OworCQlyLT54MiA9IHdpZHRoIC0gdG1wLngxOworCQlyLT55MSA9IGhlaWdodCAtIHRtcC55MjsK KwkJci0+eTIgPSBoZWlnaHQgLSB0bXAueTE7CisJCWJyZWFrOworCWNhc2UgQklUKERSTV9ST1RB VEVfMjcwKToKKwkJdG1wID0gKnI7CisJCXItPngxID0gdG1wLnkxOworCQlyLT54MiA9IHRtcC55 MjsKKwkJci0+eTEgPSBoZWlnaHQgLSB0bXAueDI7CisJCXItPnkyID0gaGVpZ2h0IC0gdG1wLngx OworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwlpZiAocm90YXRpb24gJiAo QklUKERSTV9SRUZMRUNUX1gpIHwgQklUKERSTV9SRUZMRUNUX1kpKSkgeworCQl0bXAgPSAqcjsK KworCQlpZiAocm90YXRpb24gJiBCSVQoRFJNX1JFRkxFQ1RfWCkpIHsKKwkJCXItPngxID0gd2lk dGggLSB0bXAueDI7CisJCQlyLT54MiA9IHdpZHRoIC0gdG1wLngxOworCQl9CisKKwkJaWYgKHJv dGF0aW9uICYgQklUKERSTV9SRUZMRUNUX1kpKSB7CisJCQlyLT55MSA9IGhlaWdodCAtIHRtcC55 MjsKKwkJCXItPnkyID0gaGVpZ2h0IC0gdG1wLnkxOworCQl9CisJfQorfQorRVhQT1JUX1NZTUJP TChkcm1fcmVjdF9yb3RhdGVfaW52KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9yZWN0 LmggYi9pbmNsdWRlL2RybS9kcm1fcmVjdC5oCmluZGV4IGQxMjg2MjkuLjI2YmI1NWUgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9yZWN0LmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX3JlY3Qu aApAQCAtMTYzLDUgKzE2MywxMSBAQCBpbnQgZHJtX3JlY3RfY2FsY192c2NhbGVfcmVsYXhlZChz dHJ1Y3QgZHJtX3JlY3QgKnNyYywKIAkJCQkgc3RydWN0IGRybV9yZWN0ICpkc3QsCiAJCQkJIGlu dCBtaW5fdnNjYWxlLCBpbnQgbWF4X3ZzY2FsZSk7CiB2b2lkIGRybV9yZWN0X2RlYnVnX3ByaW50 KGNvbnN0IHN0cnVjdCBkcm1fcmVjdCAqciwgYm9vbCBmaXhlZF9wb2ludCk7Cit2b2lkIGRybV9y ZWN0X3JvdGF0ZShzdHJ1Y3QgZHJtX3JlY3QgKnIsCisJCSAgICAgaW50IHdpZHRoLCBpbnQgaGVp Z2h0LAorCQkgICAgIHVuc2lnbmVkIGludCByb3RhdGlvbik7Cit2b2lkIGRybV9yZWN0X3JvdGF0 ZV9pbnYoc3RydWN0IGRybV9yZWN0ICpyLAorCQkJIGludCB3aWR0aCwgaW50IGhlaWdodCwKKwkJ CSB1bnNpZ25lZCBpbnQgcm90YXRpb24pOwogCiAjZW5kaWYKLS0gCjEuOC41CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=