---
name: "struct_drm_dp_aux"
section: "9"
platform: "linux"
package: "linux-manual-3.16"
version: "3.16.56-1+deb8u1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/struct_drm_dp_aux"
---

# struct\_drm\_dp\_aux(9)

DisplayPort AUX channel

## NAME

struct\_drm\_dp\_aux - DisplayPort AUX channel

## SYNOPSIS

```
struct drm_dp_aux {
  const char * name;
  struct i2c_adapter ddc;
  struct device * dev;
  struct mutex hw_mutex;
  ssize_t (* transfer) (struct drm_dp_aux *aux,struct drm_dp_aux_msg *msg);
};
```

## MEMBERS

name

user-visible name of this AUX channel and the I2C-over-AUX adapter

ddc

I2C adapter that can be used for I2C-over-AUX communication

dev

pointer to struct device that is the parent for this AUX channel

hw\_mutex

internal mutex used for locking transfers

transfer

transfers a message representing a single AUX transaction

## DESCRIPTION

The .dev field should be set to a pointer to the device that implements the AUX channel.

The .name field may be used to specify the name of the I2C adapter. If set to NULL, **dev\_name** of .dev will be used.

Drivers provide a hardware-specific implementation of how transactions are executed via the .**transfer** function. A pointer to a drm\_dp\_aux\_msg structure describing the transaction is passed into this function. Upon success, the implementation should return the number of payload bytes that were transferred, or a negative error-code on failure. Helpers propagate errors from the .**transfer** function, with the exception of the -EBUSY error, which causes a transaction to be retried. On a short, helpers will return -EPROTO to make it simpler to check for failure.

An AUX channel can also be used to transport I2C messages to a sink. A typical application of that is to access an EDID that's present in the sink device. The .**transfer** function can also be used to execute such transactions. The **drm\_dp\_aux\_register\_i2c\_bus** function registers an I2C adapter that can be passed to **drm\_probe\_ddc**. Upon removal, drivers should call **drm\_dp\_aux\_unregister\_i2c\_bus** to remove the I2C adapter.

Note that the aux helper code assumes that the .**transfer** function only modifies the reply field of the drm\_dp\_aux\_msg structure. The retry logic and i2c helpers assume this is the case.

## AUTHORS

**Jesse Barnes** \<jesse.barnes@intel.com\>\
 Intel Corporation,

Initial version

**Laurent Pinchart** \<laurent.pinchart@ideasonboard.com\>\
 Ideas on board SPRL,

Driver internals

**Daniel Vetter** \<daniel.vetter@ffwll.ch\>\
 Intel Corporation,

Contributions all over the place

## COPYRIGHT
