[Intel-gfx] [PATCH 3/4] drm/i915: Fix platform default aux ch for skl
Nautiyal, Ankit K
ankit.k.nautiyal at intel.com
Fri Feb 17 13:05:51 UTC 2023
On 2/17/2023 5:32 PM, Ville Syrjälä wrote:
> On Fri, Feb 17, 2023 at 03:15:59PM +0530, Nautiyal, Ankit K wrote:
>> On 2/17/2023 4:43 AM, Ville Syrjala wrote:
>>> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>>>
>>> SKL/derivatives have DDI E but no AUX E, so we need to pick
>>> another aux ch as the platform default. DDI E is more or less
>>> the other half of DDI A, so we pick AUX A.
>>>
>>> In all other cases we should have a corresponding aux ch for
>>> each DDI.
>>>
>>> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
>>> ---
>>> drivers/gpu/drm/i915/display/intel_dp_aux.c | 14 ++++++++++++--
>>> 1 file changed, 12 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux.c b/drivers/gpu/drm/i915/display/intel_dp_aux.c
>>> index 57eb3ff187fa..96967e21c94c 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_dp_aux.c
>>> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux.c
>>> @@ -739,10 +739,20 @@ void intel_dp_aux_init(struct intel_dp *intel_dp)
>>> cpu_latency_qos_add_request(&intel_dp->pm_qos, PM_QOS_DEFAULT_VALUE);
>>> }
>>>
>>> +static enum aux_ch default_aux_ch(struct intel_encoder *encoder)
>>> +{
>>> + struct drm_i915_private *i915 = to_i915(encoder->base.dev);
>>> +
>>> + /* SKL has DDI E but no AUX E */
>>> + if (DISPLAY_VER(i915) == 9 && encoder->port == PORT_E)
>>> + return AUX_CH_A;
>>> +
>> I guess we might need to fix intel_dp_aux_init also. Wont we have
>> dig_port->aux_ch and intel_dp->aux_ch pointing to different things?
> There is no intel_dp->aux_ch.
>
>> For example for SKL and DDI E, intel_dp->aux.name will be derived from
>> dig_port->aux_ch i.e. AUX_CH_A but intel_dp->aux_ctl/data reg will still
>> point to DP_AUX_CH_CTL/DATA_E.
>>
>> Am I missing something?
> Everything is based on dig_port->aux_ch.
Yeah my bad. I think I misread and got confused. We indeed are using
dig_port->aux_ch, for getting aux_ctl/data reg.
I couldnt get the exact bspec mention for SKL not having AUX E, but SKL
Display connection Bspec:4217 throws some light, if I am not fully off.
Is this applicable to Canonlake too (Bspec:14004) from Display
connection it does seem to have DDI E but no DP_AUX E?
Regards,
Ankit
>
>> Regards,
>>
>> Ankit
>>
>>
>>> + return (enum aux_ch)encoder->port;
>>> +}
>>> +
>>> enum aux_ch intel_dp_aux_ch(struct intel_encoder *encoder)
>>> {
>>> struct drm_i915_private *i915 = to_i915(encoder->base.dev);
>>> - enum port port = encoder->port;
>>> enum aux_ch aux_ch;
>>>
>>> aux_ch = intel_bios_dp_aux_ch(encoder->devdata);
>>> @@ -753,7 +763,7 @@ enum aux_ch intel_dp_aux_ch(struct intel_encoder *encoder)
>>> return aux_ch;
>>> }
>>>
>>> - aux_ch = (enum aux_ch)port;
>>> + aux_ch = default_aux_ch(encoder);
>>>
>>> drm_dbg_kms(&i915->drm,
>>> "[ENCODER:%d:%s] using AUX %c (platform default)\n",
More information about the Intel-gfx
mailing list