<def f='src/src/sys/external/bsd/drm2/dist/include/drm/drm_dp_helper.h' l='464' ll='471'/>
<size>104</size>
<doc f='src/src/sys/external/bsd/drm2/dist/include/drm/drm_dp_helper.h' l='432'>/**
 * struct drm_dp_aux - DisplayPort AUX channel
 * @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
 * @transfer: transfers a message representing a single AUX transaction
 *
 * 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&apos;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.
 */</doc>
<mbr r='drm_dp_aux::name' o='0' t='const char *'/>
<mbr r='drm_dp_aux::ddc' o='64' t='struct i2c_adapter'/>
<mbr r='drm_dp_aux::dev' o='704' t='struct device *'/>
<mbr r='drm_dp_aux::transfer' o='768' t='ssize_t (*)(struct drm_dp_aux *, struct drm_dp_aux_msg *)'/>
