[PATCH v4 0/6] I3C device addresing adjustments

Przemysław Gaj
2019-12-10T10:15:38Z

This patch series is based on Vitor's Soares previous patch series.
I'm trying to meet requirements and comments which came up during the
code review.

Description related to things which were taken from v3:
Propagate i3c_boardinfo, if available, to i3c_dev_desc during
i3c_master_add_i3c_dev_locked(). This change will permit to describe
devices with a preferable dynamic address (important due to priority
reason) but without a static address in DT.

In addition, I'm improving the management of the Data Address Table in
DW I3C Master by keeping the free slots consecutive.

Sending the devices without DA in DEFSLVS frame will be fixed in separate
patch if needed.

There are also some improvements related to DT bindings documentation.

Changes in v4:
- Remove device detach/free
- Add PID check before registering the device
- Add pre-reservation of init_dyn_addr

Change in v3:
- Change cover letter
- Change commit message for patch 1
- Add Rob rb-tags

Change in v2:
- Move out detach/free the i3c_dev_desc from pre_assign_dyn_addr()
- Change i3c_master_search_i3c_boardinfo(newdev) to
i3c_master_init_i3c_dev_boardinfo(newdev)
- Add fixes, stable tags on patch 2
- Add a note for no guarantee of 'assigned-address' use

Przemysław Gaj (2):
i3c: master: pre-reserve boardinfo->init_dyn_addr when available
i3c: master: make sure the PID is set before registering the device

Vitor Soares (4):
i3c: master: make sure ->boardinfo is initialized in
add_i3c_dev_locked()
dt-bindings: i3c: Make 'assigned-address' valid if static address == 0
dt-bindings: i3c: add a note for no guarantee of 'assigned-address'
use
i3c: master: dw: reattach device on first available location of
address table

Documentation/devicetree/bindings/i3c/i3c.txt | 15 +++++++++++---
drivers/i3c/master.c | 29 +++++++++++++++++++++++++--
drivers/i3c/master/dw-i3c-master.c | 16 +++++++++++++++
3 files changed, 55 insertions(+), 5 deletions(-)
mode change 100644 => 100755 drivers/i3c/master.c