Lines Matching refs:aux
174 static int drm_dp_dpcd_access(struct drm_dp_aux *aux, u8 request, in drm_dp_dpcd_access() argument
195 mutex_lock(&aux->hw_mutex); in drm_dp_dpcd_access()
196 err = aux->transfer(aux, &msg); in drm_dp_dpcd_access()
197 mutex_unlock(&aux->hw_mutex); in drm_dp_dpcd_access()
239 ssize_t drm_dp_dpcd_read(struct drm_dp_aux *aux, unsigned int offset, in drm_dp_dpcd_read() argument
242 return drm_dp_dpcd_access(aux, DP_AUX_NATIVE_READ, offset, buffer, in drm_dp_dpcd_read()
261 ssize_t drm_dp_dpcd_write(struct drm_dp_aux *aux, unsigned int offset, in drm_dp_dpcd_write() argument
264 return drm_dp_dpcd_access(aux, DP_AUX_NATIVE_WRITE, offset, buffer, in drm_dp_dpcd_write()
277 int drm_dp_dpcd_read_link_status(struct drm_dp_aux *aux, in drm_dp_dpcd_read_link_status() argument
280 return drm_dp_dpcd_read(aux, DP_LANE0_1_STATUS, status, in drm_dp_dpcd_read_link_status()
296 int drm_dp_link_probe(struct drm_dp_aux *aux, struct drm_dp_link *link) in drm_dp_link_probe() argument
303 err = drm_dp_dpcd_read(aux, DP_DPCD_REV, values, sizeof(values)); in drm_dp_link_probe()
325 int drm_dp_link_power_up(struct drm_dp_aux *aux, struct drm_dp_link *link) in drm_dp_link_power_up() argument
334 err = drm_dp_dpcd_readb(aux, DP_SET_POWER, &value); in drm_dp_link_power_up()
341 err = drm_dp_dpcd_writeb(aux, DP_SET_POWER, value); in drm_dp_link_power_up()
363 int drm_dp_link_power_down(struct drm_dp_aux *aux, struct drm_dp_link *link) in drm_dp_link_power_down() argument
372 err = drm_dp_dpcd_readb(aux, DP_SET_POWER, &value); in drm_dp_link_power_down()
379 err = drm_dp_dpcd_writeb(aux, DP_SET_POWER, value); in drm_dp_link_power_down()
394 int drm_dp_link_configure(struct drm_dp_aux *aux, struct drm_dp_link *link) in drm_dp_link_configure() argument
405 err = drm_dp_dpcd_write(aux, DP_LINK_BW_SET, values, sizeof(values)); in drm_dp_link_configure()
433 static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg) in drm_dp_i2c_do_msg() argument
444 mutex_lock(&aux->hw_mutex); in drm_dp_i2c_do_msg()
445 ret = aux->transfer(aux, msg); in drm_dp_i2c_do_msg()
446 mutex_unlock(&aux->hw_mutex); in drm_dp_i2c_do_msg()
497 aux->i2c_nack_count++; in drm_dp_i2c_do_msg()
502 aux->i2c_defer_count++; in drm_dp_i2c_do_msg()
521 static int drm_dp_i2c_drain_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *orig_msg) in drm_dp_i2c_drain_msg() argument
527 err = drm_dp_i2c_do_msg(aux, &msg); in drm_dp_i2c_drain_msg()
557 struct drm_dp_aux *aux = adapter->algo_data; in drm_dp_i2c_xfer() local
579 err = drm_dp_i2c_do_msg(aux, &msg); in drm_dp_i2c_xfer()
591 err = drm_dp_i2c_drain_msg(aux, &msg); in drm_dp_i2c_xfer()
608 (void)drm_dp_i2c_do_msg(aux, &msg); in drm_dp_i2c_xfer()
624 int drm_dp_aux_register(struct drm_dp_aux *aux) in drm_dp_aux_register() argument
626 mutex_init(&aux->hw_mutex); in drm_dp_aux_register()
628 aux->ddc.algo = &drm_dp_i2c_algo; in drm_dp_aux_register()
629 aux->ddc.algo_data = aux; in drm_dp_aux_register()
630 aux->ddc.retries = 3; in drm_dp_aux_register()
632 aux->ddc.class = I2C_CLASS_DDC; in drm_dp_aux_register()
633 aux->ddc.owner = THIS_MODULE; in drm_dp_aux_register()
634 aux->ddc.dev.parent = aux->dev; in drm_dp_aux_register()
635 aux->ddc.dev.of_node = aux->dev->of_node; in drm_dp_aux_register()
637 strlcpy(aux->ddc.name, aux->name ? aux->name : dev_name(aux->dev), in drm_dp_aux_register()
638 sizeof(aux->ddc.name)); in drm_dp_aux_register()
640 return i2c_add_adapter(&aux->ddc); in drm_dp_aux_register()
648 void drm_dp_aux_unregister(struct drm_dp_aux *aux) in drm_dp_aux_unregister() argument
650 i2c_del_adapter(&aux->ddc); in drm_dp_aux_unregister()