aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/i3c
diff options
context:
space:
mode:
authorBilly Tsai <billy_tsai@aspeedtech.com>2024-11-13 11:58:26 +0800
committerAlexandre Belloni <alexandre.belloni@bootlin.com>2024-11-18 14:28:01 +0100
commit2b50719dd92f4ba8feccb4542e675060241a4d27 (patch)
treedac905cde9e235bc1214692c78700320330b9d74 /drivers/i3c
parenti3c: dw: Add quirk to address OD/PP timing issue on AMD platform (diff)
downloadwireguard-linux-2b50719dd92f4ba8feccb4542e675060241a4d27.tar.xz
wireguard-linux-2b50719dd92f4ba8feccb4542e675060241a4d27.zip
i3c: mipi-i3c-hci: Support SETDASA CCC
When the I3C subsystem wants to assign a dynamic address using the SETDASA CCC, it needs to attach the I3C device with device info that includes only the static address. In the HCI, if the driver want to send this SETDASA CCC, a DAT entry is required to temporarily fill the device's static address into the dynamic address field. Afterward, the reattach API will be executed to update the DAT with the correct dynamic addrees value. Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com> Reviewed-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Link: https://lore.kernel.org/r/20241113035826.923918-1-billy_tsai@aspeedtech.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Diffstat (limited to 'drivers/i3c')
-rw-r--r--drivers/i3c/master/mipi-i3c-hci/core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/i3c/master/mipi-i3c-hci/core.c b/drivers/i3c/master/mipi-i3c-hci/core.c
index b190401c89c9..e6e482a259b4 100644
--- a/drivers/i3c/master/mipi-i3c-hci/core.c
+++ b/drivers/i3c/master/mipi-i3c-hci/core.c
@@ -436,7 +436,8 @@ static int i3c_hci_attach_i3c_dev(struct i3c_dev_desc *dev)
kfree(dev_data);
return ret;
}
- mipi_i3c_hci_dat_v1.set_dynamic_addr(hci, ret, dev->info.dyn_addr);
+ mipi_i3c_hci_dat_v1.set_dynamic_addr(hci, ret,
+ dev->info.dyn_addr ?: dev->info.static_addr);
dev_data->dat_idx = ret;
}
i3c_dev_set_master_data(dev, dev_data);