Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/i915/tc: Pass pin assignment value around using the pin assignment enum

Pass around the pin assignment value via the corresponding enum instead
of a plain integer.

While at it rename intel_tc_port_get_pin_assignment_mask() to
intel_tc_port_get_pin_assignment(), since the value returned is not a
mask.

Reviewed-by: Mika Kahola <mika.kahola@intel.com>
Link: https://lore.kernel.org/r/20250805073700.642107-11-imre.deak@intel.com
Signed-off-by: Imre Deak <imre.deak@intel.com>

Imre Deak 4ae33f0a 6eaec941

+20 -16
+10 -9
drivers/gpu/drm/i915/display/intel_ddi.c
··· 2166 2166 { 2167 2167 struct intel_display *display = to_intel_display(crtc_state); 2168 2168 enum tc_port tc_port = intel_encoder_to_tc(&dig_port->base); 2169 - u32 ln0, ln1, pin_assignment; 2169 + enum intel_tc_pin_assignment pin_assignment; 2170 + u32 ln0, ln1; 2170 2171 u8 width; 2171 2172 2172 2173 if (DISPLAY_VER(display) >= 14) ··· 2189 2188 ln1 &= ~(MG_DP_MODE_CFG_DP_X1_MODE | MG_DP_MODE_CFG_DP_X2_MODE); 2190 2189 2191 2190 /* DPPATC */ 2192 - pin_assignment = intel_tc_port_get_pin_assignment_mask(dig_port); 2191 + pin_assignment = intel_tc_port_get_pin_assignment(dig_port); 2193 2192 width = crtc_state->lane_count; 2194 2193 2195 2194 switch (pin_assignment) { 2196 - case 0x0: 2195 + case INTEL_TC_PIN_ASSIGNMENT_NONE: 2197 2196 drm_WARN_ON(display->drm, 2198 2197 !intel_tc_port_in_legacy_mode(dig_port)); 2199 2198 if (width == 1) { ··· 2203 2202 ln1 |= MG_DP_MODE_CFG_DP_X2_MODE; 2204 2203 } 2205 2204 break; 2206 - case 0x1: 2205 + case INTEL_TC_PIN_ASSIGNMENT_A: 2207 2206 if (width == 4) { 2208 2207 ln0 |= MG_DP_MODE_CFG_DP_X2_MODE; 2209 2208 ln1 |= MG_DP_MODE_CFG_DP_X2_MODE; 2210 2209 } 2211 2210 break; 2212 - case 0x2: 2211 + case INTEL_TC_PIN_ASSIGNMENT_B: 2213 2212 if (width == 2) { 2214 2213 ln0 |= MG_DP_MODE_CFG_DP_X2_MODE; 2215 2214 ln1 |= MG_DP_MODE_CFG_DP_X2_MODE; 2216 2215 } 2217 2216 break; 2218 - case 0x3: 2219 - case 0x5: 2217 + case INTEL_TC_PIN_ASSIGNMENT_C: 2218 + case INTEL_TC_PIN_ASSIGNMENT_E: 2220 2219 if (width == 1) { 2221 2220 ln0 |= MG_DP_MODE_CFG_DP_X1_MODE; 2222 2221 ln1 |= MG_DP_MODE_CFG_DP_X1_MODE; ··· 2225 2224 ln1 |= MG_DP_MODE_CFG_DP_X2_MODE; 2226 2225 } 2227 2226 break; 2228 - case 0x4: 2229 - case 0x6: 2227 + case INTEL_TC_PIN_ASSIGNMENT_D: 2228 + case INTEL_TC_PIN_ASSIGNMENT_F: 2230 2229 if (width == 1) { 2231 2230 ln0 |= MG_DP_MODE_CFG_DP_X1_MODE; 2232 2231 ln1 |= MG_DP_MODE_CFG_DP_X1_MODE;
+8 -6
drivers/gpu/drm/i915/display/intel_tc.c
··· 277 277 return lane_mask >> DP_LANE_ASSIGNMENT_SHIFT(tc->phy_fia_idx); 278 278 } 279 279 280 - u32 intel_tc_port_get_pin_assignment_mask(struct intel_digital_port *dig_port) 280 + enum intel_tc_pin_assignment 281 + intel_tc_port_get_pin_assignment(struct intel_digital_port *dig_port) 281 282 { 282 283 struct intel_display *display = to_intel_display(dig_port); 283 284 struct intel_tc_port *tc = to_tc_port(dig_port); ··· 300 299 struct intel_display *display = to_intel_display(dig_port); 301 300 enum tc_port tc_port = intel_encoder_to_tc(&dig_port->base); 302 301 struct intel_tc_port *tc = to_tc_port(dig_port); 302 + enum intel_tc_pin_assignment pin_assignment; 303 303 intel_wakeref_t wakeref; 304 - u32 val, pin_assignment; 304 + u32 val; 305 305 306 306 with_intel_display_power(display, POWER_DOMAIN_DISPLAY_CORE, wakeref) 307 307 val = intel_de_read(display, TCSS_DDI_STATUS(tc_port)); ··· 329 327 330 328 static int mtl_tc_port_get_max_lane_count(struct intel_digital_port *dig_port) 331 329 { 332 - u32 pin_mask; 330 + enum intel_tc_pin_assignment pin_assignment; 333 331 334 - pin_mask = intel_tc_port_get_pin_assignment_mask(dig_port); 332 + pin_assignment = intel_tc_port_get_pin_assignment(dig_port); 335 333 336 - switch (pin_mask) { 334 + switch (pin_assignment) { 337 335 default: 338 - MISSING_CASE(pin_mask); 336 + MISSING_CASE(pin_assignment); 339 337 fallthrough; 340 338 case INTEL_TC_PIN_ASSIGNMENT_D: 341 339 return 2;
+2 -1
drivers/gpu/drm/i915/display/intel_tc.h
··· 88 88 89 89 bool intel_tc_port_connected(struct intel_encoder *encoder); 90 90 91 - u32 intel_tc_port_get_pin_assignment_mask(struct intel_digital_port *dig_port); 91 + enum intel_tc_pin_assignment 92 + intel_tc_port_get_pin_assignment(struct intel_digital_port *dig_port); 92 93 int intel_tc_port_max_lane_count(struct intel_digital_port *dig_port); 93 94 void intel_tc_port_set_fia_lane_count(struct intel_digital_port *dig_port, 94 95 int required_lanes);