/linux-5.10/drivers/gpu/drm/nouveau/nvkm/engine/disp/ |
D | conn.c | 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 35 struct nvkm_conn *conn = container_of(notify, typeof(*conn), hpd); in nvkm_conn_hpd() 36 struct nvkm_disp *disp = conn->disp; in nvkm_conn_hpd() 37 struct nvkm_gpio *gpio = disp->engine.subdev.device->gpio; in nvkm_conn_hpd() 38 const struct nvkm_gpio_ntfy_rep *line = notify->data; in nvkm_conn_hpd() 40 int index = conn->index; in nvkm_conn_hpd() 42 CONN_DBG(conn, "HPD: %d", line->mask); in nvkm_conn_hpd() 44 if (!nvkm_gpio_get(gpio, 0, DCB_GPIO_UNUSED, conn->hpd.index)) in nvkm_conn_hpd() 50 nvkm_event_send(&disp->hpd, rep.mask, index, &rep, sizeof(rep)); in nvkm_conn_hpd() 57 nvkm_notify_put(&conn->hpd); in nvkm_conn_fini() [all …]
|
D | base.c | 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 48 head->func->vblank_put(head); in nvkm_disp_vblank_fini() 57 head->func->vblank_get(head); in nvkm_disp_vblank_init() 65 container_of(notify->event, typeof(*disp), vblank); in nvkm_disp_vblank_ctor() 69 int ret = -ENOSYS; in nvkm_disp_vblank_ctor() 71 if (!(ret = nvif_unpack(ret, &data, &size, req->v0, 0, 0, false))) { in nvkm_disp_vblank_ctor() 72 notify->size = sizeof(struct nvif_notify_head_rep_v0); in nvkm_disp_vblank_ctor() 73 if (ret = -ENXIO, req->v0.head <= disp->vblank.index_nr) { in nvkm_disp_vblank_ctor() 74 notify->types = 1; in nvkm_disp_vblank_ctor() 75 notify->index = req->v0.head; in nvkm_disp_vblank_ctor() [all …]
|
/linux-5.10/Documentation/userspace-api/media/cec/ |
D | cec-ioc-dqevent.rst | 1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 13 CEC_DQEVENT - Dequeue a CEC event 35 non-blocking mode and no event is pending, then it will return -1 and 38 The internal event queues are per-filehandle and per-event type. If 39 there is no more room in a queue then the last event is overwritten with 43 two :ref:`CEC_EVENT_STATE_CHANGE <CEC-EVENT-STATE-CHANGE>` events with 51 .. flat-table:: struct cec_event_state_change 52 :header-rows: 0 53 :stub-columns: 0 56 * - __u16 [all …]
|
/linux-5.10/drivers/gpu/drm/amd/display/dc/gpio/ |
D | hw_hpd.c | 2 * Copyright 2012-15 Advanced Micro Devices, Inc. 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 40 hpd->shifts->field_name, hpd->masks->field_name 43 hpd->base.base.ctx 45 (hpd->regs->reg) 52 dal_hw_gpio_destruct(&pin->base); in dal_hw_hpd_destruct() 58 struct hw_hpd *hpd = HW_HPD_FROM_BASE(*ptr); in dal_hw_hpd_destroy() local 60 dal_hw_hpd_destruct(hpd); in dal_hw_hpd_destroy() 62 kfree(hpd); in dal_hw_hpd_destroy() 71 struct hw_hpd *hpd = HW_HPD_FROM_BASE(ptr); in get_value() local [all …]
|
/linux-5.10/drivers/gpu/drm/ |
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 27 * Sadly there is no way for this driver to know this. What happens is 33 * was never supported by any OS. So there was no easy way of testing it, 34 * and no incentive to correctly wire up the CEC pin. 41 * https://hverkuil.home.xs4all.nl/cec-status.txt [all …]
|
D | drm_bridge_connector.c | 1 // SPDX-License-Identifier: GPL-2.0+ 31 * with the DRM device. At that point the connector becomes fully usable, no 40 * operation flags (&drm_bridge->ops) and bridge output type 41 * (&drm_bridge->type), as well as the DRM_BRIDGE_ATTACH_NO_CONNECTOR attach 46 * struct drm_bridge_connector - A connector backed by a chain of bridges 70 * hot-plug detection notification, if any (see &DRM_BRIDGE_OP_HPD). 92 /* ----------------------------------------------------------------------------- 93 * Bridge Connector Hot-Plug Handling 104 drm_for_each_bridge_in_chain(bridge_connector->encoder, bridge) { in drm_bridge_connector_hpd_notify() 105 if (bridge->funcs->hpd_notify) in drm_bridge_connector_hpd_notify() [all …]
|
/linux-5.10/drivers/gpu/drm/bridge/ |
D | display-connector.c | 1 // SPDX-License-Identifier: GPL-2.0 34 return flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR ? 0 : -EINVAL; in display_connector_attach() 42 if (conn->hpd_gpio) { in display_connector_detect() 43 if (gpiod_get_value_cansleep(conn->hpd_gpio)) in display_connector_detect() 49 if (conn->bridge.ddc && drm_probe_ddc(conn->bridge.ddc)) in display_connector_detect() 52 switch (conn->bridge.type) { in display_connector_detect() 60 * that no cable is connected. in display_connector_detect() 69 * Composite and S-Video connectors have no other detection in display_connector_detect() 70 * mean than the HPD GPIO. For VGA connectors, even if we have in display_connector_detect() 84 return drm_get_edid(connector, conn->bridge.ddc); in display_connector_get_edid() [all …]
|
/linux-5.10/drivers/gpu/drm/radeon/ |
D | radeon_combios.c | 3 * Copyright 2007-8 Advanced Micro Devices, Inc. 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 136 struct radeon_device *rdev = dev->dev_private; in combios_get_table_offset() 140 if (!rdev->bios) in combios_get_table_offset() 365 size = RBIOS8(rdev->bios_header_start + 0x6); in combios_get_table_offset() 368 offset = RBIOS16(rdev->bios_header_start + check_offset); in combios_get_table_offset() 378 edid_info = combios_get_table_offset(rdev->ddev, COMBIOS_HARDCODED_EDID_TABLE); in radeon_combios_check_hardcoded_edid() 382 raw = rdev->bios + edid_info; in radeon_combios_check_hardcoded_edid() 395 rdev->mode_info.bios_hardcoded_edid = edid; in radeon_combios_check_hardcoded_edid() 396 rdev->mode_info.bios_hardcoded_edid_size = size; in radeon_combios_check_hardcoded_edid() [all …]
|
D | radeon_connectors.c | 2 * Copyright 2007-8 Advanced Micro Devices, Inc. 17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 46 if (ret == -EINVAL) in radeon_dp_handle_hpd() 52 struct drm_device *dev = connector->dev; in radeon_connector_hotplug() 53 struct radeon_device *rdev = dev->dev_private; in radeon_connector_hotplug() 56 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { in radeon_connector_hotplug() 58 radeon_connector->con_priv; in radeon_connector_hotplug() 60 if (radeon_connector->is_mst_connector) in radeon_connector_hotplug() 62 if (dig_connector->is_mst) { in radeon_connector_hotplug() 67 /* bail if the connector does not have hpd pin, e.g., in radeon_connector_hotplug() [all …]
|
D | rs600.c | 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 39 #include <linux/io-64-nonatomic-lo-hi.h> 58 AVIVO_D2CRTC_H_TOTAL - AVIVO_D1CRTC_H_TOTAL 83 * avivo_wait_for_vblank - vblank wait asic callback. 88 * Wait for vblank on the requested crtc (r5xx-r7xx). 94 if (crtc >= rdev->num_crtc) in avivo_wait_for_vblank() 120 struct radeon_crtc *radeon_crtc = rdev->mode_info.crtcs[crtc_id]; in rs600_page_flip() 121 u32 tmp = RREG32(AVIVO_D1GRPH_UPDATE + radeon_crtc->crtc_offset); in rs600_page_flip() 126 WREG32(AVIVO_D1GRPH_UPDATE + radeon_crtc->crtc_offset, tmp); in rs600_page_flip() 129 WREG32(AVIVO_D1GRPH_FLIP_CONTROL + radeon_crtc->crtc_offset, in rs600_page_flip() [all …]
|
/linux-5.10/drivers/gpu/drm/i915/display/ |
D | intel_hotplug.c | 17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 41 * handlers gather the hotplug detect (HPD) information from relevant registers 51 * pulses, with failures and non-MST long pulses triggering regular hotplug 64 * while before being re-enabled. The intention is to mitigate issues raising 70 * callback is handled by i915_digport_work_func reenabling of hpd is not 78 * intel_hpd_pin_default - return default pin associated with certain port. 80 * @port: the hpd port to get associated pin 89 return HPD_PORT_A + port - PORT_A; in intel_hpd_pin_default() 107 return encoder ? encoder->hpd_pin : HPD_NONE; in intel_connector_hpd_pin() 111 * intel_hpd_irq_storm_detect - gather stats and detect HPD IRQ storm on a pin [all …]
|
/linux-5.10/Documentation/devicetree/bindings/display/panel/ |
D | panel-common.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/display/panel/panel-common.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Thierry Reding <thierry.reding@gmail.com> 11 - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> 24 width-mm: 29 height-mm: 41 If no such name exists, and unless the property is mandatory according to 43 non-descriptive information. For instance an LCD panel in a system that [all …]
|
D | innolux,p120zdg-bf1.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/display/panel/innolux,p120zdg-bf1.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Innolux P120ZDG-BF1 12.02 inch eDP 2K display panel 10 - Sandeep Panda <spanda@codeaurora.org> 11 - Douglas Anderson <dianders@chromium.org> 14 - $ref: panel-common.yaml# 18 const: innolux,p120zdg-bf1 20 enable-gpios: true [all …]
|
/linux-5.10/drivers/gpu/drm/amd/display/dc/gpio/dce120/ |
D | hw_factory_dce120.c | 2 * Copyright 2013-15 Advanced Micro Devices, Inc. 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 42 #define block HPD 135 switch (pin->id) { in define_ddc_registers() 137 ddc->regs = &ddc_data_regs[en]; in define_ddc_registers() 138 ddc->base.regs = &ddc_data_regs[en].gpio; in define_ddc_registers() 141 ddc->regs = &ddc_clk_regs[en]; in define_ddc_registers() 142 ddc->base.regs = &ddc_clk_regs[en].gpio; in define_ddc_registers() 149 ddc->shifts = &ddc_shift; in define_ddc_registers() 150 ddc->masks = &ddc_mask; in define_ddc_registers() [all …]
|
/linux-5.10/drivers/gpu/drm/amd/display/dc/gpio/dce80/ |
D | hw_factory_dce80.c | 2 * Copyright 2012-15 Advanced Micro Devices, Inc. 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 122 switch (pin->id) { in define_ddc_registers() 124 ddc->regs = &ddc_data_regs[en]; in define_ddc_registers() 125 ddc->base.regs = &ddc_data_regs[en].gpio; in define_ddc_registers() 128 ddc->regs = &ddc_clk_regs[en]; in define_ddc_registers() 129 ddc->base.regs = &ddc_clk_regs[en].gpio; in define_ddc_registers() 136 ddc->shifts = &ddc_shift; in define_ddc_registers() 137 ddc->masks = &ddc_mask; in define_ddc_registers() 143 struct hw_hpd *hpd = HW_HPD_FROM_BASE(pin); in define_hpd_registers() local [all …]
|
/linux-5.10/drivers/gpu/drm/amd/display/dc/gpio/dce60/ |
D | hw_factory_dce60.c | 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 122 switch (pin->id) { in define_ddc_registers() 124 ddc->regs = &ddc_data_regs[en]; in define_ddc_registers() 125 ddc->base.regs = &ddc_data_regs[en].gpio; in define_ddc_registers() 128 ddc->regs = &ddc_clk_regs[en]; in define_ddc_registers() 129 ddc->base.regs = &ddc_clk_regs[en].gpio; in define_ddc_registers() 136 ddc->shifts = &ddc_shift; in define_ddc_registers() 137 ddc->masks = &ddc_mask; in define_ddc_registers() 143 struct hw_hpd *hpd = HW_HPD_FROM_BASE(pin); in define_hpd_registers() local 145 hpd->regs = &hpd_regs[en]; in define_hpd_registers() [all …]
|
/linux-5.10/drivers/gpu/drm/amd/amdgpu/ |
D | amdgpu_connectors.c | 2 * Copyright 2007-8 Advanced Micro Devices, Inc. 17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 44 struct drm_device *dev = connector->dev; 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() 57 if (connector->dpms != DRM_MODE_DPMS_ON) in amdgpu_connector_hotplug() 61 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { in amdgpu_connector_hotplug() 63 amdgpu_connector->con_priv; in amdgpu_connector_hotplug() 65 /* if existing sink type was not DP no need to retrain */ in amdgpu_connector_hotplug() [all …]
|
D | dce_v6_0.c | 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 69 mmDC_HPD1_INT_STATUS - mmDC_HPD1_INT_STATUS, 70 mmDC_HPD2_INT_STATUS - mmDC_HPD1_INT_STATUS, 71 mmDC_HPD3_INT_STATUS - mmDC_HPD1_INT_STATUS, 72 mmDC_HPD4_INT_STATUS - mmDC_HPD1_INT_STATUS, 73 mmDC_HPD5_INT_STATUS - mmDC_HPD1_INT_STATUS, 74 mmDC_HPD6_INT_STATUS - mmDC_HPD1_INT_STATUS, 84 (0x13830 - 0x7030) >> 2, 91 uint32_t hpd; member 97 .hpd = DISP_INTERRUPT_STATUS__DC_HPD1_INTERRUPT_MASK [all …]
|
D | dce_v11_0.c | 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 90 uint32_t hpd; member 96 .hpd = DISP_INTERRUPT_STATUS__DC_HPD1_INTERRUPT_MASK 101 .hpd = DISP_INTERRUPT_STATUS_CONTINUE__DC_HPD2_INTERRUPT_MASK 106 .hpd = DISP_INTERRUPT_STATUS_CONTINUE2__DC_HPD3_INTERRUPT_MASK 111 .hpd = DISP_INTERRUPT_STATUS_CONTINUE3__DC_HPD4_INTERRUPT_MASK 116 .hpd = DISP_INTERRUPT_STATUS_CONTINUE4__DC_HPD5_INTERRUPT_MASK 121 .hpd = DISP_INTERRUPT_STATUS_CONTINUE5__DC_HPD6_INTERRUPT_MASK 161 switch (adev->asic_type) { in dce_v11_0_init_golden_registers() 198 spin_lock_irqsave(&adev->audio_endpt_idx_lock, flags); in dce_v11_0_audio_endpt_rreg() [all …]
|
D | dce_v10_0.c | 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 88 uint32_t hpd; member 94 .hpd = DISP_INTERRUPT_STATUS__DC_HPD1_INTERRUPT_MASK 99 .hpd = DISP_INTERRUPT_STATUS_CONTINUE__DC_HPD2_INTERRUPT_MASK 104 .hpd = DISP_INTERRUPT_STATUS_CONTINUE2__DC_HPD3_INTERRUPT_MASK 109 .hpd = DISP_INTERRUPT_STATUS_CONTINUE3__DC_HPD4_INTERRUPT_MASK 114 .hpd = DISP_INTERRUPT_STATUS_CONTINUE4__DC_HPD5_INTERRUPT_MASK 119 .hpd = DISP_INTERRUPT_STATUS_CONTINUE5__DC_HPD6_INTERRUPT_MASK 152 switch (adev->asic_type) { in dce_v10_0_init_golden_registers() 180 spin_lock_irqsave(&adev->audio_endpt_idx_lock, flags); in dce_v10_0_audio_endpt_rreg() [all …]
|
/linux-5.10/drivers/gpu/drm/amd/display/dc/gpio/dcn10/ |
D | hw_factory_dcn10.c | 2 * Copyright 2013-15 Advanced Micro Devices, Inc. 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 43 #define block HPD 155 generic->regs = &generic_regs[en]; in define_generic_registers() 156 generic->shifts = &generic_shift[en]; in define_generic_registers() 157 generic->masks = &generic_mask[en]; in define_generic_registers() 158 generic->base.regs = &generic_regs[en].gpio; in define_generic_registers() 167 switch (pin->id) { in define_ddc_registers() 169 ddc->regs = &ddc_data_regs[en]; in define_ddc_registers() 170 ddc->base.regs = &ddc_data_regs[en].gpio; in define_ddc_registers() [all …]
|
/linux-5.10/drivers/gpu/drm/amd/display/dc/gpio/dce110/ |
D | hw_factory_dce110.c | 2 * Copyright 2013-15 Advanced Micro Devices, Inc. 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 122 switch (pin->id) { in define_ddc_registers() 124 ddc->regs = &ddc_data_regs[en]; in define_ddc_registers() 125 ddc->base.regs = &ddc_data_regs[en].gpio; in define_ddc_registers() 128 ddc->regs = &ddc_clk_regs[en]; in define_ddc_registers() 129 ddc->base.regs = &ddc_clk_regs[en].gpio; in define_ddc_registers() 136 ddc->shifts = &ddc_shift; in define_ddc_registers() 137 ddc->masks = &ddc_mask; in define_ddc_registers() 143 struct hw_hpd *hpd = HW_HPD_FROM_BASE(pin); in define_hpd_registers() local [all …]
|
/linux-5.10/drivers/gpu/drm/amd/display/dc/gpio/dcn21/ |
D | hw_factory_dcn21.c | 2 * Copyright 2013-15 Advanced Micro Devices, Inc. 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 47 #define block HPD 163 generic->regs = &generic_regs[en]; in define_generic_registers() 164 generic->shifts = &generic_shift[en]; in define_generic_registers() 165 generic->masks = &generic_mask[en]; in define_generic_registers() 166 generic->base.regs = &generic_regs[en].gpio; in define_generic_registers() 175 switch (pin->id) { in define_ddc_registers() 177 ddc->regs = &ddc_data_regs_dcn[en]; in define_ddc_registers() 178 ddc->base.regs = &ddc_data_regs_dcn[en].gpio; in define_ddc_registers() [all …]
|
/linux-5.10/drivers/gpu/drm/amd/display/dc/gpio/dcn20/ |
D | hw_factory_dcn20.c | 2 * Copyright 2013-15 Advanced Micro Devices, Inc. 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 49 #define block HPD 185 switch (pin->id) { in define_ddc_registers() 187 ddc->regs = &ddc_data_regs_dcn[en]; in define_ddc_registers() 188 ddc->base.regs = &ddc_data_regs_dcn[en].gpio; in define_ddc_registers() 191 ddc->regs = &ddc_clk_regs_dcn[en]; in define_ddc_registers() 192 ddc->base.regs = &ddc_clk_regs_dcn[en].gpio; in define_ddc_registers() 199 ddc->shifts = &ddc_shift[en]; in define_ddc_registers() 200 ddc->masks = &ddc_mask[en]; in define_ddc_registers() [all …]
|
/linux-5.10/drivers/gpu/drm/amd/display/dc/gpio/dcn30/ |
D | hw_factory_dcn30.c | 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 57 #define block HPD 191 generic->regs = &generic_regs[en]; in define_generic_registers() 192 generic->shifts = &generic_shift[en]; in define_generic_registers() 193 generic->masks = &generic_mask[en]; in define_generic_registers() 194 generic->base.regs = &generic_regs[en].gpio; in define_generic_registers() 203 switch (pin->id) { in define_ddc_registers() 205 ddc->regs = &ddc_data_regs_dcn[en]; in define_ddc_registers() 206 ddc->base.regs = &ddc_data_regs_dcn[en].gpio; in define_ddc_registers() 209 ddc->regs = &ddc_clk_regs_dcn[en]; in define_ddc_registers() [all …]
|