PORT_B
return port == PORT_B || port == PORT_C;
return port == PORT_B || port == PORT_C || port == PORT_D;
if (is_vid_mode(intel_dsi) || (intel_dsi->ports & BIT(PORT_B)))
if (intel_dsi->ports == BIT(PORT_B))
if (intel_dsi->ports == (BIT(PORT_B) | BIT(PORT_A)))
else if (intel_dsi->ports == BIT(PORT_B))
if (intel_dsi->ports == BIT(PORT_B))
intel_dsi->ports = BIT(PORT_A) | BIT(PORT_B);
port = PORT_B;
#define VLV_AUD_PORT_EN_DBG(port) _MMIO_BASE_PORT3(VLV_DISPLAY_BASE, (port) - PORT_B, \
enum port port_bc = DISPLAY_VER(display) >= 11 ? PORT_B : PORT_C;
[PORT_B] = { DVO_PORT_HDMIB, DVO_PORT_DPB, -1 },
[PORT_B] = { DVO_PORT_HDMIB, DVO_PORT_DPB, -1 },
[PORT_B] = { -1 },
[PORT_B] = { DVO_PORT_HDMIB, DVO_PORT_DPB, -1 },
return PORT_B;
case PORT_B:
[PORT_B] = TRANSCODER_A,
case PORT_B:
found = intel_sdvo_init(display, PCH_SDVOB, PORT_B);
g4x_hdmi_init(display, PCH_HDMIB, PORT_B);
g4x_dp_init(display, PCH_DP_B, PORT_B);
has_edp = intel_dp_is_port_edp(display, PORT_B);
has_port = intel_bios_is_port_present(display, PORT_B);
has_edp &= g4x_dp_init(display, VLV_DP_B, PORT_B);
g4x_hdmi_init(display, VLV_HDMIB, PORT_B);
found = intel_sdvo_init(display, GEN3_SDVOB, PORT_B);
g4x_hdmi_init(display, GEN4_HDMIB, PORT_B);
g4x_dp_init(display, DP_B, PORT_B);
case PORT_B:
lpsp_capable = encoder->port <= PORT_B;
lpsp_capable = encoder->port <= PORT_B;
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) |
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) |
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) |
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) |
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) | BIT(PORT_C) | BIT(PORT_D_XELPD) |
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) | \
BIT(PORT_A) | BIT(PORT_B) | BIT(PORT_TC1) | BIT(PORT_TC2),
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) | BIT(PORT_C), /* DVO A/B/C */
.__runtime_defaults.port_mask = BIT(PORT_B) | BIT(PORT_C), /* DVO B/C */
.__runtime_defaults.port_mask = BIT(PORT_B) | BIT(PORT_C), /* DVO B/C */
.__runtime_defaults.port_mask = BIT(PORT_B) | BIT(PORT_C), /* DVO B/C */
.__runtime_defaults.port_mask = BIT(PORT_B) | BIT(PORT_C) /* SDVO B/C */
.__runtime_defaults.port_mask = BIT(PORT_B) | BIT(PORT_C), /* SDVO B/C */
.__runtime_defaults.port_mask = BIT(PORT_B) | BIT(PORT_C), /* SDVO B/C */
.__runtime_defaults.port_mask = BIT(PORT_B) | BIT(PORT_C) | BIT(PORT_D), /* SDVO/HDMI/DP B/C, DP D */
.__runtime_defaults.port_mask = BIT(PORT_B) | BIT(PORT_C) | BIT(PORT_D), /* SDVO/HDMI/DP B/C, DP D */
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) | BIT(PORT_C) | BIT(PORT_D) /* DP A, SDVO/HDMI/DP B, HDMI/DP C/D */
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) | BIT(PORT_C) | BIT(PORT_D), /* DP A, SDVO/HDMI/DP B, HDMI/DP C/D */
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) | BIT(PORT_C) | BIT(PORT_D), /* DP A, SDVO/HDMI/DP B, HDMI/DP C/D */
.__runtime_defaults.port_mask = BIT(PORT_B) | BIT(PORT_C), /* HDMI/DP B/C */
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) | BIT(PORT_C) | BIT(PORT_D) | BIT(PORT_E),
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) | BIT(PORT_C) | BIT(PORT_D) | BIT(PORT_E),
.__runtime_defaults.port_mask = BIT(PORT_B) | BIT(PORT_C) | BIT(PORT_D), /* HDMI/DP B/C/D */
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) | BIT(PORT_C) | BIT(PORT_D) | BIT(PORT_E),
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) | BIT(PORT_C)
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) | BIT(PORT_C) | BIT(PORT_D) | BIT(PORT_E),
.__runtime_defaults.port_mask = BIT(PORT_A) | BIT(PORT_B) | BIT(PORT_C) | BIT(PORT_D),
PORT_A : PORT_B;
port = (te_trigger & DSI1_TE) ? PORT_B : PORT_A;
port = PORT_B;
.port_end = PORT_B,
#define TRANS_DP_PORT_SEL(port) REG_FIELD_PREP(TRANS_DP_PORT_SEL_MASK, (port) - PORT_B)
port != PORT_B && port != PORT_C))
case PORT_B:
[DPIO_CH0] = { .port = PORT_B },
[DPIO_CH0] = { .port = PORT_B },
case PORT_B:
case PORT_B:
case PORT_B:
if (intel_dsi->ports & BIT(PORT_B))
return PORT_B;
.port = PORT_B,
case PORT_B ... PORT_F:
case PORT_B:
case PORT_B:
case PORT_B:
case PORT_B:
WARN_ON(encoder->port == PORT_B || encoder->port == PORT_C);
case PORT_B:
ppdata = &pdata->port[port - PORT_B];
pdata->notify_audio_lpe(display->audio.lpe.platdev, port - PORT_B);
assert_pch_hdmi_disabled(display, pipe, PORT_B, PCH_HDMIB);
ibx_sanitize_pch_dp_port(display, PORT_B, PCH_DP_B);
ibx_sanitize_pch_hdmi_port(display, PORT_B, PCH_HDMIB);
drm_WARN_ON(display->drm, port < PORT_B || port > PORT_D);
assert_pch_dp_disabled(display, pipe, PORT_B, PCH_DP_B);
case PORT_B:
return pipe <= PIPE_B && port <= PORT_B;
if (intel_sdvo->base.port == PORT_B)
if (intel_sdvo->base.port == PORT_B)
if (sdvo->base.port == PORT_B)
if (sdvo->base.port == PORT_B)
if (sdvo->base.port == PORT_B) {
if (sdvo->base.port == PORT_B)
return port == PORT_B;
return port == PORT_B || port == PORT_C;
if (intel_sdvo->base.port == PORT_B)
#define SDVO_NAME(svdo) ((svdo)->base.port == PORT_B ? "SDVOB" : "SDVOC")
if (intel_vgpu_has_monitor_on_port(vgpu, PORT_B)) {
vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_B)) |=
vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_B)) &=
vgpu_vreg_t(vgpu, BXT_PORT_PLL_ENABLE(PORT_B)) |=
vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_B)) |=
vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_B)) &=
(PORT_B << TRANS_DDI_PORT_SHIFT) |
(PORT_B << TRANS_DDI_PORT_SHIFT) |
if (intel_vgpu_has_monitor_on_port(vgpu, PORT_B)) {
~DPLL_CTRL2_DDI_CLK_OFF(PORT_B);
DPLL_CTRL2_DDI_CLK_SEL(DPLL_ID_SKL_DPLL0, PORT_B);
DPLL_CTRL2_DDI_SEL_OVERRIDE(PORT_B);
(PORT_B << TRANS_DDI_PORT_SHIFT) |
vgpu_vreg_t(vgpu, PORT_CLK_SEL(PORT_B)) &=
vgpu_vreg_t(vgpu, PORT_CLK_SEL(PORT_B)) |=
vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_B)) |= DDI_BUF_CTL_ENABLE;
vgpu_vreg_t(vgpu, DDI_BUF_CTL(PORT_B)) &= ~DDI_BUF_IS_IDLE;
if (intel_vgpu_has_monitor_on_port(vgpu, PORT_B)) {
clean_virtual_dp_monitor(vgpu, PORT_B);
return setup_virtual_dp_monitor(vgpu, PORT_B, GVT_DP_B,
port = PORT_B;
port = PORT_B;
port = PORT_B;
MMIO_DH(DDI_BUF_CTL(PORT_B), D_ALL, NULL, ddi_buf_ctl_mmio_write);
MMIO_DH(DP_TP_CTL(PORT_B), D_ALL, NULL, dp_tp_ctl_mmio_write);
MMIO_DH(DP_TP_STATUS(PORT_B), D_ALL, NULL, dp_tp_status_mmio_write);
MMIO_DH(BXT_PORT_PLL_ENABLE(PORT_B), D_BXT,
case PORT_B:
if (port != PORT_B && port != PORT_D) {
calc_index(offset, DP_TP_CTL(PORT_A), DP_TP_CTL(PORT_B), DP_TP_CTL(PORT_E))
vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_B)) &=
vgpu_vreg_t(vgpu, BXT_PHY_CTL(PORT_B)) |=
ret = intel_gvt_set_edid(vgpu, PORT_B);
MMIO_D(BXT_PHY_CTL(PORT_B));
MMIO_D(BXT_PORT_PLL_ENABLE(PORT_B));
MMIO_D(PORT_CLK_SEL(PORT_B));
MMIO_D(DDI_BUF_CTL(PORT_B));
MMIO_D(DP_TP_CTL(PORT_B));
MMIO_D(DP_TP_STATUS(PORT_B));
ret = ipu7_isys_phy_config(isys, PORT_B, 2, aggregation);
gpreg_write(isys, PORT_B, PHY_RESET, 1);
gpreg_write(isys, PORT_B, PHY_SHUTDOWN, 1);
dwc_csi_write(isys, PORT_B, DPHY_RSTZ, 1);
dwc_csi_write(isys, PORT_B, PHY_SHUTDOWNZ, 1);
dwc_csi_write(isys, PORT_B, CSI2_RESETN, 1);
ret = ipu7_isys_phy_ready(isys, PORT_B);
gpreg_write(isys, PORT_B, PHY_LANE_FORCE_CONTROL, 0);
gpreg_write(isys, PORT_B, PHY_CLK_LANE_FORCE_CONTROL, 0);
ipu7_isys_csi_phy_reset(isys, PORT_B);
id == PORT_B || id == PORT_C) {
if (!is_ipu7(isys->adev->isp->hw_ver) || id == PORT_B || id == PORT_C)
ipu7_isys_csi_phy_reset(isys, PORT_B);
gpreg_write(isys, PORT_B, PHY_CLK_LANE_CONTROL, 0x0);
gpreg_write(isys, PORT_B, PHY_LANE_CONTROL_EN, 0x3);
gpreg_write(isys, PORT_B, PHY_CLK_LANE_FORCE_CONTROL, 0x2);
gpreg_write(isys, PORT_B, PHY_LANE_FORCE_CONTROL, 0xf);
gpreg_write(isys, PORT_B, PHY_MODE, csi2->phy_mode);