| /kernel/linux/linux-6.6/drivers/gpu/drm/amd/display/dc/link/protocols/ |
| 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 …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/engine/disp/ |
| D | conn.c | 35 struct nvkm_conn *conn = container_of(notify, typeof(*conn), hpd); 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() 63 nvkm_notify_get(&conn->hpd); in nvkm_conn_init() 71 nvkm_notify_fini(&conn->hpd); in nvkm_conn_del() 81 static const u8 hpd[] = { 0x07, 0x08, 0x51, 0x52, 0x5e, 0x5f, 0x60 }; in nvkm_conn_ctor() local 90 CONN_DBG(conn, "type %02x loc %d hpd %02x dp %x di %x sr %x lcdid %x", in nvkm_conn_ctor() 91 info->type, info->location, info->hpd, info->dp, in nvkm_conn_ctor() [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/nvkm/engine/disp/ |
| 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 …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/display/panel/ |
| 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 …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/mediatek/ |
| 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 …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/mediatek/ |
| D | mtk_cec.c | 53 bool hpd; member 54 void (*hpd_event)(bool hpd, struct device *dev); 91 void (*hpd_event)(bool hpd, struct device *dev), in mtk_cec_set_hpd_event() argument 148 static void mtk_cec_hpd_event(struct mtk_cec *cec, bool hpd) in mtk_cec_hpd_event() argument 150 void (*hpd_event)(bool hpd, struct device *dev); in mtk_cec_hpd_event() 160 hpd_event(hpd, hdmi_dev); in mtk_cec_hpd_event() 167 bool hpd; in mtk_cec_htplg_isr_thread() local 170 hpd = mtk_cec_hpd_high(dev); in mtk_cec_htplg_isr_thread() 172 if (cec->hpd != hpd) { in mtk_cec_htplg_isr_thread() 173 dev_dbg(dev, "hotplug event! cur hpd = %d, hpd = %d\n", in mtk_cec_htplg_isr_thread() [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/radeon/ |
| 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 …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/radeon/ |
| D | radeon_combios.c | 636 i2c.hpd = RADEON_HPD_NONE; in combios_setup_i2c_bus() 1459 struct radeon_hpd hpd; in radeon_get_legacy_connector_info_from_table() local 1546 hpd.hpd = RADEON_HPD_NONE; in radeon_get_legacy_connector_info_from_table() 1557 &hpd); in radeon_get_legacy_connector_info_from_table() 1561 hpd.hpd = RADEON_HPD_NONE; in radeon_get_legacy_connector_info_from_table() 1572 &hpd); in radeon_get_legacy_connector_info_from_table() 1576 hpd.hpd = RADEON_HPD_NONE; in radeon_get_legacy_connector_info_from_table() 1587 &hpd); in radeon_get_legacy_connector_info_from_table() 1591 hpd.hpd = RADEON_HPD_1; in radeon_get_legacy_connector_info_from_table() 1608 &hpd); in radeon_get_legacy_connector_info_from_table() [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/i915/display/ |
| 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 …]
|
| 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 …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/amd/display/dc/gpio/ |
| D | hw_hpd.c | 40 hpd->shifts->field_name, hpd->masks->field_name 43 hpd->base.base.ctx 45 (hpd->regs->reg) 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 94 struct hw_hpd *hpd = HW_HPD_FROM_BASE(ptr); in set_config() local 100 DC_HPD_CONNECT_INT_DELAY, config_data->config.hpd.delay_on_connect / 10, in set_config() 101 DC_HPD_DISCONNECT_INT_DELAY, config_data->config.hpd.delay_on_disconnect / 10); in set_config()
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/amd/display/dc/gpio/ |
| 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()
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/media/ |
| D | cec-gpio.txt | 4 is hooked up to a pull-up GPIO line and - optionally - the HPD line is 7 Please note: the maximum voltage for the CEC line is 3.63V, for the HPD and 22 the following property is optional and can be used for debugging HPD changes: 24 - hpd-gpios: gpio that the HPD line is connected to. 31 pin 26 aka BCM7 aka CE1 on the GPIO pin header, the HPD line is 33 15 aka BCM22 (some level shifter is needed for the HPD and 5V lines!): 40 hpd-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/media/cec/ |
| 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>;
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/i915/display/ |
| D | intel_hotplug.c | 41 * handlers gather the hotplug detect (HPD) information from relevant registers 70 * callback is handled by i915_digport_work_func reenabling of hpd is not 80 * @port: the hpd port to get associated pin 111 * intel_hpd_irq_storm_detect - gather stats and detect HPD IRQ storm on a pin 114 * @long_hpd: whether the HPD IRQ was long or short 116 * Gather stats about HPD IRQs from the specified @pin, and detect IRQ 134 * The HPD threshold can be controlled through i915_hpd_storm_ctl in debugfs, 142 struct i915_hotplug *hpd = &dev_priv->hotplug; in intel_hpd_irq_storm_detect() local 143 unsigned long start = hpd->stats[pin].last_jiffies; in intel_hpd_irq_storm_detect() 146 const int threshold = hpd->hpd_storm_threshold; in intel_hpd_irq_storm_detect() [all …]
|
| /kernel/linux/linux-6.6/arch/powerpc/include/asm/book3s/64/ |
| 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()
|
| /kernel/linux/linux-5.10/arch/powerpc/include/asm/book3s/64/ |
| D | hugetlb.h | 68 static inline pte_t *hugepd_page(hugepd_t hpd) in hugepd_page() argument 70 BUG_ON(!hugepd_ok(hpd)); in hugepd_page() 75 return __va(hpd_val(hpd) & HUGEPD_ADDR_MASK); in hugepd_page() 78 static inline unsigned int hugepd_mmu_psize(hugepd_t hpd) in hugepd_mmu_psize() argument 80 return (hpd_val(hpd) & HUGEPD_SHIFT_MASK) >> 2; in hugepd_mmu_psize() 83 static inline unsigned int hugepd_shift(hugepd_t hpd) in hugepd_shift() argument 85 return mmu_psize_to_shift(hugepd_mmu_psize(hpd)); in hugepd_shift() 94 static inline pte_t *hugepte_offset(hugepd_t hpd, unsigned long addr, in hugepte_offset() argument 97 unsigned long idx = (addr & ((1UL << pdshift) - 1)) >> hugepd_shift(hpd); in hugepte_offset() 99 return hugepd_page(hpd) + idx; in hugepte_offset()
|
| /kernel/linux/linux-6.6/arch/powerpc/include/asm/nohash/ |
| 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()
|
| /kernel/linux/linux-5.10/arch/powerpc/include/asm/nohash/ |
| D | hugetlb-book3e.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()
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/msm/hdmi/ |
| 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()
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/msm/hdmi/ |
| D | hdmi_hpd.c | 83 "failed to enable hpd clk: %s (%d)\n", in enable_hpd_clocks() 106 DRM_DEV_ERROR(dev, "failed to enable hpd regulator: %s (%d)\n", in msm_hdmi_hpd_enable() 130 /* enable HPD events: */ in msm_hdmi_hpd_enable() 140 /* Toggle HPD circuit to trigger HPD sense */ in msm_hdmi_hpd_enable() 160 /* Disable HPD interrupt */ in msm_hdmi_hpd_disable() 175 dev_warn(dev, "failed to disable hpd regulator: %s (%d)\n", in msm_hdmi_hpd_disable() 186 /* Process HPD: */ in msm_hdmi_hpd_irq() 194 /* ack & disable (temporarily) HPD events: */ in msm_hdmi_hpd_irq() 243 * some platforms may not have hpd gpio. Rely only on the status in msm_hdmi_bridge_detect() 265 DBG("hpd gpio tells us: %d", stat_gpio); in msm_hdmi_bridge_detect()
|
| /kernel/linux/linux-5.10/arch/powerpc/include/asm/nohash/32/ |
| 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()
|
| /kernel/linux/linux-6.6/arch/powerpc/include/asm/nohash/32/ |
| 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()
|
| /kernel/linux/linux-6.6/drivers/usb/typec/altmodes/ |
| 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 …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/display/bridge/ |
| 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:
|