Lines Matching refs:isp4_platform
259 static void instantiate_isp_i2c_client(struct amdisp_platform *isp4_platform, in instantiate_isp_i2c_client() argument
262 struct i2c_board_info *info = &isp4_platform->board_info; in instantiate_isp_i2c_client()
265 guard(mutex)(&isp4_platform->lock); in instantiate_isp_i2c_client()
267 if (isp4_platform->i2c_dev) in instantiate_isp_i2c_client()
275 isp4_platform->i2c_dev = i2c_dev; in instantiate_isp_i2c_client()
281 struct amdisp_platform *isp4_platform = in isp_i2c_bus_notify() local
293 instantiate_isp_i2c_client(isp4_platform, adap); in isp_i2c_bus_notify()
300 scoped_guard(mutex, &isp4_platform->lock) { in isp_i2c_bus_notify()
301 if (isp4_platform->i2c_dev == client) { in isp_i2c_bus_notify()
303 isp4_platform->i2c_dev = NULL; in isp_i2c_bus_notify()
317 struct amdisp_platform *isp4_platform; in prepare_amdisp_platform() local
320 isp4_platform = devm_kzalloc(dev, sizeof(*isp4_platform), GFP_KERNEL); in prepare_amdisp_platform()
321 if (!isp4_platform) in prepare_amdisp_platform()
324 ret = devm_mutex_init(dev, &isp4_platform->lock); in prepare_amdisp_platform()
328 isp4_platform->board_info.dev_name = src->board_info.dev_name; in prepare_amdisp_platform()
329 strscpy(isp4_platform->board_info.type, src->board_info.type); in prepare_amdisp_platform()
330 isp4_platform->board_info.addr = src->board_info.addr; in prepare_amdisp_platform()
331 isp4_platform->pinfo = src; in prepare_amdisp_platform()
338 isp4_platform->board_info.swnode = src->swnodes[6]; in prepare_amdisp_platform()
340 return isp4_platform; in prepare_amdisp_platform()
346 struct amdisp_platform *isp4_platform = data; in try_to_instantiate_i2c_client() local
348 if (!isp4_platform || !adap) in try_to_instantiate_i2c_client()
354 instantiate_isp_i2c_client(isp4_platform, adap); in try_to_instantiate_i2c_client()
362 struct amdisp_platform *isp4_platform; in amd_isp_probe() local
371 isp4_platform = prepare_amdisp_platform(&pdev->dev, pinfo); in amd_isp_probe()
372 if (IS_ERR(isp4_platform)) in amd_isp_probe()
373 return dev_err_probe(&pdev->dev, PTR_ERR(isp4_platform), in amd_isp_probe()
376 isp4_platform->i2c_nb.notifier_call = isp_i2c_bus_notify; in amd_isp_probe()
377 ret = bus_register_notifier(&i2c_bus_type, &isp4_platform->i2c_nb); in amd_isp_probe()
386 i2c_for_each_dev(isp4_platform, try_to_instantiate_i2c_client); in amd_isp_probe()
388 platform_set_drvdata(pdev, isp4_platform); in amd_isp_probe()
392 software_node_unregister_node_group(isp4_platform->pinfo->swnodes); in amd_isp_probe()
398 struct amdisp_platform *isp4_platform = platform_get_drvdata(pdev); in amd_isp_remove() local
400 bus_unregister_notifier(&i2c_bus_type, &isp4_platform->i2c_nb); in amd_isp_remove()
401 i2c_unregister_device(isp4_platform->i2c_dev); in amd_isp_remove()
402 software_node_unregister_node_group(isp4_platform->pinfo->swnodes); in amd_isp_remove()