From mboxrd@z Thu Jan 1 00:00:00 1970 From: libin.yang@intel.com Subject: [PATCH v6 2/4] drm/i915: implement sync_audio_rate callback Date: Wed, 2 Sep 2015 14:11:39 +0800 Message-ID: <1441174301-144177-2-git-send-email-libin.yang@intel.com> References: <1441174301-144177-1-git-send-email-libin.yang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1441174301-144177-1-git-send-email-libin.yang@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: alsa-devel@alsa-project.org, tiwai@suse.de, intel-gfx@lists.freedesktop.org, daniel.vetter@ffwll.ch, jani.nikula@linux.intel.com, ville.syrjala@linux.intel.com List-Id: alsa-devel@alsa-project.org RnJvbTogTGliaW4gWWFuZyA8bGliaW4ueWFuZ0BpbnRlbC5jb20+CgpIRE1JIGF1ZGlvIG1heSBu b3Qgd29yayBhdCBzb21lIGZyZXF1ZW5jaWVzCndpdGggdGhlIEhXIHByb3ZpZGVkIE4vQ1RTLgoK VGhpcyBwYXRjaCBzZXRzIHRoZSBwcm9wZXIgTiB2YWx1ZSBmb3IgdGhlCmdpdmVuIGF1ZGlvIHNh bXBsZSByYXRlIGF0IHRoZSBpbXBhY3RlZCBmcmVxdWVuY2llcy4KQXQgb3RoZXIgZnJlcXVlbmNp ZXMsIGl0IHdpbGwgdXNlIHRoZSBOL0NUUyB2YWx1ZQp3aGljaCBIVyBwcm92aWRlcy4KClNpZ25l ZC1vZmYtYnk6IExpYmluIFlhbmcgPGxpYmluLnlhbmdAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICB8ICAgNSArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8u YyB8IDEzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNo YW5nZWQsIDE0NCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKaW5kZXggMDk3 ZDRiYS4uOGZmYjVkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCkBAIC04NTgsNiArODU4LDcg QEAgaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQg bG9uZyBmbGFncykKIAltdXRleF9pbml0KCZkZXZfcHJpdi0+c2JfbG9jayk7CiAJbXV0ZXhfaW5p dCgmZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9yZV9sb2NrKTsKIAltdXRleF9pbml0KCZkZXZfcHJp di0+Y3NyX2xvY2spOworCW11dGV4X2luaXQoJmRldl9wcml2LT5hdl9tdXRleCk7CiAKIAlpbnRl bF9wbV9zZXR1cChkZXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAwNWZmZDVhLi4y YzZiNzZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTE4ODIsNiArMTg4MiwxMSBAQCBz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAKIAkvKiBoZGEvaTkxNSBhdWRpbyBjb21wb25lbnQg Ki8KIAlib29sIGF1ZGlvX2NvbXBvbmVudF9yZWdpc3RlcmVkOworCS8qKgorCSAqIGF2X211dGV4 IC0gbXV0ZXggZm9yIGF1ZGlvL3ZpZGVvIHN5bmMKKwkgKgorCSAqLworCXN0cnVjdCBtdXRleCBh dl9tdXRleDsKIAogCXVpbnQzMl90IGh3X2NvbnRleHRfc2l6ZTsKIAlzdHJ1Y3QgbGlzdF9oZWFk IGNvbnRleHRfbGlzdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1 ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCmluZGV4IGRjMzJjZjQu LmEwMjE3MjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwpAQCAtNjgsNiArNjgsMzEg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAJeyAxNDg1MDAsIEFVRF9DT05GSUdfUElYRUxfQ0xP Q0tfSERNSV8xNDg1MDAgfSwKIH07CiAKKy8qIEhETUkgTi9DVFMgdGFibGUgKi8KKyNkZWZpbmUg VE1EU18yOTdNIDI5NzAwMAorI2RlZmluZSBUTURTXzI5Nk0gRElWX1JPVU5EX1VQKDI5NzAwMCAq IDEwMDAsIDEwMDEpCitzdGF0aWMgY29uc3Qgc3RydWN0IHsKKwlpbnQgc2FtcGxlX3JhdGU7CisJ aW50IGNsb2NrOworCWludCBuOworCWludCBjdHM7Cit9IGF1ZF9uY3RzW10gPSB7CisJeyA0NDEw MCwgVE1EU18yOTZNLCA0NDU5LCAyMzQzNzUgfSwKKwl7IDQ0MTAwLCBUTURTXzI5N00sIDQ3MDQs IDI0NzUwMCB9LAorCXsgNDgwMDAsIFRNRFNfMjk2TSwgNTgyNCwgMjgxMjUwIH0sCisJeyA0ODAw MCwgVE1EU18yOTdNLCA1MTIwLCAyNDc1MDAgfSwKKwl7IDMyMDAwLCBUTURTXzI5Nk0sIDU4MjQs IDQyMTg3NSB9LAorCXsgMzIwMDAsIFRNRFNfMjk3TSwgMzA3MiwgMjIyNzUwIH0sCisJeyA4ODIw MCwgVE1EU18yOTZNLCA4OTE4LCAyMzQzNzUgfSwKKwl7IDg4MjAwLCBUTURTXzI5N00sIDk0MDgs IDI0NzUwMCB9LAorCXsgOTYwMDAsIFRNRFNfMjk2TSwgMTE2NDgsIDI4MTI1MCB9LAorCXsgOTYw MDAsIFRNRFNfMjk3TSwgMTAyNDAsIDI0NzUwMCB9LAorCXsgMTc2NDAwLCBUTURTXzI5Nk0sIDE3 ODM2LCAyMzQzNzUgfSwKKwl7IDE3NjQwMCwgVE1EU18yOTdNLCAxODgxNiwgMjQ3NTAwIH0sCisJ eyAxOTIwMDAsIFRNRFNfMjk2TSwgMjMyOTYsIDI4MTI1MCB9LAorCXsgMTkyMDAwLCBUTURTXzI5 N00sIDIwNDgwLCAyNDc1MDAgfSwKK307CisKIC8qIGdldCBBVURfQ09ORklHX1BJWEVMX0NMT0NL X0hETUlfKiB2YWx1ZSBmb3IgbW9kZSAqLwogc3RhdGljIHUzMiBhdWRpb19jb25maWdfaGRtaV9w aXhlbF9jbG9jayhzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKIHsKQEAgLTkwLDYgKzEx NSwzMSBAQCBzdGF0aWMgdTMyIGF1ZGlvX2NvbmZpZ19oZG1pX3BpeGVsX2Nsb2NrKHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlKQogCXJldHVybiBoZG1pX2F1ZGlvX2Nsb2NrW2ldLmNvbmZp ZzsKIH0KIAorc3RhdGljIGludCBhdWRpb19jb25maWdfZ2V0X24oY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGUsIGludCByYXRlKQoreworCWludCBpOworCisJZm9yIChpID0gMDsg aSA8IEFSUkFZX1NJWkUoYXVkX25jdHMpOyBpKyspIHsKKwkJaWYgKChyYXRlID09IGF1ZF9uY3Rz W2ldLnNhbXBsZV9yYXRlKSAmJgorCQkJKG1vZGUtPmNsb2NrID09IGF1ZF9uY3RzW2ldLmNsb2Nr KSkgeworCQkJcmV0dXJuIGF1ZF9uY3RzW2ldLm47CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisK Ky8qIGNoZWNrIHdoZXRoZXIgTi9DVFMvTSBuZWVkIGJlIHNldCBtYW51YWxseSAqLworc3RhdGlj IGJvb2wgYXVkaW9fcmF0ZV9uZWVkX3Byb2coc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkJ CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQoreworCWlmICgoKG1vZGUtPmNsb2NrID09 IFRNRFNfMjk3TSkgfHwKKwkJIChtb2RlLT5jbG9jayA9PSBUTURTXzI5Nk0pKSAmJgorCQlpbnRl bF9waXBlX2hhc190eXBlKGNydGMsIElOVEVMX09VVFBVVF9IRE1JKSkKKwkJcmV0dXJuIHRydWU7 CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBib29sIGludGVsX2VsZF91cHRv ZGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJICAgICAgIGludCByZWdf ZWxkdiwgdWludDMyX3QgYml0c19lbGR2LAogCQkJICAgICAgIGludCByZWdfZWxkYSwgdWludDMy X3QgYml0c19lbGRhLApAQCAtMTg0LDYgKzIzNCw4IEBAIHN0YXRpYyB2b2lkIGhzd19hdWRpb19j b2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCiAJRFJNX0RFQlVH X0tNUygiRGlzYWJsZSBhdWRpbyBjb2RlYyBvbiBwaXBlICVjXG4iLCBwaXBlX25hbWUocGlwZSkp OwogCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKKwogCS8qIERpc2FibGUgdGlt ZXN0YW1wcyAqLwogCXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX0NGRyhwaXBlKSk7CiAJdG1wICY9 IH5BVURfQ09ORklHX05fVkFMVUVfSU5ERVg7CkBAIC0xOTksNiArMjUxLDggQEAgc3RhdGljIHZv aWQgaHN3X2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIp CiAJdG1wICY9IH5BVURJT19FTERfVkFMSUQocGlwZSk7CiAJdG1wICY9IH5BVURJT19PVVRQVVRf RU5BQkxFKHBpcGUpOwogCUk5MTVfV1JJVEUoSFNXX0FVRF9QSU5fRUxEX0NQX1ZMRCwgdG1wKTsK KworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKIH0KIAogc3RhdGljIHZvaWQg aHN3X2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLApA QCAtMjE1LDYgKzI2OSw4IEBAIHN0YXRpYyB2b2lkIGhzd19hdWRpb19jb2RlY19lbmFibGUoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAlEUk1fREVCVUdfS01TKCJFbmFibGUgYXVk aW8gY29kZWMgb24gcGlwZSAlYywgJXUgYnl0ZXMgRUxEXG4iLAogCQkgICAgICBwaXBlX25hbWUo cGlwZSksIGRybV9lbGRfc2l6ZShlbGQpKTsKIAorCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9t dXRleCk7CisKIAkvKiBFbmFibGUgYXVkaW8gcHJlc2VuY2UgZGV0ZWN0LCBpbnZhbGlkYXRlIEVM RCAqLwogCXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX1BJTl9FTERfQ1BfVkxEKTsKIAl0bXAgfD0g QVVESU9fT1VUUFVUX0VOQUJMRShwaXBlKTsKQEAgLTI1Myw2ICszMDksOCBAQCBzdGF0aWMgdm9p ZCBoc3dfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is CiAJZWxzZQogCQl0bXAgfD0gYXVkaW9fY29uZmlnX2hkbWlfcGl4ZWxfY2xvY2sobW9kZSk7CiAJ STkxNV9XUklURShIU1dfQVVEX0NGRyhwaXBlKSwgdG1wKTsKKworCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmF2X211dGV4KTsKIH0KIAogc3RhdGljIHZvaWQgaWxrX2F1ZGlvX2NvZGVjX2Rpc2Fi bGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCkBAIC01MTQsMTIgKzU3Miw5MiBAQCBz dGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9jZGNsa19mcmVxKHN0cnVjdCBkZXZp Y2UgKmRldikKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9u ZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJCQlpbnQgcG9ydCwg aW50IHJhdGUpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2X3Rv X2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRldl9wcml2LT5kZXY7 CisJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXI7CisJc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQ7CisJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CisJZW51bSBwaXBlIHBpcGUgPSAtMTsKKwl1 MzIgdG1wOworCWludCBuX2xvdywgbl91cCwgbjsKKworCS8qIEhTVywgQkRXIFNLTCBuZWVkIHRo aXMgZml4ICovCisJaWYgKCFJU19TS1lMQUtFKGRldl9wcml2KSAmJgorCQkhSVNfQlJPQURXRUxM KGRldl9wcml2KSAmJgorCQkhSVNfSEFTV0VMTChkZXZfcHJpdikpCisJCXJldHVybiAwOworCisJ bXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKKwkvKiAxLiBnZXQgdGhlIHBpcGUgKi8K Kwlmb3JfZWFjaF9pbnRlbF9lbmNvZGVyKGRybV9kZXYsIGludGVsX2VuY29kZXIpIHsKKwkJaWYg KGludGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0hETUkpCisJCQljb250aW51ZTsK KwkJaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmludGVsX2VuY29kZXItPmJhc2Up OworCQlpZiAocG9ydCA9PSBpbnRlbF9kaWdfcG9ydC0+cG9ydCkgeworCQkJY3J0YyA9IHRvX2lu dGVsX2NydGMoaW50ZWxfZW5jb2Rlci0+YmFzZS5jcnRjKTsKKwkJCWlmICghY3J0YykgeworCQkJ CURSTV9ERUJVR19LTVMoIiVzOiBjcnRjIGlzIE5VTExcbiIsIF9fZnVuY19fKTsKKwkJCQljb250 aW51ZTsKKwkJCX0KKwkJCXBpcGUgPSBjcnRjLT5waXBlOworCQkJYnJlYWs7CisJCX0KKwl9CisK KwlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUpIHsKKwkJRFJNX0RFQlVHX0tNUygibm8gcGlwZSBm b3IgdGhlIHBvcnQgJWNcbiIsIHBvcnRfbmFtZShwb3J0KSk7CisJCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmF2X211dGV4KTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCURSTV9ERUJVR19LTVMo InBpcGUgJWMgY29ubmVjdHMgcG9ydCAlY1xuIiwKKwkJCQkgIHBpcGVfbmFtZShwaXBlKSwgcG9y dF9uYW1lKHBvcnQpKTsKKwltb2RlID0gJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2Rl OworCisJLyogMi4gY2hlY2sgd2hldGhlciB0byBzZXQgdGhlIE4vQ1RTL00gbWFudWFsbHkgb3Ig bm90ICovCisJaWYgKCFhdWRpb19yYXRlX25lZWRfcHJvZyhjcnRjLCBtb2RlKSkgeworCQl0bXAg PSBJOTE1X1JFQUQoSFNXX0FVRF9DRkcocGlwZSkpOworCQl0bXAgJj0gfkFVRF9DT05GSUdfTl9Q Uk9HX0VOQUJMRTsKKwkJSTkxNV9XUklURShIU1dfQVVEX0NGRyhwaXBlKSwgdG1wKTsKKwkJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOworCQlyZXR1cm4gMDsKKwl9CisKKwluID0g YXVkaW9fY29uZmlnX2dldF9uKG1vZGUsIHJhdGUpOworCWlmIChuID09IDApIHsKKwkJRFJNX0RF QlVHX0tNUygiVXNpbmcgYXV0b21hdGljIG1vZGUgZm9yIE4gdmFsdWUgb24gcG9ydCAlY1xuIiwK KwkJCQkJICBwb3J0X25hbWUocG9ydCkpOworCQl0bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9DRkco cGlwZSkpOworCQl0bXAgJj0gfkFVRF9DT05GSUdfTl9QUk9HX0VOQUJMRTsKKwkJSTkxNV9XUklU RShIU1dfQVVEX0NGRyhwaXBlKSwgdG1wKTsKKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZf bXV0ZXgpOworCQlyZXR1cm4gMDsKKwl9CisJbl9sb3cgPSBuICYgMHhmZmY7CisJbl91cCA9IChu ID4+IDEyKSAmIDB4ZmY7CisKKwkvKiA0LiBzZXQgdGhlIE4vQ1RTL00gKi8KKwl0bXAgPSBJOTE1 X1JFQUQoSFNXX0FVRF9DRkcocGlwZSkpOworCXRtcCAmPSB+KEFVRF9DT05GSUdfVVBQRVJfTl9N QVNLIHwgQVVEX0NPTkZJR19MT1dFUl9OX01BU0spOworCXRtcCB8PSAoKG5fdXAgPDwgQVVEX0NP TkZJR19VUFBFUl9OX1NISUZUKSB8CisJCQkobl9sb3cgPDwgQVVEX0NPTkZJR19MT1dFUl9OX1NI SUZUKSB8CisJCQlBVURfQ09ORklHX05fUFJPR19FTkFCTEUpOworCUk5MTVfV1JJVEUoSFNXX0FV RF9DRkcocGlwZSksIHRtcCk7CisKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7 CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25l bnRfb3BzIGk5MTVfYXVkaW9fY29tcG9uZW50X29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RV TEUsCiAJLmdldF9wb3dlcgk9IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9wb3dlciwKIAkucHV0 X3Bvd2VyCT0gaTkxNV9hdWRpb19jb21wb25lbnRfcHV0X3Bvd2VyLAogCS5jb2RlY193YWtlX292 ZXJyaWRlID0gaTkxNV9hdWRpb19jb21wb25lbnRfY29kZWNfd2FrZV9vdmVycmlkZSwKIAkuZ2V0 X2NkY2xrX2ZyZXEJPSBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfY2RjbGtfZnJlcSwKKwkuc3lu Y19hdWRpb19yYXRlID0gaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlLAogfTsK IAogc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9iaW5kKHN0cnVjdCBkZXZpY2UgKmk5 MTVfZGV2LAotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==