With proper unbinding audio components and inserting the HDMI external
display, kernel crashes as the following messages:
Unable to handle kernel NULL pointer dereference at virtual address ...
[snip]
Call trace:
plugged_cb+0x1c/0x74
mtk_hdmi_update_plugged_status+0x48/0x6c
hdmi_conn_detect+0x1c/0x28
drm_helper_probe_detect+0x110/0x170
drm_helper_probe_single_connector_modes+0xd4/0x608
drm_mode_getconnector+0x1e8/0x418
The 1st patch fixes the crash by notifying hdmi-codec's consumers to …
[View More]not
report jack status anymore when component removing.
The 2nd patch fixes race condition in mediatek/mtk_hdmi.c.
Changes from v1:
(https://patchwork.kernel.org/patch/11379979/)
- added the 1st patch
- use mutex to protect plugged_cb and codec_dev in 2nd patch
Tzung-Bi Shih (2):
ASoC: hdmi-codec: set plugged_cb to NULL when component removing
drm/mediatek: fix race condition for HDMI jack status reporting
drivers/gpu/drm/mediatek/mtk_hdmi.c | 11 ++++++++++-
sound/soc/codecs/hdmi-codec.c | 10 ++++++++++
2 files changed, 20 insertions(+), 1 deletion(-)
--
2.25.0.265.gbab2e86ba0-goog
[View Less]
https://bugzilla.kernel.org/show_bug.cgi?id=206577
Bug ID: 206577
Summary: Periodic screen blanking at a high refresh rate and
resolution
Product: Drivers
Version: 2.5
Kernel Version: 5.5
Hardware: All
OS: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: Video(DRI - non Intel)
Assignee: drivers_video-dri(a)…
[View More]kernel-bugs.osdl.org
Reporter: tombazley(a)outlook.com
Regression: No
Using a Samsung LC43J892DKUXEN 43" monitor with a Vega 64.
I am unable to set the display output to 3840x1200 @ 120Hz. At 100Hz the
display behaves as expected, however at 120Hz the display will turn black
briefly as if there is a power loss or as if the source input has changed. This
will repeat maybe a couple of times every minute.
I have tested using a ROG Strix RX VEGA64 OC edition and a Sapphire Radeon RX
VEGA 64 Nitro+.
I've tested on linux 5.5.2 and mesa 19.3.3, as well as on driver versions
19.9.3, 19.12.3, 19.7.5, 19.12.2, 20.1.1, and 20.2.1 on Windows. I submitted
this issue to the AMD bug report a few weeks ago but haven't heard anything
back from them, so I am submitting here as well.
I had the monitor sent back to Samsung for testing. They used a STRIX GTX950
and had no issues.
I have tried multiple DisplayPort cables including the one included with the
monitor.
--
You are receiving this mail because:
You are watching the assignee of the bug.
[View Less]
For a given byte clock, if VCO recalc value is exactly same as
vco set rate value, vco_set_rate does not get called assuming
VCO is already set to required value. But Due to GDSC toggle,
VCO values are erased in the HW. To make sure VCO is programmed
correctly, we forcefully call set_rate from vco_prepare.
Signed-off-by: Harigovindan P <harigovi(a)codeaurora.org>
---
Changes in v1:
- Calling set rate from vco_prepare
drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c | 6 ++++++
1 file …
[View More]changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c b/drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c
index 1c89454..6ac04fc 100644
--- a/drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c
+++ b/drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c
@@ -411,6 +411,12 @@ static int dsi_pll_10nm_vco_prepare(struct clk_hw *hw)
if (pll_10nm->slave)
dsi_pll_enable_pll_bias(pll_10nm->slave);
+ rc = dsi_pll_10nm_vco_set_rate(hw,pll_10nm->vco_current_rate, 0);
+ if (rc) {
+ pr_err("vco_set_rate failed, rc=%d\n", rc);
+ return rc;
+ }
+
/* Start PLL */
pll_write(pll_10nm->phy_cmn_mmio + REG_DSI_10nm_PHY_CMN_PLL_CNTRL,
0x01);
--
2.7.4
[View Less]
If the panel interface is 24-bit but our primary plane is 16bpp,
configure as if the panel was 18-bit. This tricks permits the display
of 16bpp data on a 24-bit panel by wiring each color component to the
MSBs of the 24-bit interface.
Signed-off-by: Paul Cercueil <paul(a)crapouillou.net>
---
drivers/gpu/drm/ingenic/ingenic-drm.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/ingenic/ingenic-drm.c b/drivers/gpu/drm/ingenic/ingenic-…
[View More]drm.c
index 6d47ef7b148c..034961a40e98 100644
--- a/drivers/gpu/drm/ingenic/ingenic-drm.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm.c
@@ -400,6 +400,8 @@ static void ingenic_drm_encoder_atomic_mode_set(struct drm_encoder *encoder,
struct drm_display_mode *mode = &crtc_state->adjusted_mode;
struct drm_connector *conn = conn_state->connector;
struct drm_display_info *info = &conn->display_info;
+ struct drm_plane_state *plane_state = crtc_state->crtc->primary->state;
+ const struct drm_format_info *finfo = NULL;
unsigned int cfg;
priv->panel_is_sharp = info->bus_flags & DRM_BUS_FLAG_SHARP_SIGNALS;
@@ -435,7 +437,22 @@ static void ingenic_drm_encoder_atomic_mode_set(struct drm_encoder *encoder,
cfg |= JZ_LCD_CFG_MODE_GENERIC_18BIT;
break;
case MEDIA_BUS_FMT_RGB888_1X24:
- cfg |= JZ_LCD_CFG_MODE_GENERIC_24BIT;
+ if (plane_state && plane_state->fb)
+ finfo = plane_state->fb->format;
+
+ /*
+ * If the panel interface is 24-bit but our
+ * primary plane is 16bpp, configure as if the
+ * panel was 18-bit. This tricks permits the
+ * display of 16bpp data on a 24-bit panel by
+ * wiring each color component to the MSBs of
+ * the 24-bit interface.
+ */
+ if (finfo &&
+ finfo->format != DRM_FORMAT_XRGB8888)
+ cfg |= JZ_LCD_CFG_MODE_GENERIC_18BIT;
+ else
+ cfg |= JZ_LCD_CFG_MODE_GENERIC_24BIT;
break;
case MEDIA_BUS_FMT_RGB888_3X8:
cfg |= JZ_LCD_CFG_MODE_8BIT_SERIAL;
--
2.25.0
[View Less]
Hey,
Nothing major here, another TU1xx modesetting fix, and hooking up
ACR/GR support on TU11x now that NVIDIA have made the firmware
available.
Thanks,
Ben.
The following changes since commit 137c4ba7163ad9d5696b9fde78b1c0898a9c115b:
drm/nouveau/kms/gv100-: avoid sending a core update until the first
modeset (2020-02-03 21:36:54 +1000)
are available in the Git repository at:
git://github.com/skeggsb/linux linux-5.6
for you to fetch changes up to …
[View More]f287d3d19769b1d22cba4e51fa0487f2697713c9:
drm/nouveau/kms/gv100-: Re-set LUT after clearing for modesets
(2020-02-17 17:19:00 +1000)
----------------------------------------------------------------
Ben Skeggs (2):
drm/nouveau/acr/tu11x: initial support
drm/nouveau/gr/tu11x: initial support
Lyude Paul (1):
drm/nouveau/kms/gv100-: Re-set LUT after clearing for modesets
drivers/gpu/drm/nouveau/dispnv50/wndw.c | 2 ++
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 4 ++++
drivers/gpu/drm/nouveau/nvkm/engine/gr/tu102.c | 26 +++++++++++++++++++++++
drivers/gpu/drm/nouveau/nvkm/subdev/acr/tu102.c | 14 ++++++++++++
drivers/gpu/drm/nouveau/nvkm/subdev/fb/gv100.c | 2 ++
[View Less]