/Linux-v5.15/drivers/gpu/drm/rockchip/ |
D | cdn-dp-core.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * Author: Chris Zhong <zyw@rock-chips.com> 16 #include <sound/hdmi-codec.h> 25 #include "cdn-dp-core.h" 26 #include "cdn-dp-reg.h" 30 container_of(c, struct cdn_dp_device, connector) 56 { .compatible = "rockchip,rk3399-cdn-dp", 63 static int cdn_dp_grf_write(struct cdn_dp_device *dp, in cdn_dp_grf_write() argument 68 ret = clk_prepare_enable(dp->grf_clk); in cdn_dp_grf_write() 70 DRM_DEV_ERROR(dp->dev, "Failed to prepare_enable grf clock\n"); in cdn_dp_grf_write() [all …]
|
D | analogix_dp-rockchip.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Rockchip SoC DP (Display Port) interface driver. 6 * Author: Andy Yan <andy.yan@rock-chips.com> 7 * Yakir Yang <ykk@rock-chips.com> 8 * Jeff Chen <jeff.chen@rock-chips.com> 46 * struct rockchip_dp_chip_data - splite the grf setting of kind of chips 76 static int rockchip_dp_pre_init(struct rockchip_dp_device *dp) in rockchip_dp_pre_init() argument 78 reset_control_assert(dp->rst); in rockchip_dp_pre_init() 80 reset_control_deassert(dp->rst); in rockchip_dp_pre_init() 87 struct rockchip_dp_device *dp = to_dp(plat_data); in rockchip_dp_poweron_start() local [all …]
|
/Linux-v5.15/drivers/gpu/drm/nouveau/ |
D | nouveau_dp.c | 35 MODULE_PARM_DESC(mst, "Enable DisplayPort multi-stream (default: enabled)"); 40 nouveau_dp_has_sink_count(struct drm_connector *connector, in nouveau_dp_has_sink_count() argument 43 return drm_dp_read_sink_count_cap(connector, outp->dp.dpcd, &outp->dp.desc); in nouveau_dp_has_sink_count() 50 struct drm_connector *connector = &nv_connector->base; in nouveau_dp_probe_dpcd() local 51 struct drm_dp_aux *aux = &nv_connector->aux; in nouveau_dp_probe_dpcd() 55 u8 *dpcd = outp->dp.dpcd; in nouveau_dp_probe_dpcd() 61 ret = drm_dp_read_desc(aux, &outp->dp.desc, drm_dp_is_branch(dpcd)); in nouveau_dp_probe_dpcd() 66 mstm = outp->dp.mstm; in nouveau_dp_probe_dpcd() 68 mstm->can_mst = drm_dp_read_mst_cap(aux, dpcd); in nouveau_dp_probe_dpcd() 71 if (nouveau_dp_has_sink_count(connector, outp)) { in nouveau_dp_probe_dpcd() [all …]
|
/Linux-v5.15/drivers/gpu/drm/bridge/analogix/ |
D | analogix_dp_core.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Analogix DP (Display Port) core interface driver. 43 static int analogix_dp_init_dp(struct analogix_dp_device *dp) in analogix_dp_init_dp() argument 47 analogix_dp_reset(dp); in analogix_dp_init_dp() 49 analogix_dp_swreset(dp); in analogix_dp_init_dp() 51 analogix_dp_init_analog_param(dp); in analogix_dp_init_dp() 52 analogix_dp_init_interrupt(dp); in analogix_dp_init_dp() 55 analogix_dp_enable_sw_function(dp); in analogix_dp_init_dp() 57 analogix_dp_config_interrupt(dp); in analogix_dp_init_dp() 58 ret = analogix_dp_init_analog_func(dp); in analogix_dp_init_dp() [all …]
|
/Linux-v5.15/drivers/gpu/drm/msm/dp/ |
D | dp_drm.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. 21 * dp_connector_detect - callback to determine if connector is connected 22 * @conn: Pointer to drm connector structure 24 * Returns: Connector 'is connected' status 29 struct msm_dp *dp; in dp_connector_detect() local 31 dp = to_dp_connector(conn)->dp_display; in dp_connector_detect() 34 (dp->is_connected) ? "true" : "false"); in dp_connector_detect() 36 return (dp->is_connected) ? connector_status_connected : in dp_connector_detect() 41 * dp_connector_get_modes - callback to add drm modes via drm_mode_probed_add() [all …]
|
D | dp_display.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. 120 {.compatible = "qcom,sc7180-dp"}, 131 spin_lock_irqsave(&dp_priv->event_lock, flag); in dp_add_event() 132 pndx = dp_priv->event_pndx + 1; in dp_add_event() 134 if (pndx == dp_priv->event_gndx) { in dp_add_event() 136 dp_priv->event_pndx, dp_priv->event_gndx); in dp_add_event() 137 spin_unlock_irqrestore(&dp_priv->event_lock, flag); in dp_add_event() 138 return -EPERM; in dp_add_event() 140 todo = &dp_priv->event_list[dp_priv->event_pndx++]; in dp_add_event() [all …]
|
/Linux-v5.15/drivers/gpu/drm/exynos/ |
D | exynos_dp.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Samsung SoC DP (Display Port) interface driver. 37 struct drm_connector *connector; member 50 struct exynos_dp_device *dp = to_dp(plat_data); in exynos_dp_crtc_clock_enable() local 51 struct drm_encoder *encoder = &dp->encoder; in exynos_dp_crtc_clock_enable() 53 if (!encoder->crtc) in exynos_dp_crtc_clock_enable() 54 return -EPERM; in exynos_dp_crtc_clock_enable() 56 exynos_drm_pipe_clk_enable(to_exynos_crtc(encoder->crtc), enable); in exynos_dp_crtc_clock_enable() 72 struct drm_connector *connector) in exynos_dp_get_modes() argument 74 struct exynos_dp_device *dp = to_dp(plat_data); in exynos_dp_get_modes() local [all …]
|
/Linux-v5.15/drivers/gpu/drm/i915/display/ |
D | intel_dp_hdcp.c | 1 /* SPDX-License-Identifier: MIT */ 49 #define C (hdcp->cp_irq_count_cached != atomic_read(&hdcp->cp_irq_count)) in intel_dp_hdcp_wait_for_cp_irq() 50 ret = wait_event_interruptible_timeout(hdcp->cp_irq_queue, C, in intel_dp_hdcp_wait_for_cp_irq() 61 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_dp_hdcp_write_an_aksv() 66 dpcd_ret = drm_dp_dpcd_write(&dig_port->dp.aux, DP_AUX_HDCP_AN, in intel_dp_hdcp_write_an_aksv() 69 drm_dbg_kms(&i915->drm, in intel_dp_hdcp_write_an_aksv() 70 "Failed to write An over DP/AUX (%zd)\n", in intel_dp_hdcp_write_an_aksv() 72 return dpcd_ret >= 0 ? -EIO : dpcd_ret; in intel_dp_hdcp_write_an_aksv() 76 * Since Aksv is Oh-So-Secret, we can't access it in software. So we in intel_dp_hdcp_write_an_aksv() 77 * send an empty buffer of the correct length through the DP helpers. On in intel_dp_hdcp_write_an_aksv() [all …]
|
D | intel_dp_mst.c | 52 struct drm_atomic_state *state = crtc_state->uapi.state; in intel_dp_mst_compute_link_config() 54 struct intel_dp *intel_dp = &intel_mst->primary->dp; in intel_dp_mst_compute_link_config() 55 struct intel_connector *connector = in intel_dp_mst_compute_link_config() local 56 to_intel_connector(conn_state->connector); in intel_dp_mst_compute_link_config() 57 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_dp_mst_compute_link_config() 59 &crtc_state->hw.adjusted_mode; in intel_dp_mst_compute_link_config() 60 bool constant_n = drm_dp_has_quirk(&intel_dp->desc, DP_DPCD_QUIRK_CONSTANT_N); in intel_dp_mst_compute_link_config() 61 int bpp, slots = -EINVAL; in intel_dp_mst_compute_link_config() 63 crtc_state->lane_count = limits->max_lane_count; in intel_dp_mst_compute_link_config() 64 crtc_state->port_clock = limits->max_clock; in intel_dp_mst_compute_link_config() [all …]
|
D | intel_display_types.h | 3 * Copyright (c) 2007-2008 Intel Corporation 45 #include <media/cec-notifier.h> 57 /* these are outputs from the chip - integrated only 75 HDMI_AUDIO_OFF_DVI = -2, /* no aux data for HDMI-DVI converter */ 91 * create the DMA scatter-gather list for each FB color plane. This sg 103 * in the rotated and remapped GTT view all no-CCS formats (up to 2 171 struct intel_connector *connector); 219 /* Read out the current hw state of this connector, returning true if 224 * state. This must be called _after_ display->get_pipe_config has 225 * pre-filled the pipe config. Note that intel_encoder->base.crtc must [all …]
|
D | intel_hotplug.c | 50 * intel_dp_hpd_pulse() via hooks, which handles DP short pulses and DP MST long 51 * pulses, with failures and non-MST long pulses triggering regular hotplug 52 * processing on the connector. 54 * The regular hotplug work function i915_hotplug_work_func() calls connector 55 * detect hooks, and, if connector status changes, triggers sending of hotplug 64 * while before being re-enabled. The intention is to mitigate issues raising 69 * seen when display port sink is connected, hence on platforms whose DP 72 * this is specific to DP sinks handled by this routine and any other display 78 * intel_hpd_pin_default - return default pin associated with certain port. 89 return HPD_PORT_A + port - PORT_A; in intel_hpd_pin_default() [all …]
|
D | intel_dp.c | 74 /* DP DSC throughput values used for slice count calculations KPixels/s */ 79 /* DP DSC FEC Overhead factor = 1/(0.972261) */ 89 /* Constants for DP DSC configurations */ 98 * intel_dp_is_edp - is the given port attached to an eDP panel (either CPU or PCH) 99 * @intel_dp: DP struct 101 * If a CPU or PCH DP output is attached to an eDP panel, this function 108 return dig_port->base.type == INTEL_OUTPUT_EDP; in intel_dp_is_edp() 123 if (drm_dp_has_quirk(&intel_dp->desc, DP_DPCD_QUIRK_CAN_DO_MAX_LINK_RATE_3_24_GBPS)) { in intel_dp_set_sink_rates() 127 memcpy(intel_dp->sink_rates, quirk_rates, sizeof(quirk_rates)); in intel_dp_set_sink_rates() 128 intel_dp->num_sink_rates = ARRAY_SIZE(quirk_rates); in intel_dp_set_sink_rates() [all …]
|
/Linux-v5.15/drivers/gpu/drm/xlnx/ |
D | zynqmp_dp.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2017 - 2020 Xilinx, Inc. 8 * - Hyun Woo Kwon <hyun.kwon@xilinx.com> 9 * - Laurent Pinchart <laurent.pinchart@ideasonboard.com> 40 MODULE_PARM_DESC(aux_timeout_ms, "DP aux timeout value in msec (default: 50)"); 47 MODULE_PARM_DESC(power_on_delay_ms, "DP power on delay in msec (default: 4)"); 242 * struct zynqmp_dp_link_config - Common link config between source and sink 252 * struct zynqmp_dp_mode - Configured mode of DisplayPort 266 * struct zynqmp_dp_config - Configuration of DisplayPort from DTS 267 * @misc0: misc0 configuration (per DP v1.2 spec) [all …]
|
/Linux-v5.15/Documentation/devicetree/bindings/display/connector/ |
D | dp-connector.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/display/connector/dp-connector.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: DisplayPort Connector 10 - Tomi Valkeinen <tomi.valkeinen@ti.com> 14 const: dp-connector 20 - full-size 21 - mini 23 hpd-gpios: [all …]
|
/Linux-v5.15/drivers/gpu/drm/bridge/ |
D | megachips-stdpxxxx-ge-b850v3-fw.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Driver for MegaChips STDP4028 with GE B850v3 firmware (LVDS-DP) 4 * Driver for MegaChips STDP2690 with GE B850v3 firmware (DP-DP++) 10 * This driver creates a drm_bridge and a drm_connector for the LVDS to DP++ 12 * signal pipeline: a STDP4028(LVDS to DP) and a STDP2690(DP to DP++). The 19 * Host -> LVDS|--(STDP4028)--|DP -> DP|--(STDP2690)--|DP++ -> Video output 60 struct drm_connector connector; member 70 struct i2c_adapter *adapter = client->adapter; in stdp2690_get_edid() 77 .addr = client->addr, in stdp2690_get_edid() 82 .addr = client->addr, in stdp2690_get_edid() [all …]
|
D | display-connector.c | 1 // SPDX-License-Identifier: GPL-2.0 37 return flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR ? 0 : -EINVAL; in display_connector_attach() 45 if (conn->hpd_gpio) { in display_connector_detect() 46 if (gpiod_get_value_cansleep(conn->hpd_gpio)) in display_connector_detect() 52 if (conn->bridge.ddc && drm_probe_ddc(conn->bridge.ddc)) in display_connector_detect() 55 switch (conn->bridge.type) { in display_connector_detect() 72 * Composite and S-Video connectors have no other detection in display_connector_detect() 83 struct drm_connector *connector) in display_connector_get_edid() argument 87 return drm_get_edid(connector, conn->bridge.ddc); in display_connector_get_edid() 99 struct drm_bridge *bridge = &conn->bridge; in display_connector_hpd_irq() [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/display/amdgpu_dm/ |
D | amdgpu_dm_debugfs.c | 57 /* parse_write_buffer_into_params - Helper function to parse debugfs write buffer into an array 86 return -EINVAL; in parse_write_buffer_into_params() 100 /* skip non-space*/ in parse_write_buffer_into_params() 139 * get/ set DP configuration: lane_count, link_rate, spread_spectrum 149 * debugfs is located at /sys/kernel/debug/dri/0/DP-x/link_settings 151 * --- to get dp configuration 153 * cat /sys/kernel/debug/dri/0/DP-x/link_settings 155 * It will list current, verified, reported, preferred dp configuration. 156 * current -- for current video mode 157 * verified --- maximum configuration which pass link training [all …]
|
/Linux-v5.15/drivers/gpu/drm/gma500/ |
D | cdv_intel_dp.c | 43 * struct i2c_algo_dp_aux_data - driver interface structure for i2c over dp 63 struct i2c_algo_dp_aux_data *algo_data = adapter->algo_data; in i2c_algo_dp_aux_transaction() 66 ret = (*algo_data->aux_ch)(adapter, mode, in i2c_algo_dp_aux_transaction() 83 struct i2c_algo_dp_aux_data *algo_data = adapter->algo_data; in i2c_algo_dp_aux_address() 91 algo_data->address = address; in i2c_algo_dp_aux_address() 92 algo_data->running = true; in i2c_algo_dp_aux_address() 104 struct i2c_algo_dp_aux_data *algo_data = adapter->algo_data; in i2c_algo_dp_aux_stop() 111 if (algo_data->running) { in i2c_algo_dp_aux_stop() 113 algo_data->running = false; in i2c_algo_dp_aux_stop() 119 * the I2C link must be running or this returns -EIO [all …]
|
/Linux-v5.15/include/drm/bridge/ |
D | analogix_dp.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * Analogix DP (Display Port) Core interface driver. 29 struct drm_connector *connector; member 41 int analogix_dp_resume(struct analogix_dp_device *dp); 42 int analogix_dp_suspend(struct analogix_dp_device *dp); 46 int analogix_dp_bind(struct analogix_dp_device *dp, struct drm_device *drm_dev); 47 void analogix_dp_unbind(struct analogix_dp_device *dp); 48 void analogix_dp_remove(struct analogix_dp_device *dp); 50 int analogix_dp_start_crc(struct drm_connector *connector); 51 int analogix_dp_stop_crc(struct drm_connector *connector);
|
/Linux-v5.15/drivers/gpu/drm/ |
D | drm_connector.c | 45 * Hence they are reference-counted using drm_connector_get() and 50 * objects and initialized by setting the following fields. The connector is 52 * &struct drm_connector_funcs and a connector type, and then exposed to 56 * connectors to encoders 1:1, the connector should be attached at 61 * For connectors which are not fixed (like built-in panels) the driver needs to 75 * Connector and encoder types. 80 { DRM_MODE_CONNECTOR_DVII, "DVI-I" }, 81 { DRM_MODE_CONNECTOR_DVID, "DVI-D" }, 82 { DRM_MODE_CONNECTOR_DVIA, "DVI-A" }, 88 { DRM_MODE_CONNECTOR_DisplayPort, "DP" }, [all …]
|
D | drm_dp_cec.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * DisplayPort CEC-Tunneling-over-AUX support 19 * Unfortunately it turns out that we have a chicken-and-egg situation 20 * here. Quite a few active (mini-)DP-to-HDMI or USB-C-to-HDMI adapters 21 * have a converter chip that supports CEC-Tunneling-over-AUX (usually the 23 * useless. Note that MegaChips 2900-based adapters appear to have good 41 * https://hverkuil.home.xs4all.nl/cec-status.txt 54 * DOC: dp cec helpers 56 * These functions take care of supporting the CEC-Tunneling-over-AUX 57 * feature of DisplayPort-to-HDMI adapters. [all …]
|
/Linux-v5.15/include/drm/ |
D | drm_dp_mst_helper.h | 52 * struct drm_dp_vcpi - Virtual Channel Payload Identifier 66 * struct drm_dp_mst_port - MST port 70 * @mcs: message capability status - DP 1.2 spec. Protected by 72 * @ddps: DisplayPort Device Plug Status - DP 1.2. Protected by 91 * @connector: DRM connector this port is connected to. Protected by 101 * only the DP MST helpers should need to touch this 146 struct drm_connector *connector; member 150 * @cached_edid: for DP logical ports - make tiling work by ensuring 155 * @has_audio: Tracks whether the sink connector to this port is 156 * audio-capable. [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/amdgpu/ |
D | amdgpu_connectors.c | 2 * Copyright 2007-8 Advanced Micro Devices, Inc. 42 void amdgpu_connector_hotplug(struct drm_connector *connector) in amdgpu_connector_hotplug() argument 44 struct drm_device *dev = connector->dev; in amdgpu_connector_hotplug() 46 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_hotplug() 48 /* bail if the connector does not have hpd pin, e.g., in amdgpu_connector_hotplug() 51 if (amdgpu_connector->hpd.hpd == AMDGPU_HPD_NONE) in amdgpu_connector_hotplug() 54 amdgpu_display_hpd_set_polarity(adev, amdgpu_connector->hpd.hpd); in amdgpu_connector_hotplug() 56 /* if the connector is already off, don't turn it back on */ in amdgpu_connector_hotplug() 57 if (connector->dpms != DRM_MODE_DPMS_ON) in amdgpu_connector_hotplug() 60 /* just deal with DP (not eDP) here. */ in amdgpu_connector_hotplug() [all …]
|
/Linux-v5.15/drivers/gpu/drm/bridge/cadence/ |
D | cdns-mhdp8546-core.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Cadence MHDP8546 DP bridge driver. 7 * Authors: Quentin Schulz <quentin.schulz@free-electrons.com> 14 * - Implement optimized mailbox communication using mailbox interrupts 15 * - Add support for power management 16 * - Add support for features like audio, MST and fast link training 17 * - Implement request_fw_cancel to handle HW_STATE 18 * - Fix asynchronous loading of firmware implementation 19 * - Add DRM helper function for cdns_mhdp_lower_link_rate 33 #include <linux/phy/phy-dp.h> [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/display/dc/dce/ |
D | dce_link_encoder.c | 2 * Copyright 2012-15 Advanced Micro Devices, Inc. 61 enc110->base.ctx 63 enc110->base.ctx->logger 66 (enc110->link_regs->reg) 69 (enc110->aux_regs->reg) 72 (enc110->hpd_regs->reg) 79 * ASIC-dependent, actual values for register programming 95 (reg + enc110->offsets.dig) 98 (reg + enc110->offsets.dp) 131 struct dc_bios *bp = enc110->base.ctx->dc_bios; in link_transmitter_control() [all …]
|