From mboxrd@z Thu Jan 1 00:00:00 1970 From: libin.yang@intel.com Subject: [PATCH v5 2/4] drm/i915: implement sync_audio_rate callback Date: Tue, 18 Aug 2015 14:51:52 +0800 Message-ID: <1439880714-40931-2-git-send-email-libin.yang@intel.com> References: <1439880714-40931-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: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 97ADB6E9F8 for ; Tue, 18 Aug 2015 00:01:57 -0700 (PDT) In-Reply-To: <1439880714-40931-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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogTGliaW4gWWFuZyA8bGliaW4ueWFuZ0BpbnRlbC5jb20+CgpIRE1JIGF1ZGlvIG1heSBu b3Qgd29yayBhdCBzb21lIGZyZXF1ZW5jaWVzCndpdGggdGhlIEhXIHByb3ZpZGVkIE4vQ1RTLgoK VGhpcyBwYXRjaCBzZXRzIHRoZSBwcm9wZXIgTiB2YWx1ZSBmb3IgdGhlCmdpdmVuIGF1ZGlvIHNh bXBsZSByYXRlIGF0IHRoZSBpbXBhY3RlZCBmcmVxdWVuY2llcy4KQXQgb3RoZXIgZnJlcXVlbmNp ZXMsIGl0IHdpbGwgdXNlIHRoZSBOL0NUUyB2YWx1ZQp3aGljaCBIVyBwcm92aWRlcy4KClNpZ25l ZC1vZmYtYnk6IExpYmluIFlhbmcgPGxpYmluLnlhbmdAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgfCAxMTkgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F1ZGlvLmMKaW5kZXggZGMzMmNmNC4uOTZiOTdiZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdWRpby5jCkBAIC02OCw2ICs2OCwzMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHsKIAl7IDE0ODUwMCwgQVVEX0NPTkZJR19QSVhFTF9DTE9DS19IRE1JXzE0ODUwMCB9LAogfTsK IAorLyogSERNSSBOL0NUUyB0YWJsZSAqLworI2RlZmluZSBUTURTXzI5N00gMjk3MDAwCisjZGVm aW5lIFRNRFNfMjk2TSBESVZfUk9VTkRfVVAoMjk3MDAwICogMTAwMCwgMTAwMSkKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgeworCWludCBzYW1wbGVfcmF0ZTsKKwlpbnQgY2xvY2s7CisJaW50IG47CisJ aW50IGN0czsKK30gYXVkX25jdHNbXSA9IHsKKwl7IDQ0MTAwLCBUTURTXzI5Nk0sIDQ0NTksIDIz NDM3NSB9LAorCXsgNDQxMDAsIFRNRFNfMjk3TSwgNDcwNCwgMjQ3NTAwIH0sCisJeyA0ODAwMCwg VE1EU18yOTZNLCA1ODI0LCAyODEyNTAgfSwKKwl7IDQ4MDAwLCBUTURTXzI5N00sIDUxMjAsIDI0 NzUwMCB9LAorCXsgMzIwMDAsIFRNRFNfMjk2TSwgNTgyNCwgNDIxODc1IH0sCisJeyAzMjAwMCwg VE1EU18yOTdNLCAzMDcyLCAyMjI3NTAgfSwKKwl7IDg4MjAwLCBUTURTXzI5Nk0sIDg5MTgsIDIz NDM3NSB9LAorCXsgODgyMDAsIFRNRFNfMjk3TSwgOTQwOCwgMjQ3NTAwIH0sCisJeyA5NjAwMCwg VE1EU18yOTZNLCAxMTY0OCwgMjgxMjUwIH0sCisJeyA5NjAwMCwgVE1EU18yOTdNLCAxMDI0MCwg MjQ3NTAwIH0sCisJeyAxNzY0MDAsIFRNRFNfMjk2TSwgMTc4MzYsIDIzNDM3NSB9LAorCXsgMTc2 NDAwLCBUTURTXzI5N00sIDE4ODE2LCAyNDc1MDAgfSwKKwl7IDQ0MTAwLCBUTURTXzI5Nk0sIDIz Mjk2LCAyODEyNTAgfSwKKwl7IDQ0MTAwLCBUTURTXzI5N00sIDIwNDgwLCAyNDc1MDAgfSwKK307 CisKIC8qIGdldCBBVURfQ09ORklHX1BJWEVMX0NMT0NLX0hETUlfKiB2YWx1ZSBmb3IgbW9kZSAq Lwogc3RhdGljIHUzMiBhdWRpb19jb25maWdfaGRtaV9waXhlbF9jbG9jayhzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZSkKIHsKQEAgLTkwLDYgKzExNSwzMSBAQCBzdGF0aWMgdTMyIGF1ZGlv X2NvbmZpZ19oZG1pX3BpeGVsX2Nsb2NrKHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQog CXJldHVybiBoZG1pX2F1ZGlvX2Nsb2NrW2ldLmNvbmZpZzsKIH0KIAorc3RhdGljIGludCBhdWRp b19jb25maWdfZ2V0X24oc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsIGludCByYXRlKQor eworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYXVkX25jdHMpOyBpKysp IHsKKwkJaWYgKChyYXRlID09IGF1ZF9uY3RzW2ldLnNhbXBsZV9yYXRlKSAmJgorCQkJKG1vZGUt PmNsb2NrID09IGF1ZF9uY3RzW2ldLmNsb2NrKSkgeworCQkJcmV0dXJuIGF1ZF9uY3RzW2ldLm47 CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qIGNoZWNrIHdoZXRoZXIgTi9DVFMvTSBuZWVk IGJlIHNldCBtYW51YWxseSAqLworc3RhdGljIGJvb2wgYXVkaW9fcmF0ZV9uZWVkX3Byb2coc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCisJCQkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl KQoreworCWlmICgoKG1vZGUtPmNsb2NrID09IFRNRFNfMjk3TSkgfHwKKwkJIChtb2RlLT5jbG9j ayA9PSBUTURTXzI5Nk0pKSAmJgorCQlpbnRlbF9waXBlX2hhc190eXBlKGNydGMsIElOVEVMX09V VFBVVF9IRE1JKSkKKwkJcmV0dXJuIHRydWU7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisK IHN0YXRpYyBib29sIGludGVsX2VsZF91cHRvZGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAogCQkJICAgICAgIGludCByZWdfZWxkdiwgdWludDMyX3QgYml0c19lbGR2LAogCQkJ ICAgICAgIGludCByZWdfZWxkYSwgdWludDMyX3QgYml0c19lbGRhLApAQCAtNTE0LDEyICs1NjQs ODEgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfY2RjbGtfZnJlcShzdHJ1 Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBpOTE1X2F1ZGlv X2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCQkJaW50 IHBvcnQsIGludCByYXRlKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldl90b19pOTE1KGRldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkZXZfcHJp di0+ZGV2OworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyOworCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0OworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOworCWVudW0gcGlwZSBwaXBlID0g LTE7CisJdTMyIHRtcDsKKwlpbnQgbl9sb3csIG5fdXAsIG47CisKKwkvKiAxLiBnZXQgdGhlIHBp cGUgKi8KKwlmb3JfZWFjaF9pbnRlbF9lbmNvZGVyKGRybV9kZXYsIGludGVsX2VuY29kZXIpIHsK KwkJaWYgKGludGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0hETUkpCisJCQljb250 aW51ZTsKKwkJaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmludGVsX2VuY29kZXIt PmJhc2UpOworCQlpZiAocG9ydCA9PSBpbnRlbF9kaWdfcG9ydC0+cG9ydCkgeworCQkJY3J0YyA9 IHRvX2ludGVsX2NydGMoaW50ZWxfZW5jb2Rlci0+YmFzZS5jcnRjKTsKKwkJCWlmICghY3J0Yykg eworCQkJCURSTV9ERUJVR19LTVMoIiVzOiBjcnRjIGlzIE5VTExcbiIsIF9fZnVuY19fKTsKKwkJ CQljb250aW51ZTsKKwkJCX0KKwkJCXBpcGUgPSBjcnRjLT5waXBlOworCQkJYnJlYWs7CisJCX0K Kwl9CisKKwlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUpIHsKKwkJRFJNX0RFQlVHX0tNUygibm8g cGlwZSBmb3IgdGhlIHBvcnQgJWNcbiIsIHBvcnRfbmFtZShwb3J0KSk7CisJCXJldHVybiAtRU5P REVWOworCX0KKwlEUk1fREVCVUdfS01TKCJwaXBlICVjIGNvbm5lY3RzIHBvcnQgJWNcbiIsCisJ CQkJICBwaXBlX25hbWUocGlwZSksIHBvcnRfbmFtZShwb3J0KSk7CisJbW9kZSA9ICZjcnRjLT5j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKworCS8qIDIuIGNoZWNrIHdoZXRoZXIgdG8gc2V0 IHRoZSBOL0NUUy9NIG1hbnVhbGx5IG9yIG5vdCAqLworCWlmICghYXVkaW9fcmF0ZV9uZWVkX3By b2coY3J0YywgbW9kZSkpIHsKKwkJdG1wID0gSTkxNV9SRUFEKEhTV19BVURfQ0ZHKHBpcGUpKTsK KwkJdG1wICY9IH5BVURfQ09ORklHX05fUFJPR19FTkFCTEU7CisJCUk5MTVfV1JJVEUoSFNXX0FV RF9DRkcocGlwZSksIHRtcCk7CisJCXJldHVybiAwOworCX0KKworCW4gPSBhdWRpb19jb25maWdf Z2V0X24obW9kZSwgcmF0ZSk7CisJaWYgKG4gPT0gMCkgeworCQlEUk1fREVCVUdfS01TKCJVc2lu ZyBhdXRvbWF0aWMgbW9kZSBmb3IgTiB2YWx1ZSBvbiBwb3J0ICVjXG4iLAorCQkJCQkgIHBvcnRf bmFtZShwb3J0KSk7CisJCXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX0NGRyhwaXBlKSk7CisJCXRt cCAmPSB+QVVEX0NPTkZJR19OX1BST0dfRU5BQkxFOworCQlJOTE1X1dSSVRFKEhTV19BVURfQ0ZH KHBpcGUpLCB0bXApOworCQlyZXR1cm4gMDsKKwl9CisJbl9sb3cgPSBuICYgMHhmZmY7CisJbl91 cCA9IChuID4+IDEyKSAmIDB4ZmY7CisKKwkvKiA0LiBzZXQgdGhlIE4vQ1RTL00gKi8KKwl0bXAg PSBJOTE1X1JFQUQoSFNXX0FVRF9DRkcocGlwZSkpOworCXRtcCAmPSB+KEFVRF9DT05GSUdfVVBQ RVJfTl9NQVNLIHwgQVVEX0NPTkZJR19MT1dFUl9OX01BU0spOworCXRtcCB8PSAoKG5fdXAgPDwg QVVEX0NPTkZJR19VUFBFUl9OX1NISUZUKSB8CisJCQkobl9sb3cgPDwgQVVEX0NPTkZJR19MT1dF Ul9OX1NISUZUKSB8CisJCQlBVURfQ09ORklHX05fUFJPR19FTkFCTEUpOworCUk5MTVfV1JJVEUo SFNXX0FVRF9DRkcocGlwZSksIHRtcCk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGNvbnN0 IHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMgaTkxNV9hdWRpb19jb21wb25lbnRfb3Bz ID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZ2V0X3Bvd2VyCT0gaTkxNV9hdWRpb19j b21wb25lbnRfZ2V0X3Bvd2VyLAogCS5wdXRfcG93ZXIJPSBpOTE1X2F1ZGlvX2NvbXBvbmVudF9w dXRfcG93ZXIsCiAJLmNvZGVjX3dha2Vfb3ZlcnJpZGUgPSBpOTE1X2F1ZGlvX2NvbXBvbmVudF9j b2RlY193YWtlX292ZXJyaWRlLAogCS5nZXRfY2RjbGtfZnJlcQk9IGk5MTVfYXVkaW9fY29tcG9u ZW50X2dldF9jZGNsa19mcmVxLAorCS5zeW5jX2F1ZGlvX3JhdGUgPSBpOTE1X2F1ZGlvX2NvbXBv bmVudF9zeW5jX2F1ZGlvX3JhdGUsCiB9OwogCiBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9u ZW50X2JpbmQoc3RydWN0IGRldmljZSAqaTkxNV9kZXYsCi0tIAoxLjkuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK