Loading Documentation/devicetree/bindings/display/msm/sde.txt +4 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,7 @@ Optional properties: e.g. qcom,sde-sspp-vig-blocks -- qcom,sde-vig-csc-off: offset of CSC hardware -- qcom,sde-vig-qseed-off: offset of QSEED hardware -- qcom,sde-vig-qseed-size: A u32 address range for qseed scaler. -- qcom,sde-vig-pcc: offset and version of PCC hardware -- qcom,sde-vig-hsic: offset and version of global PA adjustment -- qcom,sde-vig-memcolor: offset and version of PA memcolor hardware Loading @@ -178,6 +179,7 @@ Optional properties: indicates that the SSPP RGB contains that feature hardware. e.g. qcom,sde-sspp-vig-blocks -- qcom,sde-rgb-scaler-off: offset of RGB scaler hardware -- qcom,sde-rgb-scaler-size: A u32 address range for scaler. -- qcom,sde-rgb-pcc: offset and version of PCC hardware - qcom,sde-dspp-blocks: A node that lists the blocks inside the DSPP hardware. The block entries will contain the offset and version of each Loading Loading @@ -417,6 +419,7 @@ Example: qcom,sde-sspp-vig-blocks { qcom,sde-vig-csc-off = <0x320>; qcom,sde-vig-qseed-off = <0x200>; qcom,sde-vig-qseed-size = <0x74>; /* Offset from vig top, version of HSIC */ qcom,sde-vig-hsic = <0x200 0x00010000>; qcom,sde-vig-memcolor = <0x200 0x00010000>; Loading @@ -425,6 +428,7 @@ Example: qcom,sde-sspp-rgb-blocks { qcom,sde-rgb-scaler-off = <0x200>; qcom,sde-rgb-scaler-size = <0x74>; qcom,sde-rgb-pcc = <0x380 0x00010000>; }; Loading arch/arm/boot/dts/qcom/msm8998-sde.dtsi +27 −4 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ sde_kms: qcom,sde_kms@c900000 { compatible = "qcom,sde-kms"; reg = <0x0c900000 0x90000>, <0x0c9b0000 0x1040>; <0x0c9b0000 0x2008>; reg-names = "mdp_phys", "vbif_phys"; /* clock and supply entries */ Loading Loading @@ -52,23 +52,44 @@ /* hw blocks */ qcom,sde-off = <0x1000>; qcom,sde-len = <0x458>; qcom,sde-ctl-off = <0x2000 0x2200 0x2400 0x2600 0x2800>; qcom,sde-ctl-size = <0x94>; qcom,sde-mixer-off = <0x45000 0x46000 0x47000 0x48000 0x49000 0x4a000>; qcom,sde-mixer-size = <0x31c>; qcom,sde-dspp-off = <0x55000 0x57000>; qcom,sde-dspp-size = <0x17e0>; qcom,sde-wb-off = <0x66000>; qcom,sde-wb-size = <0x2dc>; qcom,sde-wb-id = <2>; qcom,sde-wb-xin-id = <6>; qcom,sde-wb-clk-ctrl = <0x2bc 0x10>; qcom,sde-intf-off = <0x6b000 0x6b800 0x6c000 0x6c800>; qcom,sde-intf-size = <0x280>; qcom,sde-intf-type = "dp", "dsi", "dsi", "hdmi"; qcom,sde-pp-off = <0x71000 0x71800 0x72000 0x72800>; qcom,sde-te2-off = <0x2000 0x2000 0x0 0x0>; 0x72000 0x72800 0x73000>; qcom,sde-pp-slave = <0x0 0x0 0x0 0x0 0x1>; qcom,sde-pp-size = <0xd4>; qcom,sde-te2-off = <0x2000 0x2000 0x0 0x0 0x0>; qcom,sde-cdm-off = <0x7a200>; qcom,sde-dsc-off = <0x10000 0x10000 0x0 0x0>; qcom,sde-cdm-size = <0x224>; qcom,sde-dsc-off = <0x81000 0x81400>; qcom,sde-dsc-size = <0x140>; qcom,sde-intf-max-prefetch-lines = <0x15 0x15 0x15 0x15>; qcom,sde-sspp-type = "vig", "vig", "vig", "vig", Loading @@ -78,6 +99,7 @@ qcom,sde-sspp-off = <0x5000 0x7000 0x9000 0xb000 0x25000 0x27000 0x29000 0x2b000 0x35000 0x37000>; qcom,sde-sspp-src-size = <0x1ac>; qcom,sde-sspp-xin-id = <0 4 8 12 1 5 9 13 2 10>; Loading Loading @@ -113,6 +135,7 @@ qcom,sde-sspp-vig-blocks { qcom,sde-vig-csc-off = <0x1a00>; qcom,sde-vig-qseed-off = <0xa00>; qcom,sde-vig-qseed-size = <0xa0>; }; qcom,platform-supply-entries { Loading drivers/gpu/drm/msm/Kconfig +10 −0 Original line number Diff line number Diff line Loading @@ -98,3 +98,13 @@ config DRM_SDE_HDMI default y help Choose this option if HDMI connector support is needed in SDE driver. config DRM_SDE_EVTLOG_DEBUG bool "Enable event logging in MSM DRM" depends on DRM_MSM help The SDE DRM debugging provides support to enable display debugging features to: dump SDE registers during driver errors, panic driver during fatal errors and enable some display-driver logging into an internal buffer (this avoids logging overhead). drivers/gpu/drm/msm/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ msm_drm-y := \ sde/sde_color_processing.o \ sde/sde_vbif.o \ sde/sde_splash.o \ sde_dbg.o \ sde_dbg_evtlog.o \ sde_io_util.o \ dba_bridge.o \ Loading drivers/gpu/drm/msm/msm_drv.c +13 −3 Original line number Diff line number Diff line Loading @@ -293,7 +293,7 @@ static int msm_unload(struct drm_device *dev) priv->vram.paddr, &attrs); } sde_evtlog_destroy(); sde_dbg_destroy(); sde_power_client_destroy(&priv->phandle, priv->pclient); sde_power_resource_deinit(pdev, &priv->phandle); Loading Loading @@ -423,11 +423,17 @@ static int msm_component_bind_all(struct device *dev, } #endif static int msm_power_enable_wrapper(void *handle, void *client, bool enable) { return sde_power_resource_enable(handle, client, enable); } static int msm_load(struct drm_device *dev, unsigned long flags) { struct platform_device *pdev = dev->platformdev; struct msm_drm_private *priv; struct msm_kms *kms; struct sde_dbg_power_ctrl dbg_power_ctrl = { NULL }; int ret, i; priv = kzalloc(sizeof(*priv), GFP_KERNEL); Loading Loading @@ -477,9 +483,13 @@ static int msm_load(struct drm_device *dev, unsigned long flags) if (ret) goto fail; ret = sde_evtlog_init(dev->primary->debugfs_root); dbg_power_ctrl.handle = &priv->phandle; dbg_power_ctrl.client = priv->pclient; dbg_power_ctrl.enable_fn = msm_power_enable_wrapper; ret = sde_dbg_init(dev->primary->debugfs_root, &pdev->dev, &dbg_power_ctrl); if (ret) { dev_err(dev->dev, "failed to init evtlog: %d\n", ret); dev_err(dev->dev, "failed to init sde dbg: %d\n", ret); goto fail; } Loading Loading
Documentation/devicetree/bindings/display/msm/sde.txt +4 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,7 @@ Optional properties: e.g. qcom,sde-sspp-vig-blocks -- qcom,sde-vig-csc-off: offset of CSC hardware -- qcom,sde-vig-qseed-off: offset of QSEED hardware -- qcom,sde-vig-qseed-size: A u32 address range for qseed scaler. -- qcom,sde-vig-pcc: offset and version of PCC hardware -- qcom,sde-vig-hsic: offset and version of global PA adjustment -- qcom,sde-vig-memcolor: offset and version of PA memcolor hardware Loading @@ -178,6 +179,7 @@ Optional properties: indicates that the SSPP RGB contains that feature hardware. e.g. qcom,sde-sspp-vig-blocks -- qcom,sde-rgb-scaler-off: offset of RGB scaler hardware -- qcom,sde-rgb-scaler-size: A u32 address range for scaler. -- qcom,sde-rgb-pcc: offset and version of PCC hardware - qcom,sde-dspp-blocks: A node that lists the blocks inside the DSPP hardware. The block entries will contain the offset and version of each Loading Loading @@ -417,6 +419,7 @@ Example: qcom,sde-sspp-vig-blocks { qcom,sde-vig-csc-off = <0x320>; qcom,sde-vig-qseed-off = <0x200>; qcom,sde-vig-qseed-size = <0x74>; /* Offset from vig top, version of HSIC */ qcom,sde-vig-hsic = <0x200 0x00010000>; qcom,sde-vig-memcolor = <0x200 0x00010000>; Loading @@ -425,6 +428,7 @@ Example: qcom,sde-sspp-rgb-blocks { qcom,sde-rgb-scaler-off = <0x200>; qcom,sde-rgb-scaler-size = <0x74>; qcom,sde-rgb-pcc = <0x380 0x00010000>; }; Loading
arch/arm/boot/dts/qcom/msm8998-sde.dtsi +27 −4 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ sde_kms: qcom,sde_kms@c900000 { compatible = "qcom,sde-kms"; reg = <0x0c900000 0x90000>, <0x0c9b0000 0x1040>; <0x0c9b0000 0x2008>; reg-names = "mdp_phys", "vbif_phys"; /* clock and supply entries */ Loading Loading @@ -52,23 +52,44 @@ /* hw blocks */ qcom,sde-off = <0x1000>; qcom,sde-len = <0x458>; qcom,sde-ctl-off = <0x2000 0x2200 0x2400 0x2600 0x2800>; qcom,sde-ctl-size = <0x94>; qcom,sde-mixer-off = <0x45000 0x46000 0x47000 0x48000 0x49000 0x4a000>; qcom,sde-mixer-size = <0x31c>; qcom,sde-dspp-off = <0x55000 0x57000>; qcom,sde-dspp-size = <0x17e0>; qcom,sde-wb-off = <0x66000>; qcom,sde-wb-size = <0x2dc>; qcom,sde-wb-id = <2>; qcom,sde-wb-xin-id = <6>; qcom,sde-wb-clk-ctrl = <0x2bc 0x10>; qcom,sde-intf-off = <0x6b000 0x6b800 0x6c000 0x6c800>; qcom,sde-intf-size = <0x280>; qcom,sde-intf-type = "dp", "dsi", "dsi", "hdmi"; qcom,sde-pp-off = <0x71000 0x71800 0x72000 0x72800>; qcom,sde-te2-off = <0x2000 0x2000 0x0 0x0>; 0x72000 0x72800 0x73000>; qcom,sde-pp-slave = <0x0 0x0 0x0 0x0 0x1>; qcom,sde-pp-size = <0xd4>; qcom,sde-te2-off = <0x2000 0x2000 0x0 0x0 0x0>; qcom,sde-cdm-off = <0x7a200>; qcom,sde-dsc-off = <0x10000 0x10000 0x0 0x0>; qcom,sde-cdm-size = <0x224>; qcom,sde-dsc-off = <0x81000 0x81400>; qcom,sde-dsc-size = <0x140>; qcom,sde-intf-max-prefetch-lines = <0x15 0x15 0x15 0x15>; qcom,sde-sspp-type = "vig", "vig", "vig", "vig", Loading @@ -78,6 +99,7 @@ qcom,sde-sspp-off = <0x5000 0x7000 0x9000 0xb000 0x25000 0x27000 0x29000 0x2b000 0x35000 0x37000>; qcom,sde-sspp-src-size = <0x1ac>; qcom,sde-sspp-xin-id = <0 4 8 12 1 5 9 13 2 10>; Loading Loading @@ -113,6 +135,7 @@ qcom,sde-sspp-vig-blocks { qcom,sde-vig-csc-off = <0x1a00>; qcom,sde-vig-qseed-off = <0xa00>; qcom,sde-vig-qseed-size = <0xa0>; }; qcom,platform-supply-entries { Loading
drivers/gpu/drm/msm/Kconfig +10 −0 Original line number Diff line number Diff line Loading @@ -98,3 +98,13 @@ config DRM_SDE_HDMI default y help Choose this option if HDMI connector support is needed in SDE driver. config DRM_SDE_EVTLOG_DEBUG bool "Enable event logging in MSM DRM" depends on DRM_MSM help The SDE DRM debugging provides support to enable display debugging features to: dump SDE registers during driver errors, panic driver during fatal errors and enable some display-driver logging into an internal buffer (this avoids logging overhead).
drivers/gpu/drm/msm/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ msm_drm-y := \ sde/sde_color_processing.o \ sde/sde_vbif.o \ sde/sde_splash.o \ sde_dbg.o \ sde_dbg_evtlog.o \ sde_io_util.o \ dba_bridge.o \ Loading
drivers/gpu/drm/msm/msm_drv.c +13 −3 Original line number Diff line number Diff line Loading @@ -293,7 +293,7 @@ static int msm_unload(struct drm_device *dev) priv->vram.paddr, &attrs); } sde_evtlog_destroy(); sde_dbg_destroy(); sde_power_client_destroy(&priv->phandle, priv->pclient); sde_power_resource_deinit(pdev, &priv->phandle); Loading Loading @@ -423,11 +423,17 @@ static int msm_component_bind_all(struct device *dev, } #endif static int msm_power_enable_wrapper(void *handle, void *client, bool enable) { return sde_power_resource_enable(handle, client, enable); } static int msm_load(struct drm_device *dev, unsigned long flags) { struct platform_device *pdev = dev->platformdev; struct msm_drm_private *priv; struct msm_kms *kms; struct sde_dbg_power_ctrl dbg_power_ctrl = { NULL }; int ret, i; priv = kzalloc(sizeof(*priv), GFP_KERNEL); Loading Loading @@ -477,9 +483,13 @@ static int msm_load(struct drm_device *dev, unsigned long flags) if (ret) goto fail; ret = sde_evtlog_init(dev->primary->debugfs_root); dbg_power_ctrl.handle = &priv->phandle; dbg_power_ctrl.client = priv->pclient; dbg_power_ctrl.enable_fn = msm_power_enable_wrapper; ret = sde_dbg_init(dev->primary->debugfs_root, &pdev->dev, &dbg_power_ctrl); if (ret) { dev_err(dev->dev, "failed to init evtlog: %d\n", ret); dev_err(dev->dev, "failed to init sde dbg: %d\n", ret); goto fail; } Loading