1 // SPDX-License-Identifier: MIT 2 /* 3 * Copyright © 2022 Intel Corporation 4 */ 5 6 #include "i915_drv.h" 7 #include "intel_de.h" 8 #include "intel_display.h" 9 #include "intel_hti.h" 10 #include "intel_hti_regs.h" 11 12 void intel_hti_init(struct intel_display *display) 13 { 14 /* 15 * If the platform has HTI, we need to find out whether it has reserved 16 * any display resources before we create our display outputs. 17 */ 18 if (DISPLAY_INFO(display)->has_hti) 19 display->hti.state = intel_de_read(display, HDPORT_STATE); 20 } 21 22 bool intel_hti_uses_phy(struct intel_display *display, enum phy phy) 23 { 24 if (drm_WARN_ON(display->drm, phy == PHY_NONE)) 25 return false; 26 27 return display->hti.state & HDPORT_ENABLED && 28 display->hti.state & HDPORT_DDI_USED(phy); 29 } 30 31 u32 intel_hti_dpll_mask(struct intel_display *display) 32 { 33 if (!(display->hti.state & HDPORT_ENABLED)) 34 return 0; 35 36 /* 37 * Note: This is subtle. The values must coincide with what's defined 38 * for the platform. 39 */ 40 return REG_FIELD_GET(HDPORT_DPLL_USED_MASK, display->hti.state); 41 } 42