From mboxrd@z Thu Jan 1 00:00:00 1970 From: libin.yang@intel.com Subject: [PATCH v4 2/4] drm/i915: implement sync_audio_rate callback Date: Tue, 18 Aug 2015 14:35:27 +0800 Message-ID: <1439879729-27885-2-git-send-email-libin.yang@intel.com> References: <1439879729-27885-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 205F96EA29 for ; Mon, 17 Aug 2015 23:45:32 -0700 (PDT) In-Reply-To: <1439879729-27885-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 Z3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgfCAxMTYgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDExNiBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F1ZGlvLmMKaW5kZXggZGMzMmNmNC4uOWQ2YmE4NCAxMDA2NDQKLS0tIGEv 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 NzggQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfY2RjbGtfZnJlcShzdHJ1 Y3QgZGV2aWNlICpkZXYpCiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBpOTE1X2F1ZGlv X2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCQkJaW50 IHBvcnQsIGludCByYXRlKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldl90b19pOTE1KGRldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkZXZfcHJp di0+ZGV2OworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyOworCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0OworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOworCWVudW0gcGlwZSBwaXBlID0g LTE7CisJdTMyIHRtcDsKKwlpbnQgbl9sb3csIG5fdXAsIG47CisKKwkvKiAxLiBnZXQgdGhlIHBp cGUgKi8KKwlmb3JfZWFjaF9pbnRlbF9lbmNvZGVyKGRybV9kZXYsIGludGVsX2VuY29kZXIpIHsK KwkJaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmludGVsX2VuY29kZXItPmJhc2Up OworCQlpZiAocG9ydCA9PSBpbnRlbF9kaWdfcG9ydC0+cG9ydCkgeworCQkJY3J0YyA9IHRvX2lu dGVsX2NydGMoaW50ZWxfZW5jb2Rlci0+YmFzZS5jcnRjKTsKKwkJCWlmICghY3J0YyB8fAorCQkJ CSFpbnRlbF9waXBlX2hhc190eXBlKGNydGMsIElOVEVMX09VVFBVVF9IRE1JKSkKKwkJCQljb250 aW51ZTsKKwkJCXBpcGUgPSBjcnRjLT5waXBlOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAo cGlwZSA9PSBJTlZBTElEX1BJUEUpIHsKKwkJRFJNX0RFQlVHX0tNUygibm8gcGlwZSBmb3IgdGhl IHBvcnQgJWNcbiIsIHBvcnRfbmFtZShwb3J0KSk7CisJCXJldHVybiAtRU5PREVWOworCX0KKwlE Uk1fREVCVUdfS01TKCJwaXBlICVjIGNvbm5lY3RzIHBvcnQgJWNcbiIsCisJCQkJICBwaXBlX25h bWUocGlwZSksIHBvcnRfbmFtZShwb3J0KSk7CisJbW9kZSA9ICZjcnRjLT5jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZTsKKworCS8qIDIuIGNoZWNrIHdoZXRoZXIgdG8gc2V0IHRoZSBOL0NUUy9N IG1hbnVhbGx5IG9yIG5vdCAqLworCWlmICghYXVkaW9fcmF0ZV9uZWVkX3Byb2coY3J0YywgbW9k ZSkpIHsKKwkJdG1wID0gSTkxNV9SRUFEKEhTV19BVURfQ0ZHKHBpcGUpKTsKKwkJdG1wICY9IH5B VURfQ09ORklHX05fUFJPR19FTkFCTEU7CisJCUk5MTVfV1JJVEUoSFNXX0FVRF9DRkcocGlwZSks IHRtcCk7CisJCXJldHVybiAwOworCX0KKworCW4gPSBhdWRpb19jb25maWdfZ2V0X24obW9kZSwg cmF0ZSk7CisJaWYgKG4gPT0gMCkgeworCQlEUk1fREVCVUdfS01TKCJVc2luZyBhdXRvbWF0aWMg bW9kZSBmb3IgTiB2YWx1ZSBvbiBwb3J0ICVjXG4iLAorCQkJCQkgIHBvcnRfbmFtZShwb3J0KSk7 CisJCXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX0NGRyhwaXBlKSk7CisJCXRtcCAmPSB+QVVEX0NP TkZJR19OX1BST0dfRU5BQkxFOworCQlJOTE1X1dSSVRFKEhTV19BVURfQ0ZHKHBpcGUpLCB0bXAp OworCQlyZXR1cm4gMDsKKwl9CisJbl9sb3cgPSBuICYgMHhmZmY7CisJbl91cCA9IChuID4+IDEy KSAmIDB4ZmY7CisKKwkvKiA0LiBzZXQgdGhlIE4vQ1RTL00gKi8KKwl0bXAgPSBJOTE1X1JFQUQo SFNXX0FVRF9DRkcocGlwZSkpOworCXRtcCAmPSB+KEFVRF9DT05GSUdfVVBQRVJfTl9NQVNLIHwg QVVEX0NPTkZJR19MT1dFUl9OX01BU0spOworCXRtcCB8PSAoKG5fdXAgPDwgQVVEX0NPTkZJR19V UFBFUl9OX1NISUZUKSB8CisJCQkobl9sb3cgPDwgQVVEX0NPTkZJR19MT1dFUl9OX1NISUZUKSB8 CisJCQlBVURfQ09ORklHX05fUFJPR19FTkFCTEUpOworCUk5MTVfV1JJVEUoSFNXX0FVRF9DRkco cGlwZSksIHRtcCk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1 X2F1ZGlvX2NvbXBvbmVudF9vcHMgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzID0gewogCS5vd25l cgkJPSBUSElTX01PRFVMRSwKIAkuZ2V0X3Bvd2VyCT0gaTkxNV9hdWRpb19jb21wb25lbnRfZ2V0 X3Bvd2VyLAogCS5wdXRfcG93ZXIJPSBpOTE1X2F1ZGlvX2NvbXBvbmVudF9wdXRfcG93ZXIsCiAJ LmNvZGVjX3dha2Vfb3ZlcnJpZGUgPSBpOTE1X2F1ZGlvX2NvbXBvbmVudF9jb2RlY193YWtlX292 ZXJyaWRlLAogCS5nZXRfY2RjbGtfZnJlcQk9IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9jZGNs a19mcmVxLAorCS5zeW5jX2F1ZGlvX3JhdGUgPSBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1 ZGlvX3JhdGUsCiB9OwogCiBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X2JpbmQoc3Ry dWN0IGRldmljZSAqaTkxNV9kZXYsCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK