Loading arch/arm64/boot/dts/qcom/dsi-panel-nt35597-truly-dsc-wqxga-video.dtsi +2 −1 Original line number Diff line number Diff line /* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved. /* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -37,6 +37,7 @@ qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; qcom,mdss-pan-physical-width-dimension = <74>; qcom,mdss-pan-physical-height-dimension = <131>; qcom,mdss-dsi-dma-schedule-line = <5>; qcom,mdss-dsi-display-timings { timing@0{ Loading arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi +12 −4 Original line number Diff line number Diff line Loading @@ -698,10 +698,11 @@ qcom,mdss-dsi-display-timings { timing@0{ qcom,mdss-dsi-panel-phy-timings = [00 1A 06 06 22 20 07 07 04 02 04 00]; qcom,mdss-dsi-panel-phy-timings = [00 1E 08 08 24 22 08 08 05 02 04 00]; qcom,display-topology = <1 0 1>; qcom,default-topology-index = <0>; qcom,mdss-dsi-panel-clockrate = <900000000>; }; }; }; Loading Loading @@ -858,6 +859,13 @@ }; &dsi_sw43404_amoled_video { qcom,esd-check-enabled; qcom,mdss-dsi-panel-status-check-mode = "reg_read"; qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a]; qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode"; qcom,mdss-dsi-panel-status-value = <0x9c>; qcom,mdss-dsi-panel-on-check-value = <0x9c>; qcom,mdss-dsi-panel-status-read-length = <1>; qcom,mdss-dsi-display-timings { timing@0 { qcom,mdss-dsi-panel-phy-timings = [00 1a 07 06 22 21 07 Loading @@ -870,8 +878,8 @@ }; &dsi_sharp_1080_cmd { qcom,mdss-dsi-t-clk-post = <0x16>; qcom,mdss-dsi-t-clk-pre = <0x16>; qcom,mdss-dsi-t-clk-post = <0x18>; qcom,mdss-dsi-t-clk-pre = <0x19>; qcom,mdss-dsi-display-timings { timing@0{ qcom,mdss-dsi-panel-phy-timings = [00 1A 06 06 22 20 07 Loading arch/arm64/boot/dts/qcom/sm8150-sde.dtsi +1 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,7 @@ qcom,sde-highest-bank-bit = <0x2>; qcom,sde-ubwc-version = <0x300>; qcom,sde-ubwc-bw-calc-version = <0x1>; qcom,sde-smart-panel-align-mode = <0xc>; qcom,sde-panic-per-pipe; qcom,sde-has-cdp; qcom,sde-has-src-split; Loading drivers/gpu/drm/msm/dp/dp_aux.c +17 −11 Original line number Diff line number Diff line Loading @@ -58,20 +58,26 @@ struct dp_aux_private { static void dp_aux_hex_dump(struct drm_dp_aux *drm_aux, struct drm_dp_aux_msg *msg) { DEFINE_DYNAMIC_DEBUG_METADATA(ddm, "dp aux tracker"); if (unlikely(ddm.flags & _DPRINTK_FLAGS_PRINT)) { u8 buf[SZ_64]; char prefix[64]; int i, linelen, remaining = msg->size; const int rowsize = 16; u8 linebuf[64]; struct dp_aux_private *aux = container_of(drm_aux, struct dp_aux_private, drm_aux); snprintf(buf, SZ_64, "[drm-dp] %5s %5s %5xh(%2zu): ", aux->native ? "NATIVE" : "I2C", aux->read ? "READ" : "WRITE", snprintf(prefix, sizeof(prefix), "%s %s %4xh(%2zu): ", aux->native ? "NAT" : "I2C", aux->read ? "RD" : "WR", msg->address, msg->size); print_hex_dump(KERN_DEBUG, buf, DUMP_PREFIX_NONE, 8, 1, msg->buffer, msg->size, false); for (i = 0; i < msg->size; i += rowsize) { linelen = min(remaining, rowsize); remaining -= rowsize; hex_dump_to_buffer(msg->buffer + i, linelen, rowsize, 1, linebuf, sizeof(linebuf), false); pr_debug("%s%s\n", prefix, linebuf); } } #else Loading drivers/gpu/drm/msm/dp/dp_catalog.c +23 −1 Original line number Diff line number Diff line Loading @@ -940,6 +940,11 @@ static void dp_catalog_panel_config_msa(struct dp_catalog_panel *panel, * always be within the range of a 32 bit unsigned int. */ mvid = (u32) mvid_calc; if (panel->widebus_en) { mvid <<= 1; nvid <<= 1; } } else { io_data = catalog->io.dp_mmss_cc; Loading @@ -957,6 +962,9 @@ static void dp_catalog_panel_config_msa(struct dp_catalog_panel *panel, pr_debug("rate = %d\n", rate); if (panel->widebus_en) mvid <<= 1; if (link_rate_hbr2 == rate) nvid *= 2; Loading Loading @@ -1724,7 +1732,7 @@ static int dp_catalog_panel_timing_cfg(struct dp_catalog_panel *panel) { struct dp_catalog_private *catalog; struct dp_io_data *io_data; u32 offset = 0; u32 offset = 0, reg; if (!panel) { pr_err("invalid input\n"); Loading @@ -1750,6 +1758,20 @@ static int dp_catalog_panel_timing_cfg(struct dp_catalog_panel *panel) DP_HSYNC_VSYNC_WIDTH_POLARITY + offset, panel->width_blanking); dp_write(catalog->exe_mode, io_data, DP_ACTIVE_HOR_VER + offset, panel->dp_active); if (panel->stream_id == DP_STREAM_0) io_data = catalog->io.dp_p0; else io_data = catalog->io.dp_p1; reg = dp_read(catalog->exe_mode, io_data, MMSS_DP_INTF_CONFIG); if (panel->widebus_en) reg |= BIT(4); else reg &= ~BIT(4); dp_write(catalog->exe_mode, io_data, MMSS_DP_INTF_CONFIG, reg); end: return 0; } Loading Loading
arch/arm64/boot/dts/qcom/dsi-panel-nt35597-truly-dsc-wqxga-video.dtsi +2 −1 Original line number Diff line number Diff line /* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved. /* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -37,6 +37,7 @@ qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; qcom,mdss-pan-physical-width-dimension = <74>; qcom,mdss-pan-physical-height-dimension = <131>; qcom,mdss-dsi-dma-schedule-line = <5>; qcom,mdss-dsi-display-timings { timing@0{ Loading
arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi +12 −4 Original line number Diff line number Diff line Loading @@ -698,10 +698,11 @@ qcom,mdss-dsi-display-timings { timing@0{ qcom,mdss-dsi-panel-phy-timings = [00 1A 06 06 22 20 07 07 04 02 04 00]; qcom,mdss-dsi-panel-phy-timings = [00 1E 08 08 24 22 08 08 05 02 04 00]; qcom,display-topology = <1 0 1>; qcom,default-topology-index = <0>; qcom,mdss-dsi-panel-clockrate = <900000000>; }; }; }; Loading Loading @@ -858,6 +859,13 @@ }; &dsi_sw43404_amoled_video { qcom,esd-check-enabled; qcom,mdss-dsi-panel-status-check-mode = "reg_read"; qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a]; qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode"; qcom,mdss-dsi-panel-status-value = <0x9c>; qcom,mdss-dsi-panel-on-check-value = <0x9c>; qcom,mdss-dsi-panel-status-read-length = <1>; qcom,mdss-dsi-display-timings { timing@0 { qcom,mdss-dsi-panel-phy-timings = [00 1a 07 06 22 21 07 Loading @@ -870,8 +878,8 @@ }; &dsi_sharp_1080_cmd { qcom,mdss-dsi-t-clk-post = <0x16>; qcom,mdss-dsi-t-clk-pre = <0x16>; qcom,mdss-dsi-t-clk-post = <0x18>; qcom,mdss-dsi-t-clk-pre = <0x19>; qcom,mdss-dsi-display-timings { timing@0{ qcom,mdss-dsi-panel-phy-timings = [00 1A 06 06 22 20 07 Loading
arch/arm64/boot/dts/qcom/sm8150-sde.dtsi +1 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,7 @@ qcom,sde-highest-bank-bit = <0x2>; qcom,sde-ubwc-version = <0x300>; qcom,sde-ubwc-bw-calc-version = <0x1>; qcom,sde-smart-panel-align-mode = <0xc>; qcom,sde-panic-per-pipe; qcom,sde-has-cdp; qcom,sde-has-src-split; Loading
drivers/gpu/drm/msm/dp/dp_aux.c +17 −11 Original line number Diff line number Diff line Loading @@ -58,20 +58,26 @@ struct dp_aux_private { static void dp_aux_hex_dump(struct drm_dp_aux *drm_aux, struct drm_dp_aux_msg *msg) { DEFINE_DYNAMIC_DEBUG_METADATA(ddm, "dp aux tracker"); if (unlikely(ddm.flags & _DPRINTK_FLAGS_PRINT)) { u8 buf[SZ_64]; char prefix[64]; int i, linelen, remaining = msg->size; const int rowsize = 16; u8 linebuf[64]; struct dp_aux_private *aux = container_of(drm_aux, struct dp_aux_private, drm_aux); snprintf(buf, SZ_64, "[drm-dp] %5s %5s %5xh(%2zu): ", aux->native ? "NATIVE" : "I2C", aux->read ? "READ" : "WRITE", snprintf(prefix, sizeof(prefix), "%s %s %4xh(%2zu): ", aux->native ? "NAT" : "I2C", aux->read ? "RD" : "WR", msg->address, msg->size); print_hex_dump(KERN_DEBUG, buf, DUMP_PREFIX_NONE, 8, 1, msg->buffer, msg->size, false); for (i = 0; i < msg->size; i += rowsize) { linelen = min(remaining, rowsize); remaining -= rowsize; hex_dump_to_buffer(msg->buffer + i, linelen, rowsize, 1, linebuf, sizeof(linebuf), false); pr_debug("%s%s\n", prefix, linebuf); } } #else Loading
drivers/gpu/drm/msm/dp/dp_catalog.c +23 −1 Original line number Diff line number Diff line Loading @@ -940,6 +940,11 @@ static void dp_catalog_panel_config_msa(struct dp_catalog_panel *panel, * always be within the range of a 32 bit unsigned int. */ mvid = (u32) mvid_calc; if (panel->widebus_en) { mvid <<= 1; nvid <<= 1; } } else { io_data = catalog->io.dp_mmss_cc; Loading @@ -957,6 +962,9 @@ static void dp_catalog_panel_config_msa(struct dp_catalog_panel *panel, pr_debug("rate = %d\n", rate); if (panel->widebus_en) mvid <<= 1; if (link_rate_hbr2 == rate) nvid *= 2; Loading Loading @@ -1724,7 +1732,7 @@ static int dp_catalog_panel_timing_cfg(struct dp_catalog_panel *panel) { struct dp_catalog_private *catalog; struct dp_io_data *io_data; u32 offset = 0; u32 offset = 0, reg; if (!panel) { pr_err("invalid input\n"); Loading @@ -1750,6 +1758,20 @@ static int dp_catalog_panel_timing_cfg(struct dp_catalog_panel *panel) DP_HSYNC_VSYNC_WIDTH_POLARITY + offset, panel->width_blanking); dp_write(catalog->exe_mode, io_data, DP_ACTIVE_HOR_VER + offset, panel->dp_active); if (panel->stream_id == DP_STREAM_0) io_data = catalog->io.dp_p0; else io_data = catalog->io.dp_p1; reg = dp_read(catalog->exe_mode, io_data, MMSS_DP_INTF_CONFIG); if (panel->widebus_en) reg |= BIT(4); else reg &= ~BIT(4); dp_write(catalog->exe_mode, io_data, MMSS_DP_INTF_CONFIG, reg); end: return 0; } Loading