/openbmc/linux/drivers/gpu/drm/rockchip/ |
H A 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 …]
|
H A 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 …]
|
/openbmc/linux/drivers/gpu/drm/bridge/analogix/ |
H A 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 …]
|
/openbmc/linux/drivers/gpu/drm/nouveau/ |
H A 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 …]
|
/openbmc/linux/drivers/gpu/drm/exynos/ |
H A 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 …]
|
/openbmc/linux/drivers/gpu/drm/msm/dp/ |
H A 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 …]
|
H A 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 …]
|
/openbmc/linux/drivers/gpu/drm/i915/display/ |
H A 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 …]
|
H A 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 …]
|
H A D | intel_display_types.h | 3 * Copyright (c) 2007-2008 Intel Corporation 47 #include <media/cec-notifier.h> 69 /* these are outputs from the chip - integrated only 87 HDMI_AUDIO_OFF_DVI = -2, /* no aux data for HDMI-DVI converter */ 103 * create the DMA scatter-gather list for each FB color plane. This sg 115 * in the rotated and remapped GTT view all no-CCS formats (up to 2 163 struct intel_connector *connector); 201 /* Read out the current hw state of this connector, returning true if 206 * state. This must be called _after_ display->get_pipe_config has 207 * pre-filled the pipe config. Note that intel_encoder->base.crtc must [all …]
|
H A D | intel_dp.c | 83 /* DP DSC throughput values used for slice count calculations KPixels/s */ 88 /* DP DSC FEC Overhead factor = 1/(0.972261) */ 98 /* Constants for DP DSC configurations */ 107 * intel_dp_is_edp - is the given port attached to an eDP panel (either CPU or PCH) 108 * @intel_dp: DP struct 110 * If a CPU or PCH DP output is attached to an eDP panel, this function 119 return dig_port->base.type == INTEL_OUTPUT_EDP; in intel_dp_is_edp() 127 return crtc_state->port_clock >= 1000000; in intel_dp_is_uhbr() 132 intel_dp->sink_rates[0] = 162000; in intel_dp_set_default_sink_rates() 133 intel_dp->num_sink_rates = 1; in intel_dp_set_default_sink_rates() [all …]
|
H A D | intel_hotplug.c | 52 * intel_dp_hpd_pulse() via hooks, which handles DP short pulses and DP MST long 53 * pulses, with failures and non-MST long pulses triggering regular hotplug 54 * processing on the connector. 56 * The regular hotplug work function i915_hotplug_work_func() calls connector 57 * detect hooks, and, if connector status changes, triggers sending of hotplug 66 * while before being re-enabled. The intention is to mitigate issues raising 71 * seen when display port sink is connected, hence on platforms whose DP 74 * this is specific to DP sinks handled by this routine and any other display 80 * intel_hpd_pin_default - return default pin associated with certain port. 91 return HPD_PORT_A + port - PORT_A; in intel_hpd_pin_default() [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/display/connector/ |
H A 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 …]
|
/openbmc/linux/drivers/gpu/drm/bridge/ |
H A 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 …]
|
H A D | display-connector.c | 1 // SPDX-License-Identifier: GPL-2.0 9 #include <linux/media-bus-format.h> 39 return flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR ? 0 : -EINVAL; in display_connector_attach() 47 if (conn->hpd_gpio) { in display_connector_detect() 48 if (gpiod_get_value_cansleep(conn->hpd_gpio)) in display_connector_detect() 54 if (conn->bridge.ddc && drm_probe_ddc(conn->bridge.ddc)) in display_connector_detect() 57 switch (conn->bridge.type) { in display_connector_detect() 74 * Composite and S-Video connectors have no other detection in display_connector_detect() 85 struct drm_connector *connector) in display_connector_get_edid() argument 89 return drm_get_edid(connector, conn->bridge.ddc); in display_connector_get_edid() [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/display/amdgpu_dm/ |
H A 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 …]
|
/openbmc/linux/drivers/gpu/drm/gma500/ |
H A 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 …]
|
/openbmc/linux/include/drm/bridge/ |
H A 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);
|
/openbmc/linux/include/drm/ |
H A D | drm_connector.h | 54 DRM_FORCE_ON_DIGITAL, /* for DVI-I use digital connector */ 58 * enum drm_connector_status - status for a &drm_connector 60 * This enum is used to track the connector status. There are no separate 65 * @connector_status_connected: The connector is definitely connected to 70 * @connector_status_disconnected: The connector isn't connected to a 71 * sink device which can be autodetect. For digital outputs like DP or 73 * nothing there. It is driver-dependent whether a connector with this 78 * @connector_status_unknown: The connector's status could not be 80 * flicker (like load-detection when the connector is in use), or when a 81 * hardware resource isn't available (like when load-detection needs a [all …]
|
/openbmc/linux/drivers/gpu/drm/ |
H A D | drm_connector.c | 51 * Hence they are reference-counted using drm_connector_get() and 56 * objects and initialized by setting the following fields. The connector is 58 * &struct drm_connector_funcs and a connector type, and then exposed to 62 * connectors to encoders 1:1, the connector should be attached at 67 * For connectors which are not fixed (like built-in panels) the driver needs to 75 * Global connector list for drm_connector_find_by_fwnode(). 76 * Note drm_connector_[un]register() first take connector->lock and then 89 * Connector and encoder types. 94 { DRM_MODE_CONNECTOR_DVII, "DVI-I" }, 95 { DRM_MODE_CONNECTOR_DVID, "DVI-D" }, [all …]
|
/openbmc/linux/drivers/gpu/drm/display/ |
H A 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 …]
|
/openbmc/linux/include/drm/display/ |
H A D | drm_dp_mst_helper.h | 52 * struct drm_dp_mst_port - MST port 56 * @mcs: message capability status - DP 1.2 spec. Protected by 58 * @ddps: DisplayPort Device Plug Status - DP 1.2. Protected by 75 * @passthrough_aux: parent aux to which DSC pass-through requests should be 76 * sent, only set if DSC pass-through is possible. 79 * @connector: DRM connector this port is connected to. Protected by 89 * only the DP MST helpers should need to touch this 134 struct drm_connector *connector; member 138 * @cached_edid: for DP logical ports - make tiling work by ensuring 150 /* sideband msg header - not bit struct */ [all …]
|
H A D | drm_dp_helper.h | 75 * struct drm_dp_vsc_sdp - drm DP VSC SDP 77 * This structure represents a DP VSC SDP of drm 78 * It is based on DP 1.4 spec [Table 2-116: VSC SDP Header Bytes] and 79 * [Table 2-117: VSC SDP Payload for DB16 through DB18] 81 * @sdp_type: secondary-data packet type 88 * @content_type: CTA-861-G defines content types and expected processing by a sink device 166 /* DP/eDP DSC support */ 176 return dsc_dpcd[DP_DSC_SUPPORT - DP_DSC_SUPPORT] & in drm_dp_sink_supports_dsc() 183 return dsc_dpcd[DP_DSC_MAX_BITS_PER_PIXEL_LOW - DP_DSC_SUPPORT] | in drm_edp_dsc_sink_output_bpp() 184 ((dsc_dpcd[DP_DSC_MAX_BITS_PER_PIXEL_HI - DP_DSC_SUPPORT] & in drm_edp_dsc_sink_output_bpp() [all …]
|
/openbmc/linux/arch/arm64/boot/dts/qcom/ |
H A D | sa8295p-adp.dts | 1 // SPDX-License-Identifier: BSD-3-Clause 7 /dts-v1/; 9 #include <dt-bindings/gpio/gpio.h> 10 #include <dt-bindings/regulator/qcom,rpmh-regulator.h> 11 #include <dt-bindings/spmi/spmi.h> 14 #include "sa8540p-pmics.dtsi" 18 compatible = "qcom,sa8295p-adp", "qcom,sa8540p"; 25 stdout-path = "serial0:115200n8"; 28 dp2-connector { 29 compatible = "dp-connector"; [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_connectors.c | 2 * Copyright 2007-8 Advanced Micro Devices, Inc. 43 void amdgpu_connector_hotplug(struct drm_connector *connector) in amdgpu_connector_hotplug() argument 45 struct drm_device *dev = connector->dev; in amdgpu_connector_hotplug() 47 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_hotplug() 49 /* bail if the connector does not have hpd pin, e.g., in amdgpu_connector_hotplug() 52 if (amdgpu_connector->hpd.hpd == AMDGPU_HPD_NONE) in amdgpu_connector_hotplug() 55 amdgpu_display_hpd_set_polarity(adev, amdgpu_connector->hpd.hpd); in amdgpu_connector_hotplug() 57 /* if the connector is already off, don't turn it back on */ in amdgpu_connector_hotplug() 58 if (connector->dpms != DRM_MODE_DPMS_ON) in amdgpu_connector_hotplug() 61 /* just deal with DP (not eDP) here. */ in amdgpu_connector_hotplug() [all …]
|