/linux/drivers/gpu/drm/msm/hdmi/ |
H A D | hdmi_bridge.c | 1 // SPDX-License-Identifier: GPL-2.0-only 12 #include "hdmi.h" 14 static void msm_hdmi_power_on(struct drm_bridge *bridge) in msm_hdmi_power_on() argument 16 struct drm_device *dev = bridge->dev; in msm_hdmi_power_on() 17 struct hdmi_bridge *hdmi_bridge = to_hdmi_bridge(bridge); in msm_hdmi_power_on() 18 struct hdmi *hdmi = hdmi_bridge->hdmi; in msm_hdmi_power_on() local 19 const struct hdmi_platform_config *config = hdmi->config; in msm_hdmi_power_on() 22 pm_runtime_get_sync(&hdmi->pdev->dev); in msm_hdmi_power_on() 24 ret = regulator_bulk_enable(config->pwr_reg_cnt, hdmi->pwr_regs); in msm_hdmi_power_on() 26 DRM_DEV_ERROR(dev->dev, "failed to enable pwr regulator: %d\n", ret); in msm_hdmi_power_on() [all …]
|
H A D | hdmi_hpd.c | 1 // SPDX-License-Identifier: GPL-2.0-only 12 #include "hdmi.h" 14 static void msm_hdmi_phy_reset(struct hdmi *hdmi) in msm_hdmi_phy_reset() argument 18 val = hdmi_read(hdmi, REG_HDMI_PHY_CTRL); in msm_hdmi_phy_reset() 22 hdmi_write(hdmi, REG_HDMI_PHY_CTRL, in msm_hdmi_phy_reset() 26 hdmi_write(hdmi, REG_HDMI_PHY_CTRL, in msm_hdmi_phy_reset() 32 hdmi_write(hdmi, REG_HDMI_PHY_CTRL, in msm_hdmi_phy_reset() 36 hdmi_write(hdmi, REG_HDMI_PHY_CTRL, in msm_hdmi_phy_reset() 44 hdmi_write(hdmi, REG_HDMI_PHY_CTRL, in msm_hdmi_phy_reset() 48 hdmi_write(hdmi, REG_HDMI_PHY_CTRL, in msm_hdmi_phy_reset() [all …]
|
H A D | hdmi.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 15 #include <linux/hdmi.h> 20 #include "hdmi.xml.h" 33 struct hdmi { struct 63 struct drm_bridge *bridge; member 67 /* the encoder we are hooked to (outside of hdmi block) */ argument 70 bool hdmi_mode; /* are we in hdmi mode? */ argument 109 struct hdmi *hdmi; member 114 void msm_hdmi_set_mode(struct hdmi *hdmi, bool power_on); 116 static inline void hdmi_write(struct hdmi *hdmi, u32 reg, u32 data) in hdmi_write() argument [all …]
|
H A D | hdmi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 16 #include <sound/hdmi-codec.h> 17 #include "hdmi.h" 19 void msm_hdmi_set_mode(struct hdmi *hdmi, bool power_on) in msm_hdmi_set_mode() argument 24 spin_lock_irqsave(&hdmi->reg_lock, flags); in msm_hdmi_set_mode() 27 if (!hdmi->hdmi_mode) { in msm_hdmi_set_mode() 29 hdmi_write(hdmi, REG_HDMI_CTRL, ctrl); in msm_hdmi_set_mode() 38 hdmi_write(hdmi, REG_HDMI_CTRL, ctrl); in msm_hdmi_set_mode() 39 spin_unlock_irqrestore(&hdmi->reg_lock, flags); in msm_hdmi_set_mode() 40 DBG("HDMI Core: %s, HDMI_CTRL=0x%08x", in msm_hdmi_set_mode() [all …]
|
/linux/drivers/gpu/drm/bridge/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 6 Bridge registration and lookup framework. 13 DRM bridge wrapper of DRM panels 21 Simple transparent bridge that is used by several non-DRM drivers to 29 Simple bridge that terminates the bridge chain and provides HPD 36 tristate "Chipone ICN6211 MIPI-DSI/RGB Converter bridge" 43 ICN6211 is MIPI-DSI/RGB Converter bridge from chipone. 55 Enable support for the Chrontel CH7033 VGA/DVI/HDMI Encoder, as 61 tristate "ChromeOS EC ANX7688 bridge" 67 ChromeOS EC ANX7688 is an ultra-low power [all …]
|
H A D | ite-it6263.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include <linux/hdmi.h> 12 #include <linux/media-bus-format.h> 31 /* ----------------------------------------------------------------------------- 65 /* ----------------------------------------------------------------------------- 66 * HDMI registers are separated into three banks: 67 * 1) HDMI register common bank: 0x00 ~ 0x2f 70 /* HDMI genernal registers */ 87 /* HDMI System DDC control registers */ 114 /* ----------------------------------------------------------------------------- [all …]
|
H A D | display-connector.c | 1 // SPDX-License-Identifier: GPL-2.0 9 #include <linux/media-bus-format.h> 21 struct drm_bridge bridge; member 31 to_display_connector(struct drm_bridge *bridge) in to_display_connector() argument 33 return container_of(bridge, struct display_connector, bridge); in to_display_connector() 36 static int display_connector_attach(struct drm_bridge *bridge, in display_connector_attach() argument 39 return flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR ? 0 : -EINVAL; in display_connector_attach() 43 display_connector_detect(struct drm_bridge *bridge) in display_connector_detect() argument 45 struct display_connector *conn = to_display_connector(bridge); in display_connector_detect() 47 if (conn->hpd_gpio) { in display_connector_detect() [all …]
|
H A D | lontium-lt9611.c | 1 // SPDX-License-Identifier: GPL-2.0 4 * Copyright (c) 2019-2020. Linaro Limited. 10 #include <linux/media-bus-format.h> 17 #include <sound/hdmi-codec.h> 39 struct drm_bridge bridge; member 89 static struct lt9611 *bridge_to_lt9611(struct drm_bridge *bridge) in bridge_to_lt9611() argument 91 return container_of(bridge, struct lt9611, bridge); in bridge_to_lt9611() 104 { 0x811c, 0x03 }, /* PortA clk lane no-LP mode */ in lt9611_mipi_input_analog() 105 { 0x8120, 0x03 }, /* PortB clk lane with-LP mode */ in lt9611_mipi_input_analog() 108 return regmap_multi_reg_write(lt9611->regmap, reg_cfg, ARRAY_SIZE(reg_cfg)); in lt9611_mipi_input_analog() [all …]
|
/linux/drivers/gpu/drm/bridge/synopsys/ |
H A D | dw-hdmi-qp.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Copyright (c) 2021-2022 Rockchip Electronics Co., Ltd. 6 * Author: Algea Cao <algea.cao@rock-chips.com> 10 #include <linux/hdmi.h> 18 #include <drm/bridge/dw_hdmi_qp.h> 28 #include <sound/hdmi-codec.h> 30 #include "dw-hdmi-qp.h" 52 struct drm_bridge bridge; member 65 static void dw_hdmi_qp_write(struct dw_hdmi_qp *hdmi, unsigned int val, in dw_hdmi_qp_write() argument 68 regmap_write(hdmi->regm, offset, val); in dw_hdmi_qp_write() [all …]
|
H A D | dw-hdmi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * DesignWare High-Definition Multimedia Interface (HDMI) driver 5 * Copyright (C) 2013-2015 Mentor Graphics Inc. 6 * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. 12 #include <linux/hdmi.h> 20 #include <linux/dma-mapping.h> 23 #include <media/cec-notifier.h> 25 #include <uapi/linux/media-bus-format.h> 28 #include <drm/bridge/dw_hdmi.h> 39 #include "dw-hdmi-audio.h" [all …]
|
/linux/drivers/gpu/drm/omapdrm/dss/ |
H A D | hdmi5.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * HDMI driver for OMAP5 5 * Copyright (C) 2014 Texas Instruments Incorporated - https://www.ti.com/ 14 #define DSS_SUBSYS_NAME "HDMI" 31 #include <sound/omap-hdmi-audio.h> 41 static int hdmi_runtime_get(struct omap_hdmi *hdmi) in hdmi_runtime_get() argument 47 r = pm_runtime_get_sync(&hdmi->pdev->dev); in hdmi_runtime_get() 49 pm_runtime_put_noidle(&hdmi->pdev->dev); in hdmi_runtime_get() 55 static void hdmi_runtime_put(struct omap_hdmi *hdmi) in hdmi_runtime_put() argument 61 r = pm_runtime_put_sync(&hdmi->pdev->dev); in hdmi_runtime_put() [all …]
|
H A D | hdmi4.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * HDMI interface DSS driver for TI's OMAP4 family of SoCs. 5 * Copyright (C) 2010-2011 Texas Instruments Incorporated - https://www.ti.com/ 10 #define DSS_SUBSYS_NAME "HDMI" 27 #include <sound/omap-hdmi-audio.h> 38 #include "hdmi.h" 40 static int hdmi_runtime_get(struct omap_hdmi *hdmi) in hdmi_runtime_get() argument 46 r = pm_runtime_get_sync(&hdmi->pdev->dev); in hdmi_runtime_get() 48 pm_runtime_put_noidle(&hdmi->pdev->dev); in hdmi_runtime_get() 54 static void hdmi_runtime_put(struct omap_hdmi *hdmi) in hdmi_runtime_put() argument [all …]
|
/linux/drivers/gpu/drm/mediatek/ |
H A D | mtk_hdmi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 7 #include <linux/arm-smccc.h> 10 #include <linux/hdmi.h> 24 #include <sound/hdmi-codec.h> 155 struct drm_bridge bridge; member 187 return container_of(b, struct mtk_hdmi, bridge); in hdmi_ctx_from_bridge() 190 static u32 mtk_hdmi_read(struct mtk_hdmi *hdmi, u32 offset) in mtk_hdmi_read() argument 192 return readl(hdmi->regs + offset); in mtk_hdmi_read() 195 static void mtk_hdmi_write(struct mtk_hdmi *hdmi, u32 offset, u32 val) in mtk_hdmi_write() argument 197 writel(val, hdmi->regs + offset); in mtk_hdmi_write() [all …]
|
/linux/drivers/gpu/drm/meson/ |
H A D | meson_encoder_hdmi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 19 #include <media/cec-notifier.h> 29 #include <linux/media-bus-format.h> 40 struct drm_bridge bridge; member 49 container_of(x, struct meson_encoder_hdmi, bridge) 51 static int meson_encoder_hdmi_attach(struct drm_bridge *bridge, in meson_encoder_hdmi_attach() argument 54 struct meson_encoder_hdmi *encoder_hdmi = bridge_to_meson_encoder_hdmi(bridge); in meson_encoder_hdmi_attach() 56 return drm_bridge_attach(bridge->encoder, encoder_hdmi->next_bridge, in meson_encoder_hdmi_attach() 57 &encoder_hdmi->bridge, flags); in meson_encoder_hdmi_attach() 60 static void meson_encoder_hdmi_detach(struct drm_bridge *bridge) in meson_encoder_hdmi_detach() argument [all …]
|
H A D | meson_dw_hdmi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 18 #include <drm/bridge/dw_hdmi.h> 32 #define DRIVER_NAME "meson-dw-hdmi" 33 #define DRIVER_DESC "Amlogic Meson HDMI-TX DRM driver" 36 * DOC: HDMI Output 38 * HDMI Output is composed of : 40 * - A Synopsys DesignWare HDMI Controller IP 41 * - A TOP control block controlling the Clocks and PHY 42 * - A custom HDMI PHY in order convert video to TMDS signal 47 * | HDMI TOP |<= HPD [all …]
|
/linux/drivers/gpu/drm/imx/ipuv3/ |
H A D | dw_hdmi-imx.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* Copyright (C) 2011-2013 Freescale Semiconductor, Inc. 4 * derived from imx-hdmi.c(renamed to bridge/dw_hdmi.c now) 9 #include <linux/mfd/syscon/imx6q-iomuxc-gpr.h> 14 #include <video/imx-ipu-v3.h> 16 #include <drm/bridge/dw_hdmi.h> 25 #include "imx-drm.h" 31 struct imx_hdmi *hdmi; member 36 struct drm_bridge *bridge; member 37 struct dw_hdmi *hdmi; member [all …]
|
/linux/drivers/gpu/drm/sti/ |
H A D | sti_hdmi.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include <linux/hdmi.h> 26 #include <sound/hdmi-codec.h> 96 #define HDMI_IFRAME_CFG_DI_N(x, n) ((x) << ((n-1)*4)) /* n from 1 to 6 */ 164 struct sti_hdmi *hdmi; member 177 u32 hdmi_read(struct sti_hdmi *hdmi, int offset) in hdmi_read() argument 179 return readl(hdmi->regs + offset); in hdmi_read() 182 void hdmi_write(struct sti_hdmi *hdmi, u32 val, int offset) in hdmi_write() argument 184 writel(val, hdmi->regs + offset); in hdmi_write() 188 * HDMI interrupt handler threaded [all …]
|
/linux/Documentation/devicetree/bindings/display/bridge/ |
H A D | lontium,lt8912b.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/display/bridge/lontium,lt8912b.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Lontium LT8912B MIPI to HDMI Bridge 10 - Adrien Grassein <adrien.grassein@gmail.com> 13 The LT8912B is a bridge device which convert DSI to HDMI 18 - lontium,lt8912b 23 reset-gpios: 32 $ref: /schemas/graph.yaml#/$defs/port-base [all …]
|
H A D | lontium,lt9611.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/display/bridge/lontium,lt9611.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Lontium LT9611(UXC) 2 Port MIPI to HDMI Bridge 10 - Vinod Koul <vkoul@kernel.org> 13 The LT9611 and LT9611UXC are bridge devices which convert DSI to HDMI 18 - lontium,lt9611 19 - lontium,lt9611uxc 24 "#sound-dai-cells": [all …]
|
/linux/Documentation/gpu/bridge/ |
H A D | dw-hdmi.rst | 2 drm/bridge/dw-hdmi Synopsys DesignWare HDMI Controller 5 Synopsys DesignWare HDMI Controller 8 This section covers everything related to the Synopsys DesignWare HDMI 9 Controller implemented as a DRM bridge. 12 ------------------------------------- 14 .. kernel-doc:: include/drm/bridge/dw_hdmi.h
|
/linux/include/drm/ |
H A D | drm_bridge.h | 49 * enum drm_bridge_attach_flags - Flags for &drm_bridge_funcs.attach 53 * @DRM_BRIDGE_ATTACH_NO_CONNECTOR: When this flag is set the bridge 60 * struct drm_bridge_funcs - drm_bridge control functions 66 * This callback is invoked whenever our bridge is being attached to a 76 int (*attach)(struct drm_bridge *bridge, 82 * This callback is invoked whenever our bridge is being detached from a 87 void (*detach)(struct drm_bridge *bridge); 93 * bridge. This should be implemented if the bridge has some sort of 94 * restriction in the modes it can display. For example, a given bridge 111 * to look at anything else but the passed-in mode, and validate it [all …]
|
/linux/drivers/gpu/drm/bridge/imx/ |
H A D | imx8mp-hdmi-pvi.c | 1 // SPDX-License-Identifier: GPL-2.0+ 30 struct drm_bridge bridge; member 37 to_imx8mp_hdmi_pvi(struct drm_bridge *bridge) in to_imx8mp_hdmi_pvi() argument 39 return container_of(bridge, struct imx8mp_hdmi_pvi, bridge); in to_imx8mp_hdmi_pvi() 42 static int imx8mp_hdmi_pvi_bridge_attach(struct drm_bridge *bridge, in imx8mp_hdmi_pvi_bridge_attach() argument 45 struct imx8mp_hdmi_pvi *pvi = to_imx8mp_hdmi_pvi(bridge); in imx8mp_hdmi_pvi_bridge_attach() 47 return drm_bridge_attach(bridge->encoder, pvi->next_bridge, in imx8mp_hdmi_pvi_bridge_attach() 48 bridge, flags); in imx8mp_hdmi_pvi_bridge_attach() 51 static void imx8mp_hdmi_pvi_bridge_enable(struct drm_bridge *bridge, in imx8mp_hdmi_pvi_bridge_enable() argument 54 struct drm_atomic_state *state = bridge_state->base.state; in imx8mp_hdmi_pvi_bridge_enable() [all …]
|
/linux/drivers/gpu/drm/display/ |
H A D | drm_bridge_connector.c | 1 // SPDX-License-Identifier: GPL-2.0+ 29 * The DRM bridge connector helper object provides a DRM connector 35 * To use the helper, display controller drivers create a bridge connector with 41 * The DRM bridge connector operations are implemented based on the operations 43 * to the bridge closest to the connector (at the end of the chain) that 46 * To make use of this helper, all bridges in the chain shall report bridge 47 * operation flags (&drm_bridge->ops) and bridge output type 48 * (&drm_bridge->type), as well as the DRM_BRIDGE_ATTACH_NO_CONNECTOR attach 53 * struct drm_bridge_connector - A connector backed by a chain of bridges 69 * The last bridge in the chain (closest to the connector) that provides [all …]
|
/linux/drivers/gpu/drm/i915/display/ |
H A D | intel_lpe_audio.c | 24 * Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> 31 * DOC: LPE Audio integration for HDMI or DP playback 34 * Atom platforms (e.g. valleyview and cherryTrail) integrates a DMA-based 41 * subsystems, a bridge is setup between the hdmi-lpe-audio and i915: 45 * the hdmi-lpe-audio driver probes the lpe audio device and creates a new 50 * uninstall the hdmi-lpe-audio driver before uninstalling i915 module, 51 * otherwise we might run into use-after-free issues after i915 removes the 52 * platform device: even though hdmi-lpe-audio driver is released, the modules 80 #define HAS_LPE_AUDIO(dev_priv) ((dev_priv)->display.audio.lpe.platdev != NULL) 85 struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev); in lpe_audio_platdev_create() [all …]
|
/linux/drivers/gpu/drm/i2c/ |
H A D | tda998x_drv.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 #include <linux/hdmi.h> 15 #include <sound/hdmi-codec.h> 26 #include <media/cec-notifier.h> 54 struct i2c_client *hdmi; member 82 struct drm_bridge bridge; member 96 container_of(x, struct tda998x_priv, bridge) 410 .addr = priv->cec_addr, in cec_write() 416 ret = i2c_transfer(priv->hdmi->adapter, &msg, 1); in cec_write() 418 dev_err(&priv->hdmi->dev, "Error %d writing to cec:0x%x\n", in cec_write() [all …]
|