lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
 <CO6PR12MB548906926B8D079157735F52FCB02@CO6PR12MB5489.namprd12.prod.outlook.com>
Date: Tue, 30 Jul 2024 06:05:34 +0000
From: "Lin, Wayne" <Wayne.Lin@....com>
To: "kevin@...m.dev" <kevin@...m.dev>, Linux regressions mailing list
	<regressions@...ts.linux.dev>, Christian Heusel <christian@...sel.eu>
CC: Greg KH <gregkh@...uxfoundation.org>, "stable@...r.kernel.org"
	<stable@...r.kernel.org>, LKML <linux-kernel@...r.kernel.org>, ML dri-devel
	<dri-devel@...ts.freedesktop.org>, "amd-gfx@...ts.freedesktop.org"
	<amd-gfx@...ts.freedesktop.org>, "Wu, Hersen" <hersenxs.wu@....com>,
	"Deucher, Alexander" <Alexander.Deucher@....com>
Subject: RE: [REGRESSION] No image on 4k display port displays connected
 through usb-c dock in kernel 6.10

[Public]

Thanks, Kevin.
The revert patch seems correct, but we plan to refactor this function as the following patch
fa57924c76d995 ("drm/amd/display: Refactor function dm_dp_mst_is_port_support_mode()")

I'll make time to provide one. Thanks!

Regards,
Wayne

> -----Original Message-----
> From: kevin@...m.dev <kevin@...m.dev>
> Sent: Monday, July 29, 2024 9:22 PM
> To: Linux regressions mailing list <regressions@...ts.linux.dev>; Christian
> Heusel <christian@...sel.eu>
> Cc: Greg KH <gregkh@...uxfoundation.org>; Lin, Wayne
> <Wayne.Lin@....com>; stable@...r.kernel.org; LKML <linux-
> kernel@...r.kernel.org>; ML dri-devel <dri-devel@...ts.freedesktop.org>;
> amd-gfx@...ts.freedesktop.org; Wu, Hersen <hersenxs.wu@....com>;
> Deucher, Alexander <Alexander.Deucher@....com>
> Subject: Re: [REGRESSION] No image on 4k display port displays connected
> through usb-c dock in kernel 6.10
>
> July 29, 2024 at 11:15 AM, "Linux regression tracking (Thorsten Leemhuis)"
> <regressions@...mhuis.info> wrote:
>
>
>
> >
> > On 29.07.24 10:47, Christian Heusel wrote:
> >
> > >
> > > On 24/07/29 10:35AM, Linux regression tracking (Thorsten Leemhuis)
> wrote:
> > >
> > > >
> > > > [+Greg +stable]
> > > >
> > > >  On 29.07.24 10:16, Lin, Wayne wrote:
> > > >
> > >
> > >  Thanks for the report.
> > >
> > >  Patch fa57924c76d995 ("drm/amd/display: Refactor function
> > > dm_dp_mst_is_port_support_mode()")
> > >
> > >  is kind of correcting problems causing by commit:
> > >
> > >  4df96ba6676034 ("drm/amd/display: Add timing pixel encoding for mst
> > > mode validation")
> > >
> > >  Sorry if it misses fixes tag and would suggest to backport to fix it. Thanks!
> > >
> > > >
> > > > Greg, seem it would be wise to pick up fa57924c76d995 for 6.10.y
> > > > as
> > > >
> > > >  well, despite a lack of Fixes or stable tags.
> > > >
> > > >  Ciao, Thorsten
> > > >
> > >
> > >
> > >
> > >  The issue is that the fixing commit does not apply to the 6.10
> > > series
> > >
> > >  without conflict and the offending commit does not revert cleanly
> > >
> > >  aswell.
> > >
> >
> > Hah, many thx, I should have checked that.
> >
> > Lin, Wayne: could you maybe help out here and provide something for
> 6.10.y?
> >
> > Ciao, Thorsten
> >
>
> I reverted 4df96ba6676034 from v6.10.2 from the stable/linux git, resolving
> the conflict by removing everything that git marked as from the current branch
> and kept everything marked as from before the branch to merge. That resulted
> in a patch that is fixing the problem on my machine. Since I don't understand
> what the code is actually doing it might break things on other machines.
>
> From cd1674a469cede83f6b0907f320b6af08c3c8950 Mon Sep 17 00:00:00
> 2001
> From: Kevin Holm <kevin@...m.dev>
> Date: Mon, 29 Jul 2024 13:24:38 +0200
> Subject: [PATCH] Test patch
>
> ---
>  .../display/amdgpu_dm/amdgpu_dm_mst_types.c   | 33 +++----------------
>  1 file changed, 5 insertions(+), 28 deletions(-)
>
> diff --git
> a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> index a5e1a93ddaea..5c555a37e367 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> @@ -1599,7 +1599,7 @@ enum dc_status
> dm_dp_mst_is_port_support_mode(
>      struct amdgpu_dm_connector *aconnector,
>      struct dc_stream_state *stream)
>  {
> -    int pbn, branch_max_throughput_mps = 0;
> +    int bpp, pbn, branch_max_throughput_mps = 0;
>      struct dc_link_settings cur_link_settings;
>      unsigned int end_to_end_bw_in_kbps = 0;
>      unsigned int upper_link_bw_in_kbps = 0, down_link_bw_in_kbps = 0; @@ -
> 1649,34 +1649,11 @@ enum dc_status dm_dp_mst_is_port_support_mode(
>              }
>          }
>      } else {
> -        /* Check if mode could be supported within max slot
> -         * number of current mst link and full_pbn of mst links.
> -         */
> -        int pbn_div, slot_num, max_slot_num;
> -        enum dc_link_encoding_format link_encoding;
> -        uint32_t stream_kbps =
> -            dc_bandwidth_in_kbps_from_timing(&stream->timing,
> -                dc_link_get_highest_encoding_format(stream->link));
> -
> -        pbn = kbps_to_peak_pbn(stream_kbps);
> -        pbn_div = dm_mst_get_pbn_divider(stream->link);
> -        slot_num = DIV_ROUND_UP(pbn, pbn_div);
> -
> -        link_encoding = dc_link_get_highest_encoding_format(stream->link);
> -        if (link_encoding == DC_LINK_ENCODING_DP_8b_10b)
> -            max_slot_num = 63;
> -        else if (link_encoding == DC_LINK_ENCODING_DP_128b_132b)
> -            max_slot_num = 64;
> -        else {
> -            DRM_DEBUG_DRIVER("Invalid link encoding format\n");
> +        /* check if mode could be supported within full_pbn */
> +        bpp = convert_dc_color_depth_into_bpc(stream-
> >timing.display_color_depth) * 3;
> +        pbn = drm_dp_calc_pbn_mode(stream->timing.pix_clk_100hz / 10, bpp
> << 4);
> +        if (pbn > aconnector->mst_output_port->full_pbn)
>              return DC_FAIL_BANDWIDTH_VALIDATE;
> -        }
> -
> -        if (slot_num > max_slot_num ||
> -            pbn > aconnector->mst_output_port->full_pbn) {
> -            DRM_DEBUG_DRIVER("Mode can not be supported within mst links!");
> -            return DC_FAIL_BANDWIDTH_VALIDATE;
> -        }
>      }
>
>      /* check is mst dsc output bandwidth branch_overall_throughput_0_mps
> */
> --
> 2.45.2
>
>
> Regards,
> Kevin

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ