Lines Matching refs:driver

58 	return strncmp(da->i2c_driver.driver.name, db->i2c_driver.driver.name,  in compare_i2c_encoders()
65 const struct drm_i2c_encoder_driver *const driver = n; in compare_i2c_encoder_key() local
68 return strncmp(driver->i2c_driver.driver.name, name, I2C_NAME_SIZE); in compare_i2c_encoder_key()
99 struct drm_i2c_encoder_driver *driver) in drm_i2c_encoder_register() argument
105 collision = rb_tree_insert_node(&drm_i2c_encoder_drivers.tree, driver); in drm_i2c_encoder_register()
106 if (collision != driver) in drm_i2c_encoder_register()
114 drm_i2c_encoder_unregister(struct drm_i2c_encoder_driver *driver) in drm_i2c_encoder_unregister() argument
118 KASSERT(driver->refcnt == 0); in drm_i2c_encoder_unregister()
121 rb_tree_remove_node(&drm_i2c_encoder_drivers.tree, driver); in drm_i2c_encoder_unregister()
134 struct drm_i2c_encoder_driver *driver; in drm_i2c_encoder_init() local
144 driver = rb_tree_find_node(&drm_i2c_encoder_drivers.tree, info->type); in drm_i2c_encoder_init()
146 if (driver == NULL) { in drm_i2c_encoder_init()
151 refcnt = driver->refcnt; in drm_i2c_encoder_init()
156 } while (atomic_cas_uint(&driver->refcnt, refcnt, refcnt + 1) in drm_i2c_encoder_init()
158 bus_priv->i2c_driver = driver; in drm_i2c_encoder_init()
164 ret = (*driver->encoder_init)(client, dev, slave); in drm_i2c_encoder_init()
178 atomic_dec_uint(&driver->refcnt); in drm_i2c_encoder_init()
191 struct drm_i2c_encoder_driver *const driver = bus_priv->i2c_driver; in drm_i2c_encoder_destroy() local
196 atomic_dec_uint(&driver->refcnt); in drm_i2c_encoder_destroy()