Lines Matching refs:newdev
1797 struct i3c_dev_desc *newdev, *olddev; in i3c_master_add_i3c_dev_locked() local
1806 newdev = i3c_master_alloc_i3c_dev(master, &info); in i3c_master_add_i3c_dev_locked()
1807 if (IS_ERR(newdev)) in i3c_master_add_i3c_dev_locked()
1808 return PTR_ERR(newdev); in i3c_master_add_i3c_dev_locked()
1810 ret = i3c_master_attach_i3c_dev(master, newdev); in i3c_master_add_i3c_dev_locked()
1814 ret = i3c_master_retrieve_dev_info(newdev); in i3c_master_add_i3c_dev_locked()
1818 olddev = i3c_master_search_i3c_dev_duplicate(newdev); in i3c_master_add_i3c_dev_locked()
1820 newdev->boardinfo = olddev->boardinfo; in i3c_master_add_i3c_dev_locked()
1821 newdev->info.static_addr = olddev->info.static_addr; in i3c_master_add_i3c_dev_locked()
1822 newdev->dev = olddev->dev; in i3c_master_add_i3c_dev_locked()
1823 if (newdev->dev) in i3c_master_add_i3c_dev_locked()
1824 newdev->dev->desc = newdev; in i3c_master_add_i3c_dev_locked()
1853 ret = i3c_master_reattach_i3c_dev(newdev, old_dyn_addr); in i3c_master_add_i3c_dev_locked()
1867 if (old_dyn_addr && old_dyn_addr != newdev->info.dyn_addr) in i3c_master_add_i3c_dev_locked()
1869 else if (newdev->boardinfo && newdev->boardinfo->init_dyn_addr) in i3c_master_add_i3c_dev_locked()
1870 expected_dyn_addr = newdev->boardinfo->init_dyn_addr; in i3c_master_add_i3c_dev_locked()
1872 expected_dyn_addr = newdev->info.dyn_addr; in i3c_master_add_i3c_dev_locked()
1874 if (newdev->info.dyn_addr != expected_dyn_addr) { in i3c_master_add_i3c_dev_locked()
1880 newdev->info.dyn_addr, in i3c_master_add_i3c_dev_locked()
1883 old_dyn_addr = newdev->info.dyn_addr; in i3c_master_add_i3c_dev_locked()
1884 newdev->info.dyn_addr = expected_dyn_addr; in i3c_master_add_i3c_dev_locked()
1885 i3c_master_reattach_i3c_dev(newdev, old_dyn_addr); in i3c_master_add_i3c_dev_locked()
1889 master->bus.id, newdev->info.pid); in i3c_master_add_i3c_dev_locked()
1901 mutex_lock(&newdev->ibi_lock); in i3c_master_add_i3c_dev_locked()
1902 ret = i3c_dev_request_ibi_locked(newdev, &ibireq); in i3c_master_add_i3c_dev_locked()
1906 master->bus.id, newdev->info.pid); in i3c_master_add_i3c_dev_locked()
1908 ret = i3c_dev_enable_ibi_locked(newdev); in i3c_master_add_i3c_dev_locked()
1912 master->bus.id, newdev->info.pid); in i3c_master_add_i3c_dev_locked()
1914 mutex_unlock(&newdev->ibi_lock); in i3c_master_add_i3c_dev_locked()
1920 if (newdev->dev && newdev->dev->desc) in i3c_master_add_i3c_dev_locked()
1921 newdev->dev->desc = NULL; in i3c_master_add_i3c_dev_locked()
1923 i3c_master_detach_i3c_dev(newdev); in i3c_master_add_i3c_dev_locked()
1926 i3c_master_free_i3c_dev(newdev); in i3c_master_add_i3c_dev_locked()