From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomeu Vizoso Subject: [PATCH v2 12/12] driver-core: probe dependencies before probing Date: Wed, 1 Jul 2015 11:41:07 +0200 Message-ID: <1435743667-11987-13-git-send-email-tomeu.vizoso@collabora.com> References: <1435743667-11987-1-git-send-email-tomeu.vizoso@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com [209.85.212.170]) by gabe.freedesktop.org (Postfix) with ESMTPS id CED8D6EAB1 for ; Wed, 1 Jul 2015 02:43:08 -0700 (PDT) Received: by wiwl6 with SMTP id l6so159025818wiw.0 for ; Wed, 01 Jul 2015 02:43:07 -0700 (PDT) In-Reply-To: <1435743667-11987-1-git-send-email-tomeu.vizoso@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org, linux-fbdev@vger.kernel.org, Tomeu Vizoso , linux-gpio@vger.kernel.org, Greg Kroah-Hartman , "Rafael J. Wysocki" , alsa-devel@alsa-project.org, dri-devel@lists.freedesktop.org, linux-acpi@vger.kernel.org, Mark Brown , linux-pwm@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org QmVmb3JlIGFjdHVhbGx5IHByb2JpbmcgYSBkZXZpY2UsIGZpbmQgb3V0IHdoYXQgZGVwZW5kZW5j aWVzIGl0IGhhcyBhbmQKZG8gb3VyIGJlc3QgdG8gZW5zdXJlIHRoYXQgdGhleSBhcmUgYXZhaWxh YmxlIGF0IHRoaXMgcG9pbnQuCgpUaGlzIGlzIGFjY29tcGxpc2hlZCBieSBmaW5kaW5nIG91dCB3 aGF0IHBsYXRmb3JtIGRldmljZXMgbmVlZCB0byBiZQpwcm9iZWQgYW5kIHByb2JpbmcgdGhlbS4g Tm9uLXBsYXRmb3JtIGRldmljZXMgd2lsbCBiZSBwcm9iZWQgd2hlbiB0aGUKY2xvc2VzdCBhbmNl c3RvciB0aGF0IGlzIGEgcGxhdGZvcm0gZGV2aWNlIGlzIHByb2JlZC4KCklmIGFueSBkZXBlbmRl bmNpZXMgYXJlIHN0aWxsIHVuYXZhaWxhYmxlIGFmdGVyIHRoYXQgKG1vc3QgcHJvYmFibHkgYQpt aXNzaW5nIGRyaXZlciBvciBhbiBlcnJvciBpbiB0aGUgSFcgZGVzY3JpcHRpb24gZnJvbSB0aGUg ZmlybXdhcmUpLCB3ZQpwcmludCBhIG5pY2UgZXJyb3IgbWVzc2FnZSBzbyB0aGF0IHBlb3BsZSBk b24ndCBoYXZlIHRvIGFkZCBhIHppbGxpb24gb2YKcHJpbnRrcyB0byBmaW5kIG91dCB3aHkgYSBk ZXZpY2UgYXNrZWQgZm9yIGl0cyBwcm9iZSB0byBiZSBkZWZlcnJlZC4KCkRlcGVuZGVuY2llcyBh cmUgZGlzY292ZXJlZCB3aXRoIHRoZSBoZWxwIG9mIHRoZSBjb2RlIHRoYXQgaXMgYWxyZWFkeQpp bXBsZW1lbnRpbmcgdGhlIHNwZWNpZmljYXRpb24gb2YgdGhlIGZpcm13YXJlIGJpbmRpbmdzLCB2 aWEgdGhlCmNhbGxiYWNrcyByZWdpc3RlcmVkIHdpdGggZndub2RlX2FkZF9kZXBlbmRlbmN5X3Bh cnNlcigpLgoKQ3VycmVudGx5IHRoZSBkZXBlbmRlbmNpZXMgbGlzdCBpcyBkaXNjYXJkZWQgYnV0 IGl0IGNvdWxkIGJlIHN0b3JlZCBmb3IKbGF0ZXIgdXNhZ2UuCgpTaWduZWQtb2ZmLWJ5OiBUb21l dSBWaXpvc28gPHRvbWV1LnZpem9zb0Bjb2xsYWJvcmEuY29tPgp0ZWdyYSwga2VybmVsLCB1c2IK LS0tCgpDaGFuZ2VzIGluIHYyOgotIEFsbG9jYXRlIHRoZSBsaXN0IG9mIGRlcGVuZGVuY2llcyBh bmQgcGFzcyBpdCB0byB0aGUgZnVuY3Rpb24gdGhhdAogIGZpbGxzIGl0LgoKIGRyaXZlcnMvYmFz ZS9kZC5jIHwgMTM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEzOSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9iYXNlL2RkLmMgYi9kcml2ZXJzL2Jhc2UvZGQuYwppbmRleCBhNjM4YmJiLi5j OGExYWZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2UvZGQuYworKysgYi9kcml2ZXJzL2Jhc2Uv ZGQuYwpAQCAtMjUsNiArMjUsOSBAQAogI2luY2x1ZGUgPGxpbnV4L2FzeW5jLmg+CiAjaW5jbHVk ZSA8bGludXgvcG1fcnVudGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BpbmN0cmwvZGV2aW5mby5o PgorI2luY2x1ZGUgPGxpbnV4L3Byb3BlcnR5Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgor I2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogCiAjaW5jbHVkZSAiYmFzZS5oIgog I2luY2x1ZGUgInBvd2VyL3Bvd2VyLmgiCkBAIC01NCw2ICs1NywxNDAgQEAgc3RhdGljIExJU1Rf SEVBRChkZWZlcnJlZF9wcm9iZV9hY3RpdmVfbGlzdCk7CiBzdGF0aWMgc3RydWN0IHdvcmtxdWV1 ZV9zdHJ1Y3QgKmRlZmVycmVkX3dxOwogc3RhdGljIGF0b21pY190IGRlZmVycmVkX3RyaWdnZXJf Y291bnQgPSBBVE9NSUNfSU5JVCgwKTsKIAorc3RhdGljIGJvb2wgZGV2aWNlX2lzX2JvdW5kKHN0 cnVjdCBkZXZpY2UgKmRldikKK3sKKwlyZXR1cm4ga2xpc3Rfbm9kZV9hdHRhY2hlZCgmZGV2LT5w LT5rbm9kZV9kcml2ZXIpOworfQorCitzdGF0aWMgaW50IGZ3bm9kZV9tYXRjaChzdHJ1Y3QgZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEpCit7CisJcmV0dXJuIGRldi0+Zndub2RlID09IGRhdGE7Cit9 CisKK3N0YXRpYyBib29sIGZ3bm9kZV9pc19ib3VuZChzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndu b2RlKQoreworCXN0cnVjdCBkZXZpY2UgKmRldjsKKworCWRldiA9IGJ1c19maW5kX2RldmljZSgm cGxhdGZvcm1fYnVzX3R5cGUsIE5VTEwsIGZ3bm9kZSwgZndub2RlX21hdGNoKTsKKworCS8qIENo ZWNrIHdoZXRoZXIgZGV2aWNlIGlzIGJvdW5kIG9yIGlzIGJlaW5nIHByb2JlZCByaWdodCBub3cg Ki8KKwlyZXR1cm4gZGV2ID8gZGV2LT5kcml2ZXIgOiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wg Zndub2RlX2lzX3BsYXRmb3JtKHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpCit7CisJc3Ry dWN0IGZ3bm9kZV9oYW5kbGUgKnBhcmVudDsKKwljb25zdCBjaGFyICpjb21wYXRpYmxlOworCWlu dCBjb3VudDsKKworCWNvdW50ID0gZndub2RlX3Byb3BlcnR5X3JlYWRfc3RyaW5nX2FycmF5KGZ3 bm9kZSwgImNvbXBhdGlibGUiLCBOVUxMLAorCQkJCQkJICAwKTsKKworCS8qIFRoZSBub2RlIGhh cyB0byBoYXZlIGEgY29tcGF0aWJsZSBzdHJpbmcgKi8KKwlpZiAoIWNvdW50KQorCQlyZXR1cm4g ZmFsc2U7CisKKwkvKiBCdXQgaXQgY2Fubm90IGJlIG9ubHkgc2ltcGxlLWJ1cyAqLworCWlmICgo Y291bnQgPT0gMSkgJiYKKwkgICAgIWZ3bm9kZV9wcm9wZXJ0eV9yZWFkX3N0cmluZyhmd25vZGUs ICJjb21wYXRpYmxlIiwgJmNvbXBhdGlibGUpICYmCisJICAgICFzdHJjbXAoY29tcGF0aWJsZSwg InNpbXBsZS1idXMiKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcGFyZW50ID0gZndub2RlX2dldF9w YXJlbnQoZndub2RlKTsKKworCS8qIE5vZGUgaXMgaW1tZWRpYXRlbHkgYmVsb3cgcm9vdCAqLwor CWlmICghZndub2RlX2dldF9wYXJlbnQocGFyZW50KSkKKwkJcmV0dXJuIHRydWU7CisKKwkvKiBJ ZiBpdHMgcGFyZW50IGlzIGEgc2ltcGxlLWJ1cyAqLworCWlmIChmd25vZGVfaXNfY29tcGF0aWJs ZShwYXJlbnQsICJzaW1wbGUtYnVzIikpCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIGZhbHNl OworfQorCitzdGF0aWMgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmdldF9lbmNsb3NpbmdfcGxhdGZv cm1fZGV2KAorCQkJCQkJc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSkKK3sKKwlzdHJ1Y3Qg Zndub2RlX2hhbmRsZSAqaXRlciwgKm5vZGUgPSBOVUxMOworCisJZm9yIChpdGVyID0gZndub2Rl OworCSAgICAgaXRlciAmJiBmd25vZGVfZ2V0X3BhcmVudChpdGVyKTsKKwkgICAgIGl0ZXIgPSBm d25vZGVfZ2V0X3BhcmVudChpdGVyKSkgeworCisJCS8qCisJCSAqIElmIHdlIGFscmVhZHkgaGF2 ZSBhIHBsYXRmb3JtIGRldmljZSBhbmQgYW4gYW5jZXN0b3IgaXMKKwkJICogYWxyZWFkeSBib3Vu ZCwgdGhlIGZpcnN0IGlzIHRoZSBvbmUgd2Ugd2FudCB0byBwcm9iZS4KKwkJICovCisJCWlmIChu b2RlICYmIGZ3bm9kZV9pc19ib3VuZChpdGVyKSkKKwkJCWJyZWFrOworCisJCWlmIChmd25vZGVf aXNfcGxhdGZvcm0oaXRlcikpCisJCQlub2RlID0gaXRlcjsKKwl9CisKKwlyZXR1cm4gbm9kZTsK K30KKworc3RhdGljIGJvb2wgY2hlY2tfZGVwZW5kZW5jeShzdHJ1Y3QgZndub2RlX2hhbmRsZSAq Zndub2RlKQoreworCXN0cnVjdCBmd25vZGVfaGFuZGxlICp0YXJnZXQ7CisJc3RydWN0IGRldmlj ZSAqZGV2OworCisJaWYgKCFmd25vZGUpCisJCXJldHVybiB0cnVlOworCisJdGFyZ2V0ID0gZ2V0 X2VuY2xvc2luZ19wbGF0Zm9ybV9kZXYoZndub2RlKTsKKwlpZiAoIXRhcmdldCkKKwkJcmV0dXJu IHRydWU7CisKKwlkZXYgPSBidXNfZmluZF9kZXZpY2UoJnBsYXRmb3JtX2J1c190eXBlLCBOVUxM LCB0YXJnZXQsIGZ3bm9kZV9tYXRjaCk7CisJaWYgKCFkZXYpIHsKKwkJcHJfZGVidWcoIkNvdWxk bid0IGZpbmQgZGV2aWNlIGZvciAlc1xuIiwKKwkJCSBmd25vZGVfZ2V0X25hbWUoZndub2RlKSk7 CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKgorCSAqIERldmljZSBpcyBib3VuZCBvciBpcyBi ZWluZyBwcm9iZWQgcmlnaHQgbm93LiBJZiB3ZSBoYXZlIGJhZCBsdWNrCisJICogYW5kIHRoZSBk ZXBlbmRlbmN5IGlzbid0IHJlYWR5IHdoZW4gaXQncyBuZWVkZWQsIGRlZmVycmVkIHByb2JlCisJ ICogd2lsbCBzYXZlIHVzLgorCSAqLworCWlmIChkZXYtPmRyaXZlcikKKwkJcmV0dXJuIHRydWU7 CisKKwlidXNfcHJvYmVfZGV2aWNlKGRldik7CisKKwkvKiBJZiB0aGUgZGVwZW5kZW5jeSBoYXNu J3QgZmluaXNoZWQgcHJvYmluZywgd2UnbGwgd2FudCBhIHdhcm5pbmcgKi8KKwlyZXR1cm4gZGV2 aWNlX2lzX2JvdW5kKGRldik7Cit9CisKK3N0YXRpYyB2b2lkIGNoZWNrX2RlcGVuZGVuY2llcyhz dHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGZ3bm9kZV9kZXBlbmRlbmN5ICpkZXAsICp0 bXA7CisJTElTVF9IRUFEKGRlcHMpOworCisJaWYgKGRldi0+cGFyZW50ICYmICFjaGVja19kZXBl bmRlbmN5KGRldi0+cGFyZW50LT5md25vZGUpKQorCQlwcl9kZWJ1ZygiUGFyZW50ICclcycgb2Yg ZGV2aWNlICclcycgbm90IGF2YWlsYWJsZVxuIiwKKwkJCSBkZXZfbmFtZShkZXYtPnBhcmVudCks IGRldl9uYW1lKGRldikpOworCisJaWYgKCFkZXYtPmZ3bm9kZSkgeworCQlwcl9kZWJ1ZygiRGV2 aWNlICclcycgZG9lc24ndCBoYXZlIGEgZndub2RlXG4iLCBkZXZfbmFtZShkZXYpKTsKKwkJcmV0 dXJuOworCX0KKworCWZ3bm9kZV9nZXRfZGVwZW5kZW5jaWVzKGRldi0+Zndub2RlLCAmZGVwcyk7 CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZGVwLCB0bXAsICZkZXBzLCBkZXBlbmRlbmN5 KSB7CisJCWlmICghY2hlY2tfZGVwZW5kZW5jeShkZXAtPmZ3bm9kZSkpCisJCQlwcl9kZWJ1Zygi RGVwZW5kZW5jeSAnJXMnIG5vdCBhdmFpbGFibGVcbiIsCisJCQkJIGZ3bm9kZV9nZXRfbmFtZShk ZXAtPmZ3bm9kZSkpOworCisJCWxpc3RfZGVsKCZkZXAtPmRlcGVuZGVuY3kpOworCQlrZnJlZShk ZXApOworCX0KK30KKwogLyoKICAqIGRlZmVycmVkX3Byb2JlX3dvcmtfZnVuYygpIC0gUmV0cnkg cHJvYmluZyBkZXZpY2VzIGluIHRoZSBhY3RpdmUgbGlzdC4KICAqLwpAQCAtMjg3LDYgKzQyNCw4 IEBAIHN0YXRpYyBpbnQgcmVhbGx5X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRl dmljZV9kcml2ZXIgKmRydikKIAogCWRldi0+ZHJpdmVyID0gZHJ2OwogCisJY2hlY2tfZGVwZW5k ZW5jaWVzKGRldik7CisKIAkvKiBJZiB1c2luZyBwaW5jdHJsLCBiaW5kIHBpbnMgbm93IGJlZm9y ZSBwcm9iaW5nICovCiAJcmV0ID0gcGluY3RybF9iaW5kX3BpbnMoZGV2KTsKIAlpZiAocmV0KQot LSAKMi40LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==