Lines Matching refs:desc
181 struct i3c_device_desc *desc = &dev_list->i3c[i]; in i3c_dev_list_find() local
183 if (desc->pid == id->pid) { in i3c_dev_list_find()
184 ret = desc; in i3c_dev_list_find()
195 struct i3c_device_desc *desc; in i3c_dev_list_i3c_addr_find() local
199 I3C_BUS_FOR_EACH_I3CDEV(dev, desc) { in i3c_dev_list_i3c_addr_find()
200 if (desc->dynamic_addr == addr) { in i3c_dev_list_i3c_addr_find()
201 ret = desc; in i3c_dev_list_i3c_addr_find()
212 struct i3c_device_desc *desc; in i3c_dev_list_i3c_static_addr_find() local
216 I3C_BUS_FOR_EACH_I3CDEV(dev, desc) { in i3c_dev_list_i3c_static_addr_find()
217 if (desc->static_addr == addr) { in i3c_dev_list_i3c_static_addr_find()
218 ret = desc; in i3c_dev_list_i3c_static_addr_find()
229 struct i3c_i2c_device_desc *desc; in i3c_dev_list_i2c_addr_find() local
233 I3C_BUS_FOR_EACH_I2CDEV(dev, desc) { in i3c_dev_list_i2c_addr_find()
234 if (desc->addr == addr) { in i3c_dev_list_i2c_addr_find()
235 ret = desc; in i3c_dev_list_i2c_addr_find()
397 struct i3c_device_desc *desc; in i3c_sec_get_basic_info() local
421 desc = i3c_dev_list_find(&config->dev_list, &id); in i3c_sec_get_basic_info()
422 if (!desc) { in i3c_sec_get_basic_info()
424 desc = i3c_device_desc_alloc(); in i3c_sec_get_basic_info()
425 if (!desc) { in i3c_sec_get_basic_info()
428 *(uint64_t *)&desc->pid = id.pid; in i3c_sec_get_basic_info()
431 desc->dynamic_addr = dynamic_addr; in i3c_sec_get_basic_info()
432 desc->bcr = bcr; in i3c_sec_get_basic_info()
433 desc->dcr = dcr; in i3c_sec_get_basic_info()
440 ret = i3c_attach_i3c_device(desc); in i3c_sec_get_basic_info()
446 ret = i3c_device_adv_info_get(desc); in i3c_sec_get_basic_info()
553 struct i3c_device_desc *desc; in i3c_dev_list_daa_addr_helper() local
560 desc = i3c_dev_list_find(dev_list, &i3c_id); in i3c_dev_list_daa_addr_helper()
562 if (desc == NULL) { in i3c_dev_list_daa_addr_helper()
563 desc = i3c_device_desc_alloc(); in i3c_dev_list_daa_addr_helper()
565 if (must_match && (desc == NULL)) { in i3c_dev_list_daa_addr_helper()
577 if (desc != NULL && desc->dynamic_addr != 0U) { in i3c_dev_list_daa_addr_helper()
580 dyn_addr = desc->dynamic_addr; in i3c_dev_list_daa_addr_helper()
590 vendor_id, part_no, desc->dynamic_addr); in i3c_dev_list_daa_addr_helper()
600 if (desc != NULL && desc->init_dynamic_addr != 0U) { in i3c_dev_list_daa_addr_helper()
601 if (i3c_addr_slots_is_free(addr_slots, desc->init_dynamic_addr)) { in i3c_dev_list_daa_addr_helper()
602 dyn_addr = desc->init_dynamic_addr; in i3c_dev_list_daa_addr_helper()
620 *target = desc; in i3c_dev_list_daa_addr_helper()
857 struct i3c_device_desc *desc = &dev_list->i3c[i]; in i3c_bus_setdasa() local
865 if (desc->static_addr == 0U) { in i3c_bus_setdasa()
875 if ((desc->supports_setaasa) && ((desc->init_dynamic_addr == 0) || in i3c_bus_setdasa()
876 desc->init_dynamic_addr == desc->static_addr)) { in i3c_bus_setdasa()
881 LOG_DBG("SETDASA for 0x%x", desc->static_addr); in i3c_bus_setdasa()
887 if ((desc->init_dynamic_addr != 0) && in i3c_bus_setdasa()
888 (desc->init_dynamic_addr != desc->static_addr)) { in i3c_bus_setdasa()
890 desc->init_dynamic_addr)) { in i3c_bus_setdasa()
891 if (i3c_detach_i3c_device(desc) != 0) { in i3c_bus_setdasa()
892 LOG_ERR("Failed to detach %s", desc->dev->name); in i3c_bus_setdasa()
903 (desc->init_dynamic_addr ? desc->init_dynamic_addr : desc->static_addr) in i3c_bus_setdasa()
906 ret = i3c_ccc_do_setdasa(desc, dyn_addr); in i3c_bus_setdasa()
908 desc->dynamic_addr = dyn_addr.addr >> 1; in i3c_bus_setdasa()
909 if (desc->dynamic_addr != desc->static_addr) { in i3c_bus_setdasa()
910 if (i3c_reattach_i3c_device(desc, desc->static_addr) != 0) { in i3c_bus_setdasa()
911 LOG_ERR("Failed to reattach %s (%d)", desc->dev->name, ret); in i3c_bus_setdasa()
916 if (i3c_detach_i3c_device(desc) != 0) { in i3c_bus_setdasa()
917 LOG_ERR("Failed to detach %s (%d)", desc->dev->name, ret); in i3c_bus_setdasa()
919 LOG_ERR("SETDASA error on address 0x%x (%d)", desc->static_addr, ret); in i3c_bus_setdasa()
1076 struct i3c_device_desc *desc = &dev_list->i3c[i]; in i3c_bus_init() local
1081 if ((desc->supports_setaasa) && (desc->static_addr != 0) && in i3c_bus_init()
1082 ((desc->init_dynamic_addr == 0) || in i3c_bus_init()
1083 desc->init_dynamic_addr == desc->static_addr)) { in i3c_bus_init()
1084 desc->dynamic_addr = desc->static_addr; in i3c_bus_init()
1118 struct i3c_device_desc *desc = &dev_list->i3c[i]; in i3c_bus_init() local
1120 if (desc->dynamic_addr == 0U) { in i3c_bus_init()
1128 ret = (desc->static_addr == 0) ? i3c_device_adv_info_get(desc) in i3c_bus_init()
1129 : i3c_device_info_get(desc); in i3c_bus_init()
1131 LOG_ERR("Error getting device info for 0x%02x", desc->static_addr); in i3c_bus_init()
1134 desc->dynamic_addr, desc->bcr, desc->dcr, desc->data_length.mrl, in i3c_bus_init()
1135 desc->data_length.mwl, desc->data_length.max_ibi); in i3c_bus_init()