Commit 153b1100 authored by Damien Lespiau's avatar Damien Lespiau Committed by Daniel Vetter

drm/i915: Introduce a get_aux_send_ctl() vfunc

We need a bit more flexibility here in the future, bits get shuffled
around.

v2: more descriptive commit message (Jani Nikula)
Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
Signed-off-by: default avatarDamien Lespiau <damien.lespiau@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 788d4433
...@@ -493,10 +493,10 @@ intel_dp_aux_ch(struct intel_dp *intel_dp, ...@@ -493,10 +493,10 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
} }
while ((aux_clock_divider = intel_dp->get_aux_clock_divider(intel_dp, clock++))) { while ((aux_clock_divider = intel_dp->get_aux_clock_divider(intel_dp, clock++))) {
u32 send_ctl = i9xx_get_aux_send_ctl(intel_dp, u32 send_ctl = intel_dp->get_aux_send_ctl(intel_dp,
has_aux_irq, has_aux_irq,
send_bytes, send_bytes,
aux_clock_divider); aux_clock_divider);
/* Must try at least 3 times according to DP spec */ /* Must try at least 3 times according to DP spec */
for (try = 0; try < 5; try++) { for (try = 0; try < 5; try++) {
...@@ -3724,6 +3724,8 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, ...@@ -3724,6 +3724,8 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
else else
intel_dp->get_aux_clock_divider = i9xx_get_aux_clock_divider; intel_dp->get_aux_clock_divider = i9xx_get_aux_clock_divider;
intel_dp->get_aux_send_ctl = i9xx_get_aux_send_ctl;
/* Preserve the current hw state. */ /* Preserve the current hw state. */
intel_dp->DP = I915_READ(intel_dp->output_reg); intel_dp->DP = I915_READ(intel_dp->output_reg);
intel_dp->attached_connector = intel_connector; intel_dp->attached_connector = intel_connector;
......
...@@ -495,6 +495,14 @@ struct intel_dp { ...@@ -495,6 +495,14 @@ struct intel_dp {
struct intel_connector *attached_connector; struct intel_connector *attached_connector;
uint32_t (*get_aux_clock_divider)(struct intel_dp *dp, int index); uint32_t (*get_aux_clock_divider)(struct intel_dp *dp, int index);
/*
* This function returns the value we have to program the AUX_CTL
* register with to kick off an AUX transaction.
*/
uint32_t (*get_aux_send_ctl)(struct intel_dp *dp,
bool has_aux_irq,
int send_bytes,
uint32_t aux_clock_divider);
}; };
struct intel_digital_port { struct intel_digital_port {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment