Commit db1a079
drm/dp_mst: Handle SST-only branch device case
[Why]
While handling LINK_ADDRESS reply, current code expects a peer device
can handle sideband message once the peer device type is reported as
DP_PEER_DEVICE_MST_BRANCHING. However, when the connected device is
a SST branch case, it can't handle the sideband message(MST_CAP=0 in
DPCD 00021h).
Current code will try to send LINK_ADDRESS to SST branch device and end
up with message timeout and monitor can't display normally. As the
result of that, we should take SST branch device into account.
[How]
According to DP 1.4 spec, we can use Peer_Device_Type as
DP_PEER_DEVICE_MST_BRANCHING and Message_Capability_Status as 0 to
indicate peer device as a SST-only branch device.
Fix following:
- Add the function drm_dp_mst_is_dp_mst_end_device() to decide whether a
peer device connected to a DFP is mst end device. Which also indicates
if the peer device is capable of handling message or not.
- Take SST-only branch device case into account in
drm_dp_port_set_pdt() and add a new parameter 'new_mcs'. Take sst branch
device case as the same case as DP_PEER_DEVICE_DP_LEGACY_CONV and
DP_PEER_DEVICE_SST_SINK. All original handling logics remain.
- Take SST-only branch device case into account in
drm_dp_mst_port_add_connector().
- Fix some parts in drm_dp_mst_handle_link_address_port() to have SST
branch device case into consideration.
- Fix the arguments of drm_dp_port_set_pdt() in
drm_dp_mst_handle_conn_stat().
- Have SST branch device also report
connector_status_connected when the ddps is true
in drm_dp_mst_detect_port()
- Fix the arguments of drm_dp_port_set_pdt() in
drm_dp_delayed_destroy_port()
Changes since v1:(https://patchwork.kernel.org/patch/11323079/)
* Squash previous patch into one patch and merge the commit message here.
* Combine the if statements mentioned in comments
Fixes: c485e2c ("drm/dp_mst: Refactor pdt setup/teardown, add more locking")
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Harry Wentland <hwentlan@amd.com>
Cc: Lyude Paul <lyude@redhat.com>
Signed-off-by: Wayne Lin <Wayne.Lin@amd.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200117060350.26358-2-Wayne.Lin@amd.com1 parent 5a64967 commit db1a079
1 file changed
Lines changed: 80 additions & 60 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1916 | 1916 | | |
1917 | 1917 | | |
1918 | 1918 | | |
1919 | | - | |
| 1919 | + | |
| 1920 | + | |
| 1921 | + | |
| 1922 | + | |
| 1923 | + | |
| 1924 | + | |
| 1925 | + | |
| 1926 | + | |
| 1927 | + | |
| 1928 | + | |
| 1929 | + | |
| 1930 | + | |
| 1931 | + | |
| 1932 | + | |
| 1933 | + | |
| 1934 | + | |
| 1935 | + | |
| 1936 | + | |
| 1937 | + | |
1920 | 1938 | | |
1921 | 1939 | | |
1922 | 1940 | | |
1923 | 1941 | | |
1924 | 1942 | | |
1925 | 1943 | | |
1926 | | - | |
| 1944 | + | |
1927 | 1945 | | |
1928 | 1946 | | |
1929 | 1947 | | |
1930 | | - | |
1931 | | - | |
1932 | | - | |
1933 | | - | |
1934 | | - | |
1935 | | - | |
1936 | | - | |
1937 | | - | |
1938 | | - | |
1939 | | - | |
1940 | | - | |
1941 | | - | |
| 1948 | + | |
| 1949 | + | |
| 1950 | + | |
| 1951 | + | |
| 1952 | + | |
| 1953 | + | |
| 1954 | + | |
| 1955 | + | |
| 1956 | + | |
| 1957 | + | |
| 1958 | + | |
| 1959 | + | |
1942 | 1960 | | |
1943 | | - | |
1944 | | - | |
1945 | | - | |
1946 | | - | |
1947 | | - | |
1948 | | - | |
1949 | | - | |
1950 | | - | |
1951 | | - | |
| 1961 | + | |
| 1962 | + | |
| 1963 | + | |
| 1964 | + | |
| 1965 | + | |
| 1966 | + | |
| 1967 | + | |
| 1968 | + | |
1952 | 1969 | | |
1953 | 1970 | | |
1954 | 1971 | | |
1955 | | - | |
1956 | | - | |
1957 | | - | |
1958 | | - | |
1959 | | - | |
1960 | | - | |
| 1972 | + | |
1961 | 1973 | | |
1962 | | - | |
1963 | | - | |
1964 | | - | |
1965 | | - | |
1966 | | - | |
1967 | | - | |
1968 | | - | |
1969 | | - | |
| 1974 | + | |
| 1975 | + | |
| 1976 | + | |
| 1977 | + | |
| 1978 | + | |
| 1979 | + | |
| 1980 | + | |
| 1981 | + | |
| 1982 | + | |
| 1983 | + | |
| 1984 | + | |
| 1985 | + | |
| 1986 | + | |
1970 | 1987 | | |
1971 | | - | |
1972 | | - | |
1973 | | - | |
1974 | | - | |
| 1988 | + | |
| 1989 | + | |
| 1990 | + | |
| 1991 | + | |
1975 | 1992 | | |
1976 | | - | |
1977 | | - | |
1978 | | - | |
1979 | | - | |
1980 | | - | |
1981 | | - | |
| 1993 | + | |
| 1994 | + | |
| 1995 | + | |
| 1996 | + | |
| 1997 | + | |
| 1998 | + | |
1982 | 1999 | | |
1983 | | - | |
1984 | | - | |
1985 | | - | |
| 2000 | + | |
| 2001 | + | |
| 2002 | + | |
1986 | 2003 | | |
1987 | 2004 | | |
1988 | 2005 | | |
| |||
2135 | 2152 | | |
2136 | 2153 | | |
2137 | 2154 | | |
2138 | | - | |
2139 | | - | |
2140 | | - | |
| 2155 | + | |
| 2156 | + | |
2141 | 2157 | | |
2142 | 2158 | | |
2143 | 2159 | | |
| |||
2201 | 2217 | | |
2202 | 2218 | | |
2203 | 2219 | | |
| 2220 | + | |
2204 | 2221 | | |
2205 | 2222 | | |
2206 | 2223 | | |
| |||
2245 | 2262 | | |
2246 | 2263 | | |
2247 | 2264 | | |
2248 | | - | |
| 2265 | + | |
2249 | 2266 | | |
2250 | 2267 | | |
2251 | 2268 | | |
| |||
2272 | 2289 | | |
2273 | 2290 | | |
2274 | 2291 | | |
2275 | | - | |
| 2292 | + | |
2276 | 2293 | | |
2277 | 2294 | | |
2278 | 2295 | | |
| |||
2286 | 2303 | | |
2287 | 2304 | | |
2288 | 2305 | | |
2289 | | - | |
| 2306 | + | |
| 2307 | + | |
2290 | 2308 | | |
2291 | 2309 | | |
2292 | 2310 | | |
| |||
2323 | 2341 | | |
2324 | 2342 | | |
2325 | 2343 | | |
| 2344 | + | |
2326 | 2345 | | |
2327 | 2346 | | |
2328 | 2347 | | |
| |||
2354 | 2373 | | |
2355 | 2374 | | |
2356 | 2375 | | |
2357 | | - | |
2358 | 2376 | | |
2359 | 2377 | | |
2360 | 2378 | | |
| |||
2367 | 2385 | | |
2368 | 2386 | | |
2369 | 2387 | | |
2370 | | - | |
2371 | | - | |
| 2388 | + | |
| 2389 | + | |
2372 | 2390 | | |
2373 | 2391 | | |
2374 | 2392 | | |
| |||
3929 | 3947 | | |
3930 | 3948 | | |
3931 | 3949 | | |
| 3950 | + | |
| 3951 | + | |
3932 | 3952 | | |
3933 | 3953 | | |
3934 | 3954 | | |
| |||
4541 | 4561 | | |
4542 | 4562 | | |
4543 | 4563 | | |
4544 | | - | |
| 4564 | + | |
4545 | 4565 | | |
4546 | 4566 | | |
4547 | 4567 | | |
| |||
0 commit comments