Re: [PATCH V3 08/14] i3c: master: Support IBI-based wakeup capability

From: Mukesh Savaliya

Date: Tue Aug 04 2026 - 14:23:56 EST




On 8/4/2026 7:08 PM, Adrian Hunter wrote:
[...]
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
index e7ea41007889..e6b320da475e 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -2110,6 +2110,13 @@ i3c_master_register_new_i3c_devs(struct i3c_master_controller *master)
if (desc->boardinfo)
device_set_node(&desc->dev->dev, desc->boardinfo->fwnode);
+ /*
+ * In the case of IBI wakeup, any IBI-capable device can
+ * wakeup.
you are registering a particular device to the master, so why "any IBI-capable device " ?

"If device has IBI capability, mark as wakeup capable" to simplify comment ?
+ */
+ if (master->ibi_wakeup && (desc->info.bcr & I3C_BCR_IBI_REQ_CAP))
+ device_set_wakeup_capable(&desc->dev->dev, true);
+
list_add_tail(&desc->dev->node, &i3c_unreg_devs);
}
diff --git a/include/linux/i3c/master.h b/include/linux/i3c/master.h
index 2b96c4ea75fb..16394aca7230 100644
--- a/include/linux/i3c/master.h
+++ b/include/linux/i3c/master.h
@@ -523,6 +523,7 @@ struct i3c_master_controller_ops {
* @hotjoin: true if the master support hotjoin
* @rpm_allowed: true if Runtime PM allowed
* @rpm_ibi_allowed: true if IBI and Hot-Join allowed while runtime suspended
+ * @ibi_wakeup: IBI can wakeup the system
* @shutting_down: set to true when master begins shutdown or unregister
* @boardinfo.i3c: list of I3C boardinfo objects
* @boardinfo.i2c: list of I2C boardinfo objects
@@ -562,6 +563,7 @@ struct i3c_master_controller {
unsigned int hotjoin: 1;
unsigned int rpm_allowed: 1;
unsigned int rpm_ibi_allowed: 1;
+ unsigned int ibi_wakeup: 1;
bool shutting_down;
struct {
struct list_head i3c;