/openbmc/linux/drivers/gpu/drm/amd/display/dc/link/protocols/ |
H A D | link_hpd.c | 28 * This file implements functions that manage basic HPD components such as gpio. 29 * It also provides wrapper functions to execute HPD related programming. This 30 * file only manages basic HPD functionality. It doesn't manage detection or 31 * feature or signal specific HPD behaviors. 65 struct gpio *hpd; in link_enable_hpd_filter() local 72 /* Obtain HPD handle */ in link_enable_hpd_filter() 73 hpd = link_get_hpd_gpio(link->ctx->dc_bios, link->link_id, link->ctx->gpio_service); in link_enable_hpd_filter() 75 if (!hpd) in link_enable_hpd_filter() 78 /* Setup HPD filtering */ in link_enable_hpd_filter() 79 if (dal_gpio_open(hpd, GPIO_MODE_INTERRUPT) == GPIO_RESULT_OK) { in link_enable_hpd_filter() [all …]
|
/openbmc/linux/drivers/gpu/drm/nouveau/nvkm/engine/disp/ |
H A D | conn.c | 56 static const u8 hpd[] = { 0x07, 0x08, 0x51, 0x52, 0x5e, 0x5f, 0x60 }; in nvkm_conn_ctor() local 64 conn->info.hpd = DCB_GPIO_UNUSED; in nvkm_conn_ctor() 66 CONN_DBG(conn, "type %02x loc %d hpd %02x dp %x di %x sr %x lcdid %x", in nvkm_conn_ctor() 67 info->type, info->location, info->hpd, info->dp, in nvkm_conn_ctor() 70 if ((info->hpd = ffs(info->hpd))) { in nvkm_conn_ctor() 71 if (--info->hpd >= ARRAY_SIZE(hpd)) { in nvkm_conn_ctor() 72 CONN_ERR(conn, "hpd %02x unknown", info->hpd); in nvkm_conn_ctor() 75 info->hpd = hpd[info->hpd]; in nvkm_conn_ctor() 77 ret = nvkm_gpio_find(gpio, 0, info->hpd, DCB_GPIO_UNUSED, &func); in nvkm_conn_ctor() 79 CONN_ERR(conn, "func %02x lookup failed, %d", info->hpd, ret); in nvkm_conn_ctor() [all …]
|
/openbmc/linux/drivers/gpu/drm/mediatek/ |
H A D | mtk_cec.c | 56 bool hpd; member 57 void (*hpd_event)(bool hpd, struct device *dev); 94 void (*hpd_event)(bool hpd, struct device *dev), in mtk_cec_set_hpd_event() argument 151 static void mtk_cec_hpd_event(struct mtk_cec *cec, bool hpd) in mtk_cec_hpd_event() argument 153 void (*hpd_event)(bool hpd, struct device *dev); in mtk_cec_hpd_event() 163 hpd_event(hpd, hdmi_dev); in mtk_cec_hpd_event() 170 bool hpd; in mtk_cec_htplg_isr_thread() local 173 hpd = mtk_cec_hpd_high(dev); in mtk_cec_htplg_isr_thread() 175 if (cec->hpd != hpd) { in mtk_cec_htplg_isr_thread() 176 dev_dbg(dev, "hotplug event! cur hpd = %d, hpd = %d\n", in mtk_cec_htplg_isr_thread() [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/display/panel/ |
H A D | panel-edp.yaml | 56 HPD :<T3>| : : | 91 hpd-reliable-delay-ms: 94 panel's power-supply before the HPD signal is a reliable way to know 96 the HPD at the start of power-on. This value is not needed if HPD is 99 hpd-absent-delay-ms: 101 The panel specifies that HPD will be asserted this many milliseconds 103 measure HPD then a fixed delay of this many milliseconds can be used. 104 This can also be used as a timeout when waiting for HPD. Does not 105 include the hpd-reliable-delay, so if hpd-reliable-delay was 80 ms 106 and hpd-absent-delay was 200 ms then we'd do a fixed 80 ms delay and [all …]
|
/openbmc/linux/drivers/gpu/drm/radeon/ |
H A D | radeon_combios.c | 632 i2c.hpd = RADEON_HPD_NONE; in combios_setup_i2c_bus() 1455 struct radeon_hpd hpd; in radeon_get_legacy_connector_info_from_table() local 1542 hpd.hpd = RADEON_HPD_NONE; in radeon_get_legacy_connector_info_from_table() 1553 &hpd); in radeon_get_legacy_connector_info_from_table() 1557 hpd.hpd = RADEON_HPD_NONE; in radeon_get_legacy_connector_info_from_table() 1568 &hpd); in radeon_get_legacy_connector_info_from_table() 1572 hpd.hpd = RADEON_HPD_NONE; in radeon_get_legacy_connector_info_from_table() 1583 &hpd); in radeon_get_legacy_connector_info_from_table() 1587 hpd.hpd = RADEON_HPD_1; in radeon_get_legacy_connector_info_from_table() 1604 &hpd); in radeon_get_legacy_connector_info_from_table() [all …]
|
/openbmc/linux/drivers/gpu/drm/i915/display/ |
H A D | intel_hotplug.c | 43 * handlers gather the hotplug detect (HPD) information from relevant registers 72 * callback is handled by i915_digport_work_func reenabling of hpd is not 82 * @port: the hpd port to get associated pin 116 * intel_hpd_irq_storm_detect - gather stats and detect HPD IRQ storm on a pin 119 * @long_hpd: whether the HPD IRQ was long or short 121 * Gather stats about HPD IRQs from the specified @pin, and detect IRQ 139 * The HPD threshold can be controlled through i915_hpd_storm_ctl in debugfs, 147 struct intel_hotplug *hpd = &dev_priv->display.hotplug; in intel_hpd_irq_storm_detect() local 148 unsigned long start = hpd->stats[pin].last_jiffies; in intel_hpd_irq_storm_detect() 151 const int threshold = hpd->hpd_storm_threshold; in intel_hpd_irq_storm_detect() [all …]
|
H A D | intel_hotplug_irq.c | 136 struct intel_hotplug *hpd = &dev_priv->display.hotplug; in intel_hpd_init_pins() local 141 hpd->hpd = hpd_status_g4x; in intel_hpd_init_pins() 143 hpd->hpd = hpd_status_i915; in intel_hpd_init_pins() 148 hpd->hpd = hpd_xelpdp; in intel_hpd_init_pins() 150 hpd->hpd = hpd_gen11; in intel_hpd_init_pins() 152 hpd->hpd = hpd_bxt; in intel_hpd_init_pins() 154 hpd->hpd = NULL; /* no north HPD on SKL */ in intel_hpd_init_pins() 156 hpd->hpd = hpd_bdw; in intel_hpd_init_pins() 158 hpd->hpd = hpd_ivb; in intel_hpd_init_pins() 160 hpd->hpd = hpd_ilk; in intel_hpd_init_pins() [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/gpio/ |
H A D | hw_hpd.c | 38 hpd->shifts->field_name, hpd->masks->field_name 41 hpd->base.base.ctx 43 (hpd->regs->reg) 56 struct hw_hpd *hpd = HW_HPD_FROM_BASE(*ptr); in dal_hw_hpd_destroy() local 58 dal_hw_hpd_destruct(hpd); in dal_hw_hpd_destroy() 60 kfree(hpd); in dal_hw_hpd_destroy() 69 struct hw_hpd *hpd = HW_HPD_FROM_BASE(ptr); in get_value() local 92 struct hw_hpd *hpd = HW_HPD_FROM_BASE(ptr); in set_config() local 98 DC_HPD_CONNECT_INT_DELAY, config_data->config.hpd.delay_on_connect / 10, in set_config() 99 DC_HPD_DISCONNECT_INT_DELAY, config_data->config.hpd.delay_on_disconnect / 10); in set_config()
|
/openbmc/linux/Documentation/devicetree/bindings/media/cec/ |
H A D | cec-gpio.yaml | 14 hooked up to a pull-up GPIO line and - optionally - the HPD line is hooked up 17 Please note:: the maximum voltage for the CEC line is 3.63V, for the HPD and 31 hpd-gpios: 34 GPIO that the HPD line is connected to. Used for debugging HPD changes 54 hpd-gpios: false 58 - hpd-gpios 72 hpd-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
|
H A D | cec-common.yaml | 21 needs-hpd: 24 The CEC support is only available when the HPD is high. Some boards only 25 let the CEC pin through if the HPD is high, for example if there is a 26 level converter that uses the HPD to power up or down.
|
/openbmc/linux/arch/powerpc/include/asm/nohash/ |
H A D | hugetlb-e500.h | 5 static inline pte_t *hugepd_page(hugepd_t hpd) in hugepd_page() argument 7 if (WARN_ON(!hugepd_ok(hpd))) in hugepd_page() 10 return (pte_t *)((hpd_val(hpd) & ~HUGEPD_SHIFT_MASK) | PD_HUGE); in hugepd_page() 13 static inline unsigned int hugepd_shift(hugepd_t hpd) in hugepd_shift() argument 15 return hpd_val(hpd) & HUGEPD_SHIFT_MASK; in hugepd_shift() 18 static inline pte_t *hugepte_offset(hugepd_t hpd, unsigned long addr, in hugepte_offset() argument 26 return hugepd_page(hpd); in hugepte_offset()
|
/openbmc/linux/arch/powerpc/include/asm/book3s/64/ |
H A D | hugetlb.h | 67 static inline pte_t *hugepd_page(hugepd_t hpd) in hugepd_page() argument 69 BUG_ON(!hugepd_ok(hpd)); in hugepd_page() 74 return __va(hpd_val(hpd) & HUGEPD_ADDR_MASK); in hugepd_page() 77 static inline unsigned int hugepd_mmu_psize(hugepd_t hpd) in hugepd_mmu_psize() argument 79 return (hpd_val(hpd) & HUGEPD_SHIFT_MASK) >> 2; in hugepd_mmu_psize() 82 static inline unsigned int hugepd_shift(hugepd_t hpd) in hugepd_shift() argument 84 return mmu_psize_to_shift(hugepd_mmu_psize(hpd)); in hugepd_shift() 93 static inline pte_t *hugepte_offset(hugepd_t hpd, unsigned long addr, in hugepte_offset() argument 96 unsigned long idx = (addr & ((1UL << pdshift) - 1)) >> hugepd_shift(hpd); in hugepte_offset() 98 return hugepd_page(hpd) + idx; in hugepte_offset()
|
H A D | pgtable-4k.h | 34 static inline int hugepd_ok(hugepd_t hpd) in hugepd_ok() argument 38 return hash__hugepd_ok(hpd); in hugepd_ok() 40 #define is_hugepd(hpd) (hugepd_ok(hpd)) argument
|
/openbmc/linux/drivers/gpu/drm/msm/hdmi/ |
H A D | hdmi_hpd.c | 83 "failed to enable hpd clk: %s (%d)\n", in enable_hpd_clocks() 105 DRM_DEV_ERROR(dev, "failed to enable hpd regulators: %d\n", ret); in msm_hdmi_hpd_enable() 127 /* enable HPD events: */ in msm_hdmi_hpd_enable() 137 /* Toggle HPD circuit to trigger HPD sense */ in msm_hdmi_hpd_enable() 157 /* Disable HPD interrupt */ in msm_hdmi_hpd_disable() 171 dev_warn(dev, "failed to disable hpd regulator: %d\n", ret); in msm_hdmi_hpd_disable() 180 /* Process HPD: */ in msm_hdmi_hpd_irq() 188 /* ack & disable (temporarily) HPD events: */ in msm_hdmi_hpd_irq() 237 * some platforms may not have hpd gpio. Rely only on the status in msm_hdmi_bridge_detect() 259 DBG("hpd gpio tells us: %d", stat_gpio); in msm_hdmi_bridge_detect()
|
/openbmc/linux/arch/powerpc/include/asm/nohash/32/ |
H A D | hugetlb-8xx.h | 7 static inline pte_t *hugepd_page(hugepd_t hpd) in hugepd_page() argument 9 BUG_ON(!hugepd_ok(hpd)); in hugepd_page() 11 return (pte_t *)__va(hpd_val(hpd) & ~HUGEPD_SHIFT_MASK); in hugepd_page() 14 static inline unsigned int hugepd_shift(hugepd_t hpd) in hugepd_shift() argument 19 static inline pte_t *hugepte_offset(hugepd_t hpd, unsigned long addr, in hugepte_offset() argument 24 return hugepd_page(hpd) + idx; in hugepte_offset()
|
/openbmc/linux/drivers/usb/typec/altmodes/ |
H A D | displayport.c | 62 bool hpd; member 137 bool hpd = !!(dp->data.status & DP_STATUS_HPD_STATE); in dp_altmode_status_update() local 150 if (dp->hpd != hpd) { in dp_altmode_status_update() 151 dp->hpd = hpd; in dp_altmode_status_update() 156 if (dp->hpd != hpd) { in dp_altmode_status_update() 158 dp->hpd = hpd; in dp_altmode_status_update() 159 sysfs_notify(&dp->alt->dev.kobj, "displayport", "hpd"); in dp_altmode_status_update() 171 * If the DFP_D/UFP_D sends a change in HPD when first notifying the in dp_altmode_configured() 173 * configuration is complete to signal HPD. in dp_altmode_configured() 177 sysfs_notify(&dp->alt->dev.kobj, "displayport", "hpd"); in dp_altmode_configured() [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/display/bridge/ |
H A D | analogix,dp.yaml | 28 force-hpd: 31 Indicate driver need force hpd when hpd detect failed, this 32 is used for some eDP screen which don not have a hpd signal. 34 hpd-gpios:
|
/openbmc/linux/Documentation/ABI/testing/ |
H A D | sysfs-driver-typec-displayport | 51 What: /sys/bus/typec/devices/.../displayport/hpd 56 HotPlugDetect(HPD) shall be supported on the USB-C connector when 58 reflects the current state of HPD. 61 - 1: when HPD’s logical state is high (HPD_High) as defined 63 - 0 when HPD’s logical state is low (HPD_Low) as defined by
|
/openbmc/linux/Documentation/devicetree/bindings/display/ti/ |
H A D | ti,tpd12s015.txt | 8 - gpios: CT CP HPD, LS OE and HPD gpios 20 gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>, /* 60, CT CP HPD */ 22 <&gpio2 31 GPIO_ACTIVE_HIGH>; /* 63, HPD */
|
/openbmc/linux/drivers/gpu/drm/ |
H A D | drm_bridge_connector.c | 135 struct drm_bridge *hpd = bridge_connector->bridge_hpd; in drm_bridge_connector_enable_hpd() local 137 if (hpd) in drm_bridge_connector_enable_hpd() 138 drm_bridge_hpd_enable(hpd, drm_bridge_connector_hpd_cb, in drm_bridge_connector_enable_hpd() 146 struct drm_bridge *hpd = bridge_connector->bridge_hpd; in drm_bridge_connector_disable_hpd() local 148 if (hpd) in drm_bridge_connector_disable_hpd() 149 drm_bridge_hpd_disable(hpd); in drm_bridge_connector_disable_hpd() 191 struct drm_bridge *hpd = bridge_connector->bridge_hpd; in drm_bridge_connector_destroy() local 193 drm_bridge_hpd_disable(hpd); in drm_bridge_connector_destroy() 338 * bridges in the pipeline that support HPD and output detection. Then in drm_bridge_connector_init() 339 * initialise the connector polling mode, using HPD if available and in drm_bridge_connector_init() [all …]
|
/openbmc/u-boot/doc/ |
H A D | README.video | 53 - hpd=[0|1] - Enable use of the hdmi HotPlug Detect feature 56 Defaults to hpd=1. 58 - hpd_delay=<int> - How long to wait for the hdmi HPD signal in milliseconds 60 time for the monitor to assert the HPD signal. This configures how long to 61 wait for the HPD signal before assuming no cable is connected. 77 use: "setenv video-mode sunxi:1024x768-24@60,monitor=dvi,hpd=0,edid=1".
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/ |
H A D | dc.h | 1471 bool hpd_status; /* HPD status of link without physical HPD pin. */ 1472 bool is_hpd_pending; /* Indicates a new received hpd */ 1608 * recommended to call this function as the first link operation upon HPD event 1651 /* Enable HPD interrupt handler for a given link */ 1654 /* Disable HPD interrupt handler for a given link */ 1670 /* query current hpd pin value 1671 * return - true HPD is asserted (HPD high), false otherwise (HPD low) 1679 /* enable/disable hardware HPD filter. 1681 * @link - The link the HPD pin is associated with. 1682 * @enable = true - enable hardware HPD filter. HPD event will only queued to irq [all …]
|
/openbmc/linux/Documentation/admin-guide/media/ |
H A D | cec.rst | 220 CEC Without HPD 227 level-shifter that is powered off when the HPD signal is low, thus 228 blocking the CEC pin. Even though the SoC can use CEC without a HPD, 270 on your device: now there is a HPD, so you should see the command 273 2) If you have another linux device supporting CEC without HPD, then 275 two HDMI outputs together. You won't have a HPD (which is what we 280 If CEC messages do not come through when there is no HPD, then you 282 or the software powers off the CEC core when the HPD goes low. The 324 If you want to monitor the HPD and/or 5V lines as well, then you need one of 336 GPIO 6 and GPIO 7. The optional HPD pin of the HDMI connector should [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/amdgpu/ |
H A D | dce_v10_0.c | 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 270 * dce_v10_0_hpd_sense - hpd sense callback. 273 * @hpd: hpd (hotplug detect) pin 279 enum amdgpu_hpd_id hpd) in dce_v10_0_hpd_sense() argument [all …]
|
H A D | dce_v11_0.c | 92 uint32_t hpd; member 98 .hpd = DISP_INTERRUPT_STATUS__DC_HPD1_INTERRUPT_MASK 103 .hpd = DISP_INTERRUPT_STATUS_CONTINUE__DC_HPD2_INTERRUPT_MASK 108 .hpd = DISP_INTERRUPT_STATUS_CONTINUE2__DC_HPD3_INTERRUPT_MASK 113 .hpd = DISP_INTERRUPT_STATUS_CONTINUE3__DC_HPD4_INTERRUPT_MASK 118 .hpd = DISP_INTERRUPT_STATUS_CONTINUE4__DC_HPD5_INTERRUPT_MASK 123 .hpd = DISP_INTERRUPT_STATUS_CONTINUE5__DC_HPD6_INTERRUPT_MASK 294 * dce_v11_0_hpd_sense - hpd sense callback. 297 * @hpd: hpd (hotplug detect) pin 303 enum amdgpu_hpd_id hpd) in dce_v11_0_hpd_sense() argument [all …]
|