| /kernel/linux/linux-5.10/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) 55 { .compatible = "rockchip,rk3399-cdn-dp", 62 static int cdn_dp_grf_write(struct cdn_dp_device *dp, in cdn_dp_grf_write() argument 67 ret = clk_prepare_enable(dp->grf_clk); in cdn_dp_grf_write() 69 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 …]
|
| /kernel/linux/linux-6.6/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" 28 static inline struct cdn_dp_device *connector_to_dp(struct drm_connector *connector) in connector_to_dp() argument 30 return container_of(connector, struct cdn_dp_device, connector); in connector_to_dp() 61 { .compatible = "rockchip,rk3399-cdn-dp", 68 static int cdn_dp_grf_write(struct cdn_dp_device *dp, in cdn_dp_grf_write() argument 73 ret = clk_prepare_enable(dp->grf_clk); 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> 44 * struct rockchip_dp_chip_data - splite the grf setting of kind of chips 86 static int rockchip_dp_pre_init(struct rockchip_dp_device *dp) in rockchip_dp_pre_init() argument 88 reset_control_assert(dp->rst); in rockchip_dp_pre_init() 90 reset_control_deassert(dp->rst); in rockchip_dp_pre_init() 97 struct rockchip_dp_device *dp = pdata_encoder_to_dp(plat_data); in rockchip_dp_poweron_start() local [all …]
|
| /kernel/linux/linux-5.10/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 …]
|
| /kernel/linux/linux-5.10/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. 124 {.compatible = "qcom,sc7180-dp"}, 135 spin_lock_irqsave(&dp_priv->event_lock, flag); in dp_add_event() 136 pndx = dp_priv->event_pndx + 1; in dp_add_event() 138 if (pndx == dp_priv->event_gndx) { in dp_add_event() 140 dp_priv->event_pndx, dp_priv->event_gndx); in dp_add_event() 141 spin_unlock_irqrestore(&dp_priv->event_lock, flag); in dp_add_event() 142 return -EPERM; in dp_add_event() 144 todo = &dp_priv->event_list[dp_priv->event_pndx++]; in dp_add_event() [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/ |
| D | nouveau_dp.c | 34 MODULE_PARM_DESC(mst, "Enable DisplayPort multi-stream (default: enabled)"); 39 nouveau_dp_has_sink_count(struct drm_connector *connector, in nouveau_dp_has_sink_count() argument 42 return drm_dp_read_sink_count_cap(connector, outp->dp.dpcd, &outp->dp.desc); in nouveau_dp_has_sink_count() 49 struct drm_connector *connector = &nv_connector->base; in nouveau_dp_probe_dpcd() local 50 struct drm_dp_aux *aux = &nv_connector->aux; in nouveau_dp_probe_dpcd() 54 u8 *dpcd = outp->dp.dpcd; in nouveau_dp_probe_dpcd() 60 ret = drm_dp_read_desc(aux, &outp->dp.desc, drm_dp_is_branch(dpcd)); in nouveau_dp_probe_dpcd() 65 mstm = outp->dp.mstm; in nouveau_dp_probe_dpcd() 67 mstm->can_mst = drm_dp_read_mst_cap(aux, dpcd); in nouveau_dp_probe_dpcd() 70 if (nouveau_dp_has_sink_count(connector, outp)) { in nouveau_dp_probe_dpcd() [all …]
|
| /kernel/linux/linux-6.6/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. 44 static int analogix_dp_init_dp(struct analogix_dp_device *dp) in analogix_dp_init_dp() argument 48 analogix_dp_reset(dp); in analogix_dp_init_dp() 50 analogix_dp_swreset(dp); in analogix_dp_init_dp() 52 analogix_dp_init_analog_param(dp); in analogix_dp_init_dp() 53 analogix_dp_init_interrupt(dp); in analogix_dp_init_dp() 56 analogix_dp_enable_sw_function(dp); in analogix_dp_init_dp() 58 analogix_dp_config_interrupt(dp); in analogix_dp_init_dp() 59 ret = analogix_dp_init_analog_func(dp); in analogix_dp_init_dp() [all …]
|
| /kernel/linux/linux-5.10/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 …]
|
| /kernel/linux/linux-5.10/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 …]
|
| /kernel/linux/linux-6.6/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. 38 struct drm_connector *connector; member 51 struct exynos_dp_device *dp = to_dp(plat_data); in exynos_dp_crtc_clock_enable() local 52 struct drm_encoder *encoder = &dp->encoder; in exynos_dp_crtc_clock_enable() 54 if (!encoder->crtc) in exynos_dp_crtc_clock_enable() 55 return -EPERM; in exynos_dp_crtc_clock_enable() 57 exynos_drm_pipe_clk_enable(to_exynos_crtc(encoder->crtc), enable); in exynos_dp_crtc_clock_enable() 73 struct drm_connector *connector) in exynos_dp_get_modes() argument 75 struct exynos_dp_device *dp = to_dp(plat_data); in exynos_dp_get_modes() local [all …]
|
| /kernel/linux/linux-6.6/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. 17 * dp_bridge_detect - callback to determine if connector is connected 23 struct msm_dp *dp; in dp_bridge_detect() local 25 dp = to_dp_bridge(bridge)->dp_display; in dp_bridge_detect() 27 drm_dbg_dp(dp->drm_dev, "is_connected = %s\n", in dp_bridge_detect() 28 (dp->is_connected) ? "true" : "false"); in dp_bridge_detect() 30 return (dp->is_connected) ? connector_status_connected : in dp_bridge_detect() 39 struct msm_dp *dp; in dp_bridge_atomic_check() local 41 dp = to_dp_bridge(bridge)->dp_display; in dp_bridge_atomic_check() [all …]
|
| D | dp_display.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. 32 MODULE_PARM_DESC(psr_enabled, "enable PSR for eDP and DP displays"); 180 { .compatible = "qcom,sc7180-dp", .data = &sc7180_dp_descs }, 181 { .compatible = "qcom,sc7280-dp", .data = &sc7280_dp_descs }, 182 { .compatible = "qcom,sc7280-edp", .data = &sc7280_dp_descs }, 183 { .compatible = "qcom,sc8180x-dp", .data = &sc8180x_dp_descs }, 184 { .compatible = "qcom,sc8180x-edp", .data = &sc8180x_dp_descs }, 185 { .compatible = "qcom,sc8280xp-dp", .data = &sc8280xp_dp_descs }, 186 { .compatible = "qcom,sc8280xp-edp", .data = &sc8280xp_edp_descs }, [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/i915/display/ |
| D | intel_dp_hdcp.c | 1 /* SPDX-License-Identifier: MIT */ 43 #define C (hdcp->cp_irq_count_cached != atomic_read(&hdcp->cp_irq_count)) in intel_dp_hdcp_wait_for_cp_irq() 44 ret = wait_event_interruptible_timeout(hdcp->cp_irq_queue, C, in intel_dp_hdcp_wait_for_cp_irq() 55 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_dp_hdcp_write_an_aksv() 60 dpcd_ret = drm_dp_dpcd_write(&dig_port->dp.aux, DP_AUX_HDCP_AN, in intel_dp_hdcp_write_an_aksv() 63 drm_dbg_kms(&i915->drm, in intel_dp_hdcp_write_an_aksv() 64 "Failed to write An over DP/AUX (%zd)\n", in intel_dp_hdcp_write_an_aksv() 66 return dpcd_ret >= 0 ? -EIO : dpcd_ret; in intel_dp_hdcp_write_an_aksv() 70 * Since Aksv is Oh-So-Secret, we can't access it in software. So we in intel_dp_hdcp_write_an_aksv() 71 * 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 | 56 int symbol_clock = crtc_state->port_clock / 32; in intel_dp_mst_check_constraints() 58 if (output_bpp * adjusted_mode->crtc_clock >= in intel_dp_mst_check_constraints() 60 drm_dbg_kms(&i915->drm, "UHBR check failed(required bw %d available %d)\n", in intel_dp_mst_check_constraints() 61 output_bpp * adjusted_mode->crtc_clock, symbol_clock * 72); in intel_dp_mst_check_constraints() 62 return -EINVAL; in intel_dp_mst_check_constraints() 78 struct drm_atomic_state *state = crtc_state->uapi.state; in intel_dp_mst_find_vcpi_slots_for_bpp() 80 struct intel_dp *intel_dp = &intel_mst->primary->dp; in intel_dp_mst_find_vcpi_slots_for_bpp() 82 struct intel_connector *connector = in intel_dp_mst_find_vcpi_slots_for_bpp() local 83 to_intel_connector(conn_state->connector); in intel_dp_mst_find_vcpi_slots_for_bpp() 84 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_dp_mst_find_vcpi_slots_for_bpp() [all …]
|
| /kernel/linux/linux-5.10/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 …]
|
| /kernel/linux/linux-5.10/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 …]
|
| /kernel/linux/linux-6.6/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 …]
|
| /kernel/linux/linux-5.10/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 …]
|
| /kernel/linux/linux-6.6/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 …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/amd/display/amdgpu_dm/ |
| D | amdgpu_dm_debugfs.c | 64 /* parse_write_buffer_into_params - Helper function to parse debugfs write buffer into an array 91 return -EFAULT; in parse_write_buffer_into_params() 105 /* skip non-space*/ in parse_write_buffer_into_params() 144 * get/ set DP configuration: lane_count, link_rate, spread_spectrum 154 * debugfs is located at /sys/kernel/debug/dri/0/DP-x/link_settings 156 * --- to get dp configuration 158 * cat /sys/kernel/debug/dri/0/DP-x/link_settings 160 * It will list current, verified, reported, preferred dp configuration. 161 * current -- for current video mode 162 * verified --- maximum configuration which pass link training [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/i915/display/ |
| D | intel_dp_mst.c | 47 struct drm_atomic_state *state = crtc_state->uapi.state; in intel_dp_mst_compute_link_config() 49 struct intel_dp *intel_dp = &intel_mst->primary->dp; in intel_dp_mst_compute_link_config() 50 struct intel_connector *connector = in intel_dp_mst_compute_link_config() local 51 to_intel_connector(conn_state->connector); in intel_dp_mst_compute_link_config() 52 struct drm_i915_private *i915 = to_i915(connector->base.dev); in intel_dp_mst_compute_link_config() 54 &crtc_state->hw.adjusted_mode; in intel_dp_mst_compute_link_config() 55 bool constant_n = drm_dp_has_quirk(&intel_dp->desc, 0, in intel_dp_mst_compute_link_config() 57 int bpp, slots = -EINVAL; in intel_dp_mst_compute_link_config() 59 crtc_state->lane_count = limits->max_lane_count; in intel_dp_mst_compute_link_config() 60 crtc_state->port_clock = limits->max_clock; in intel_dp_mst_compute_link_config() [all …]
|
| /kernel/linux/linux-5.10/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 …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/gma500/ |
| D | cdv_intel_dp.c | 45 * struct i2c_algo_dp_aux_data - driver interface structure for i2c over dp 65 struct i2c_algo_dp_aux_data *algo_data = adapter->algo_data; in i2c_algo_dp_aux_transaction() 68 ret = (*algo_data->aux_ch)(adapter, mode, in i2c_algo_dp_aux_transaction() 85 struct i2c_algo_dp_aux_data *algo_data = adapter->algo_data; in i2c_algo_dp_aux_address() 92 algo_data->address = address; in i2c_algo_dp_aux_address() 93 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 * I2C link must be running or this returns -EIO [all …]
|