From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 89636D73E85 for ; Thu, 29 Jan 2026 18:19:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=wIdPwE+Cw15AAtT727HrquxcUQNBSjDfkwGyy9MSDPA=; b=zQelR5aoi5oghf QgBca2pvtQ6nE8bVl3InKA9yEeShU8JnZue+6bpWWTtLvCdkdYyxyhIhkhKbg4Lg88m8ezWyhUAvt kHfOS7UYOAqQQ9YOg5io2fXdiQbBTqOdVU3OZMgT8AIU2zx81/c/b/IpqURMxA6hK0nhLXMjQ8WMR A4aIb2pRuPLaxKFLvGKCcuy2izrt9CbogK0mSgR1WjTH8c7mrePZ54tDTXHmit4q3PFv08qC3r920 ZEsvFgG9JIr6ut8EyOmnd2w3hIWSHa8A6q2r7KdJOKVltE1EdsjJ4DX2W3ghGqfxzkc7gecTVxmz7 h95A6n6S2YZegC/0Vp2w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vlWbj-00000000VZC-1EbR; Thu, 29 Jan 2026 18:19:07 +0000 Received: from mgamail.intel.com ([192.198.163.18]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vlWbh-00000000VV8-0a3j for linux-i3c@lists.infradead.org; Thu, 29 Jan 2026 18:19:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1769710745; x=1801246745; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FvGsEFvSio7RVlbQNqHfD88CcH9KEbCthWMDWmb30mI=; b=fUWTOdaIm2ZN7IUZTIJHc/nl2Vhef4sFaNWHoOViEWj/FASlEi5qorOi r0cItqLN5uKp3YzfMHMeKqArZYlmNgDGB5aoxbNPVN9ZwfhpoVG+66b31 xRW7vse/vNeY+cFR2UY07DXP9zqaw951GsoY5EEju3RrNAiqqAeM6CdY5 /3zdjM8gUtZ5Y/u9RtwAaitdpiAZzbO2SIkoeqagIFz+DQk16I53Y29/V /8JO/4Txvkz266MdmeIPP8QPXmb/VVYMmzzUjlOgP3OQ4/mPQCxicFQFN conyqbQ79n7tHeFdIThnPjo4M0FsHUbxzhp3JwKgTN5oqRzQ7y6ghgA5E g==; X-CSE-ConnectionGUID: XobfYQJ4SqCJxq2WfevYng== X-CSE-MsgGUID: gNwISEYGS7K7RPF2av4HKw== X-IronPort-AV: E=McAfee;i="6800,10657,11686"; a="70158299" X-IronPort-AV: E=Sophos;i="6.21,261,1763452800"; d="scan'208";a="70158299" Received: from fmviesa007.fm.intel.com ([10.60.135.147]) by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jan 2026 10:19:05 -0800 X-CSE-ConnectionGUID: lCsLGKXRSg+yvE8TH/VaqA== X-CSE-MsgGUID: L9t24EcPR8mNFQ934HCgCg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,261,1763452800"; d="scan'208";a="208255305" Received: from egrumbac-mobl6.ger.corp.intel.com (HELO ahunter6-desk) ([10.245.245.96]) by fmviesa007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jan 2026 10:19:03 -0800 From: Adrian Hunter To: alexandre.belloni@bootlin.com Cc: Frank.Li@nxp.com, linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 5/7] i3c: mipi-i3c-hci: Allow parent to manage runtime PM Date: Thu, 29 Jan 2026 20:18:39 +0200 Message-ID: <20260129181841.130864-6-adrian.hunter@intel.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260129181841.130864-1-adrian.hunter@intel.com> References: <20260129181841.130864-1-adrian.hunter@intel.com> MIME-Version: 1.0 Organization: Intel Finland Oy, Registered Address: c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo, Business Identity Code: 0357606 - 4, Domiciled in Helsinki X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260129_101905_190574_CA33F461 X-CRM114-Status: GOOD ( 15.79 ) X-BeenThere: linux-i3c@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-i3c" Errors-To: linux-i3c-bounces+linux-i3c=archiver.kernel.org@lists.infradead.org U29tZSBwbGF0Zm9ybXMgaW1wbGVtZW50IHRoZSBNSVBJIEkzQyBIQ0kgTXVsdGktQnVzIEluc3Rh bmNlIGNhcGFiaWxpdHksCndoZXJlIGEgc2luZ2xlIHBhcmVudCBkZXZpY2UgaG9zdHMgbXVsdGlw bGUgSTNDIGNvbnRyb2xsZXIgaW5zdGFuY2VzLiAgSW4Kc3VjaCBkZXNpZ25zLCB0aGUgcGFyZW50 IC0gbm90IHRoZSBpbmRpdmlkdWFsIGNoaWxkIGluc3RhbmNlcyAtIG1heSBuZWVkIHRvCmNvb3Jk aW5hdGUgcnVudGltZSBQTSBzbyB0aGF0IGFsbCBjb250cm9sbGVycyBlbnRlciBsb3ctcG93ZXIg c3RhdGVzCnRvZ2V0aGVyLCBhbmQgYWxsIHJ1bnRpbWUgc3VzcGVuZCBjYWxsYmFja3MgYXJlIGlu dm9rZWQgaW4gYSBjb250cm9sbGVkCmFuZCBzeW5jaHJvbml6ZWQgbWFubmVyLgoKRm9yIGV4YW1w bGUsIGlmIHRoZSBwYXJlbnQgZW5hYmxlcyBJQkktd2FrZXVwIHdoZW4gdHJhbnNpdGlvbmluZyBp bnRvIGEKbG93LXBvd2VyIHN0YXRlLCBldmVyeSBidXMgaW5zdGFuY2UgbXVzdCByZW1haW4gYWJs ZSB0byByZWNlaXZlIElCSXMgdXAKdW50aWwgdGhhdCBwb2ludC4gIFRoaXMgcmVxdWlyZXMgZGVm ZXJyaW5nIHRoZSBpbmRpdmlkdWFsIGNvbnRyb2xsZXJz4oCZCnJ1bnRpbWUgc3VzcGVuZCBjYWxs YmFja3MgKHdoaWNoIGRpc2FibGUgYnVzIGFjdGl2aXR5KSB1bnRpbCB0aGUgcGFyZW50CmRlY2lk ZXMgaXQgaXMgc2FmZSBmb3IgYWxsIGluc3RhbmNlcyB0byBzdXNwZW5kIHRvZ2V0aGVyLgoKVG8g c3VwcG9ydCB0aGlzIHVzYWdlIG1vZGVsOgoKICAqIEV4cG9ydCB0aGUgY29udHJvbGxlcidzIHJ1 bnRpbWUgUE0gc3VzcGVuZC9yZXN1bWUgY2FsbGJhY2tzIHNvIHRoYXQKICAgIHRoZSBwYXJlbnQg Y2FuIGludm9rZSB0aGVtIGRpcmVjdGx5LgoKICAqIEFkZCBhIG5ldyBxdWlyaywgSENJX1FVSVJL X1JQTV9QQVJFTlRfTUFOQUdFRCwgd2hpY2ggZGVzaWduYXRlcyB0aGUKICAgIHBhcmVudCBkZXZp Y2UgYXMgdGhlIGNvbnRyb2xsZXLigJlzIHJ1bnRpbWUgUE0gZGV2aWNlIChycG1fZGV2KS4gIFdo ZW4KICAgIHVzZWQgd2l0aG91dCBIQ0lfUVVJUktfUlBNX0FMTE9XRUQsIHRoaXMgYWxzbyBwcmV2 ZW50cyB0aGUgY2hpbGQKICAgIGluc3RhbmNl4oCZcyBzeXN0ZW0tc3VzcGVuZCBjYWxsYmFja3Mg ZnJvbSB1c2luZwogICAgcG1fcnVudGltZV9mb3JjZV9zdXNwZW5kKCkvcG1fcnVudGltZV9mb3Jj ZV9yZXN1bWUoKSwgc2luY2UgcnVudGltZQogICAgUE0gaXMgbWFuYWdlZCBlbnRpcmVseSBieSB0 aGUgcGFyZW50LgoKICAqIE1vdmUgREVGQVVMVF9BVVRPU1VTUEVORF9ERUxBWV9NUyBpbnRvIHRo ZSBoZWFkZXIgc28gaXQgY2FuIGJlIHNoYXJlZAogICAgYnkgcGFyZW50LW1hbmFnZWQgUE0gaW1w bGVtZW50YXRpb25zLgoKVGhlIG5ldyBxdWlyayBhbGxvd3MgcGxhdGZvcm1zIHdpdGggbXVsdGkt YnVzIHBhcmVudC1tYW5hZ2VkIFBNCmluZnJhc3RydWN0dXJlIHRvIGNvcnJlY3RseSBjb29yZGlu YXRlIHJ1bnRpbWUgUE0gYWNyb3NzIGFsbCBJM0MgSENJCmluc3RhbmNlcy4KClNpZ25lZC1vZmYt Ynk6IEFkcmlhbiBIdW50ZXIgPGFkcmlhbi5odW50ZXJAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv aTNjL21hc3Rlci9taXBpLWkzYy1oY2kvY29yZS5jIHwgMjUgKysrKysrKysrKysrKysrKy0tLS0t LS0tLQogZHJpdmVycy9pM2MvbWFzdGVyL21pcGktaTNjLWhjaS9oY2kuaCAgfCAgNiArKysrKysK IDIgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2kzYy9tYXN0ZXIvbWlwaS1pM2MtaGNpL2NvcmUuYyBiL2RyaXZlcnMv aTNjL21hc3Rlci9taXBpLWkzYy1oY2kvY29yZS5jCmluZGV4IGVjNGRiZTY0YzM1ZS4uY2I5NzRi MGY5ZTE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kzYy9tYXN0ZXIvbWlwaS1pM2MtaGNpL2NvcmUu YworKysgYi9kcml2ZXJzL2kzYy9tYXN0ZXIvbWlwaS1pM2MtaGNpL2NvcmUuYwpAQCAtNzMzLDcg KzczMyw3IEBAIHN0YXRpYyBpbnQgaTNjX2hjaV9yZXNldF9hbmRfaW5pdChzdHJ1Y3QgaTNjX2hj aSAqaGNpKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGkzY19oY2lfcnVudGltZV9zdXNw ZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKK2ludCBpM2NfaGNpX3J1bnRpbWVfc3VzcGVuZChzdHJ1 Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGkzY19oY2kgKmhjaSA9IGRldl9nZXRfZHJ2ZGF0 YShkZXYpOwogCWludCByZXQ7CkBAIC03NDYsOCArNzQ2LDkgQEAgc3RhdGljIGludCBpM2NfaGNp X3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAKIAlyZXR1cm4gMDsKIH0KK0VY UE9SVF9TWU1CT0xfR1BMKGkzY19oY2lfcnVudGltZV9zdXNwZW5kKTsKIAotc3RhdGljIGludCBp M2NfaGNpX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKK2ludCBpM2NfaGNpX3J1 bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgaTNjX2hjaSAqaGNp ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJaW50IHJldDsKQEAgLTc2OCw2ICs3NjksNyBAQCBz dGF0aWMgaW50IGkzY19oY2lfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogCiAJ cmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChpM2NfaGNpX3J1bnRpbWVfcmVzdW1lKTsK IAogc3RhdGljIGludCBpM2NfaGNpX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogewpAQCAt Nzg0LDEyICs3ODYsMTQgQEAgc3RhdGljIGludCBpM2NfaGNpX3Jlc3VtZV9jb21tb24oc3RydWN0 IGRldmljZSAqZGV2LCBib29sIHJzdGRhYSkKIAlzdHJ1Y3QgaTNjX2hjaSAqaGNpID0gZGV2X2dl dF9kcnZkYXRhKGRldik7CiAJaW50IHJldDsKIAotCWlmICghKGhjaS0+cXVpcmtzICYgSENJX1FV SVJLX1JQTV9BTExPV0VEKSkKLQkJcmV0dXJuIDA7CisJaWYgKCEoaGNpLT5xdWlya3MgJiBIQ0lf UVVJUktfUlBNX1BBUkVOVF9NQU5BR0VEKSkgeworCQlpZiAoIShoY2ktPnF1aXJrcyAmIEhDSV9R VUlSS19SUE1fQUxMT1dFRCkpCisJCQlyZXR1cm4gMDsKIAotCXJldCA9IHBtX3J1bnRpbWVfZm9y Y2VfcmVzdW1lKGRldik7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKKwkJcmV0ID0gcG1fcnVu dGltZV9mb3JjZV9yZXN1bWUoZGV2KTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQog CiAJcmV0ID0gaTNjX21hc3Rlcl9kb19kYWFfZXh0KCZoY2ktPm1hc3RlciwgcnN0ZGFhKTsKIAlp ZiAocmV0KQpAQCAtODEyLDggKzgxNiw2IEBAIHN0YXRpYyBpbnQgaTNjX2hjaV9yZXN0b3JlKHN0 cnVjdCBkZXZpY2UgKmRldikKIAlyZXR1cm4gaTNjX2hjaV9yZXN1bWVfY29tbW9uKGRldiwgdHJ1 ZSk7CiB9CiAKLSNkZWZpbmUgREVGQVVMVF9BVVRPU1VTUEVORF9ERUxBWV9NUyAxMDAwCi0KIHN0 YXRpYyB2b2lkIGkzY19oY2lfcnBtX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3Ry dWN0IGkzY19oY2kgKmhjaSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwpAQCAtOTYyLDYgKzk2NCwx MSBAQCBzdGF0aWMgaW50IGkzY19oY2lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKIAlpZiAoaGNpLT5xdWlya3MgJiBIQ0lfUVVJUktfUlBNX0lCSV9BTExPV0VEKQogCQloY2kt Pm1hc3Rlci5ycG1faWJpX2FsbG93ZWQgPSB0cnVlOwogCisJaWYgKGhjaS0+cXVpcmtzICYgSENJ X1FVSVJLX1JQTV9QQVJFTlRfTUFOQUdFRCkgeworCQloY2ktPm1hc3Rlci5ycG1fZGV2ID0gcGRl di0+ZGV2LnBhcmVudDsKKwkJaGNpLT5tYXN0ZXIucnBtX2FsbG93ZWQgPSB0cnVlOworCX0KKwog CXJldHVybiBpM2NfbWFzdGVyX3JlZ2lzdGVyKCZoY2ktPm1hc3RlciwgJnBkZXYtPmRldiwgJmkz Y19oY2lfb3BzLCBmYWxzZSk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTNjL21hc3Rlci9t aXBpLWkzYy1oY2kvaGNpLmggYi9kcml2ZXJzL2kzYy9tYXN0ZXIvbWlwaS1pM2MtaGNpL2hjaS5o CmluZGV4IDgxOTMyOGE4NWI4NC4uZDBlN2FkNThhYzE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kz Yy9tYXN0ZXIvbWlwaS1pM2MtaGNpL2hjaS5oCisrKyBiL2RyaXZlcnMvaTNjL21hc3Rlci9taXBp LWkzYy1oY2kvaGNpLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBzdHJ1Y3QgaTNjX2hjaV9kZXZfZGF0 YSB7CiAjZGVmaW5lIEhDSV9RVUlSS19SRVNQX0JVRl9USExECQlCSVQoNCkgIC8qIFNldCByZXNw IGJ1ZiB0aGxkIHRvIDAgZm9yIEFNRCBwbGF0Zm9ybXMgKi8KICNkZWZpbmUgSENJX1FVSVJLX1JQ TV9BTExPV0VECQlCSVQoNSkgIC8qIFJ1bnRpbWUgUE0gYWxsb3dlZCAqLwogI2RlZmluZSBIQ0lf UVVJUktfUlBNX0lCSV9BTExPV0VECUJJVCg2KSAgLyogSUJJIGFuZCBIb3QtSm9pbiBhbGxvd2Vk IHdoaWxlIHJ1bnRpbWUgc3VzcGVuZGVkICovCisjZGVmaW5lIEhDSV9RVUlSS19SUE1fUEFSRU5U X01BTkFHRUQJQklUKDcpICAvKiBSdW50aW1lIFBNIG1hbmFnZWQgYnkgcGFyZW50IGRldmljZSAq LwogCiAvKiBnbG9iYWwgZnVuY3Rpb25zICovCiB2b2lkIG1pcGlfaTNjX2hjaV9yZXN1bWUoc3Ry dWN0IGkzY19oY2kgKmhjaSk7CkBAIC0xNTYsNCArMTU3LDkgQEAgdm9pZCBhbWRfc2V0X29kX3Bw X3RpbWluZyhzdHJ1Y3QgaTNjX2hjaSAqaGNpKTsKIHZvaWQgYW1kX3NldF9yZXNwX2J1Zl90aGxk KHN0cnVjdCBpM2NfaGNpICpoY2kpOwogdm9pZCBpM2NfaGNpX3N5bmNfaXJxX2luYWN0aXZlKHN0 cnVjdCBpM2NfaGNpICpoY2kpOwogCisjZGVmaW5lIERFRkFVTFRfQVVUT1NVU1BFTkRfREVMQVlf TVMgMTAwMAorCitpbnQgaTNjX2hjaV9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2 KTsKK2ludCBpM2NfaGNpX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldik7CisKICNl bmRpZgotLSAKMi41MS4wCgoKLS0gCmxpbnV4LWkzYyBtYWlsaW5nIGxpc3QKbGludXgtaTNjQGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1pM2MK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 57ECD2EC559; Thu, 29 Jan 2026 18:19:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769710749; cv=none; b=kOvKgJYnIE1/4VQogD085rgA6a6qCwn90d+WsfBwgdGySO0sucxucLOlGXtDsM7BlHkXDq83/O9mBOQs2j9RTqR4Zf+fXOmJdCK2pYjhs9uev6MuMjfXNQBkwCtljnPeaxBLkwcK4rBLZ9fluk9LNSwkUlziW3o5xvWFAo6pUtg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769710749; c=relaxed/simple; bh=FvGsEFvSio7RVlbQNqHfD88CcH9KEbCthWMDWmb30mI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=D4NNYKsQlSRZ/vDOswE2V2UkwOIMXK1iQJXj+hB9k2N0Ild8lcfpO20XSez/6mQd48Tl+34MBrGxX6uomufbnBMK3haFjUzmVLv5yRz8UglYfDfxM1Bz3mFZPOfbtxWNFnE7B1IpVmqwl6WSsyBOMfZyvoVxZfWVOSWjsCMR+sQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=fUWTOdaI; arc=none smtp.client-ip=192.198.163.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="fUWTOdaI" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1769710745; x=1801246745; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FvGsEFvSio7RVlbQNqHfD88CcH9KEbCthWMDWmb30mI=; b=fUWTOdaIm2ZN7IUZTIJHc/nl2Vhef4sFaNWHoOViEWj/FASlEi5qorOi r0cItqLN5uKp3YzfMHMeKqArZYlmNgDGB5aoxbNPVN9ZwfhpoVG+66b31 xRW7vse/vNeY+cFR2UY07DXP9zqaw951GsoY5EEju3RrNAiqqAeM6CdY5 /3zdjM8gUtZ5Y/u9RtwAaitdpiAZzbO2SIkoeqagIFz+DQk16I53Y29/V /8JO/4Txvkz266MdmeIPP8QPXmb/VVYMmzzUjlOgP3OQ4/mPQCxicFQFN conyqbQ79n7tHeFdIThnPjo4M0FsHUbxzhp3JwKgTN5oqRzQ7y6ghgA5E g==; X-CSE-ConnectionGUID: VSH9IuHoTMacdAKI61pEmw== X-CSE-MsgGUID: QhFWryidQe2r5FqNmY/3Vw== X-IronPort-AV: E=McAfee;i="6800,10657,11686"; a="70158297" X-IronPort-AV: E=Sophos;i="6.21,261,1763452800"; d="scan'208";a="70158297" Received: from fmviesa007.fm.intel.com ([10.60.135.147]) by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jan 2026 10:19:05 -0800 X-CSE-ConnectionGUID: lCsLGKXRSg+yvE8TH/VaqA== X-CSE-MsgGUID: L9t24EcPR8mNFQ934HCgCg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,261,1763452800"; d="scan'208";a="208255305" Received: from egrumbac-mobl6.ger.corp.intel.com (HELO ahunter6-desk) ([10.245.245.96]) by fmviesa007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jan 2026 10:19:03 -0800 From: Adrian Hunter To: alexandre.belloni@bootlin.com Cc: Frank.Li@nxp.com, linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 5/7] i3c: mipi-i3c-hci: Allow parent to manage runtime PM Date: Thu, 29 Jan 2026 20:18:39 +0200 Message-ID: <20260129181841.130864-6-adrian.hunter@intel.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260129181841.130864-1-adrian.hunter@intel.com> References: <20260129181841.130864-1-adrian.hunter@intel.com> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Organization: Intel Finland Oy, Registered Address: c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Content-Transfer-Encoding: 8bit Some platforms implement the MIPI I3C HCI Multi-Bus Instance capability, where a single parent device hosts multiple I3C controller instances. In such designs, the parent - not the individual child instances - may need to coordinate runtime PM so that all controllers enter low-power states together, and all runtime suspend callbacks are invoked in a controlled and synchronized manner. For example, if the parent enables IBI-wakeup when transitioning into a low-power state, every bus instance must remain able to receive IBIs up until that point. This requires deferring the individual controllers’ runtime suspend callbacks (which disable bus activity) until the parent decides it is safe for all instances to suspend together. To support this usage model: * Export the controller's runtime PM suspend/resume callbacks so that the parent can invoke them directly. * Add a new quirk, HCI_QUIRK_RPM_PARENT_MANAGED, which designates the parent device as the controller’s runtime PM device (rpm_dev). When used without HCI_QUIRK_RPM_ALLOWED, this also prevents the child instance’s system-suspend callbacks from using pm_runtime_force_suspend()/pm_runtime_force_resume(), since runtime PM is managed entirely by the parent. * Move DEFAULT_AUTOSUSPEND_DELAY_MS into the header so it can be shared by parent-managed PM implementations. The new quirk allows platforms with multi-bus parent-managed PM infrastructure to correctly coordinate runtime PM across all I3C HCI instances. Signed-off-by: Adrian Hunter --- drivers/i3c/master/mipi-i3c-hci/core.c | 25 ++++++++++++++++--------- drivers/i3c/master/mipi-i3c-hci/hci.h | 6 ++++++ 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/drivers/i3c/master/mipi-i3c-hci/core.c b/drivers/i3c/master/mipi-i3c-hci/core.c index ec4dbe64c35e..cb974b0f9e17 100644 --- a/drivers/i3c/master/mipi-i3c-hci/core.c +++ b/drivers/i3c/master/mipi-i3c-hci/core.c @@ -733,7 +733,7 @@ static int i3c_hci_reset_and_init(struct i3c_hci *hci) return 0; } -static int i3c_hci_runtime_suspend(struct device *dev) +int i3c_hci_runtime_suspend(struct device *dev) { struct i3c_hci *hci = dev_get_drvdata(dev); int ret; @@ -746,8 +746,9 @@ static int i3c_hci_runtime_suspend(struct device *dev) return 0; } +EXPORT_SYMBOL_GPL(i3c_hci_runtime_suspend); -static int i3c_hci_runtime_resume(struct device *dev) +int i3c_hci_runtime_resume(struct device *dev) { struct i3c_hci *hci = dev_get_drvdata(dev); int ret; @@ -768,6 +769,7 @@ static int i3c_hci_runtime_resume(struct device *dev) return 0; } +EXPORT_SYMBOL_GPL(i3c_hci_runtime_resume); static int i3c_hci_suspend(struct device *dev) { @@ -784,12 +786,14 @@ static int i3c_hci_resume_common(struct device *dev, bool rstdaa) struct i3c_hci *hci = dev_get_drvdata(dev); int ret; - if (!(hci->quirks & HCI_QUIRK_RPM_ALLOWED)) - return 0; + if (!(hci->quirks & HCI_QUIRK_RPM_PARENT_MANAGED)) { + if (!(hci->quirks & HCI_QUIRK_RPM_ALLOWED)) + return 0; - ret = pm_runtime_force_resume(dev); - if (ret) - return ret; + ret = pm_runtime_force_resume(dev); + if (ret) + return ret; + } ret = i3c_master_do_daa_ext(&hci->master, rstdaa); if (ret) @@ -812,8 +816,6 @@ static int i3c_hci_restore(struct device *dev) return i3c_hci_resume_common(dev, true); } -#define DEFAULT_AUTOSUSPEND_DELAY_MS 1000 - static void i3c_hci_rpm_enable(struct device *dev) { struct i3c_hci *hci = dev_get_drvdata(dev); @@ -962,6 +964,11 @@ static int i3c_hci_probe(struct platform_device *pdev) if (hci->quirks & HCI_QUIRK_RPM_IBI_ALLOWED) hci->master.rpm_ibi_allowed = true; + if (hci->quirks & HCI_QUIRK_RPM_PARENT_MANAGED) { + hci->master.rpm_dev = pdev->dev.parent; + hci->master.rpm_allowed = true; + } + return i3c_master_register(&hci->master, &pdev->dev, &i3c_hci_ops, false); } diff --git a/drivers/i3c/master/mipi-i3c-hci/hci.h b/drivers/i3c/master/mipi-i3c-hci/hci.h index 819328a85b84..d0e7ad58ac15 100644 --- a/drivers/i3c/master/mipi-i3c-hci/hci.h +++ b/drivers/i3c/master/mipi-i3c-hci/hci.h @@ -147,6 +147,7 @@ struct i3c_hci_dev_data { #define HCI_QUIRK_RESP_BUF_THLD BIT(4) /* Set resp buf thld to 0 for AMD platforms */ #define HCI_QUIRK_RPM_ALLOWED BIT(5) /* Runtime PM allowed */ #define HCI_QUIRK_RPM_IBI_ALLOWED BIT(6) /* IBI and Hot-Join allowed while runtime suspended */ +#define HCI_QUIRK_RPM_PARENT_MANAGED BIT(7) /* Runtime PM managed by parent device */ /* global functions */ void mipi_i3c_hci_resume(struct i3c_hci *hci); @@ -156,4 +157,9 @@ void amd_set_od_pp_timing(struct i3c_hci *hci); void amd_set_resp_buf_thld(struct i3c_hci *hci); void i3c_hci_sync_irq_inactive(struct i3c_hci *hci); +#define DEFAULT_AUTOSUSPEND_DELAY_MS 1000 + +int i3c_hci_runtime_suspend(struct device *dev); +int i3c_hci_runtime_resume(struct device *dev); + #endif -- 2.51.0