Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/dp_mst: Refactor drm_dp_update_payload_part1()

This:

- Adds local variables in the first loop, instead of using array indices
everywhere
- Adds an early continue to reduce the indent level in the second loop

There should be no functional changes here

Signed-off-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Juston Li <juston.li@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181214012604.13746-3-lyude@redhat.com

+42 -29
+42 -29
drivers/gpu/drm/drm_dp_mst_topology.c
··· 1879 1879 1880 1880 mutex_lock(&mgr->payload_lock); 1881 1881 for (i = 0; i < mgr->max_payloads; i++) { 1882 + struct drm_dp_vcpi *vcpi = mgr->proposed_vcpis[i]; 1883 + struct drm_dp_payload *payload = &mgr->payloads[i]; 1884 + 1882 1885 /* solve the current payloads - compare to the hw ones 1883 1886 - update the hw view */ 1884 1887 req_payload.start_slot = cur_slots; 1885 - if (mgr->proposed_vcpis[i]) { 1886 - port = container_of(mgr->proposed_vcpis[i], struct drm_dp_mst_port, vcpi); 1888 + if (vcpi) { 1889 + port = container_of(vcpi, struct drm_dp_mst_port, 1890 + vcpi); 1887 1891 port = drm_dp_get_validated_port_ref(mgr, port); 1888 1892 if (!port) { 1889 1893 mutex_unlock(&mgr->payload_lock); 1890 1894 return -EINVAL; 1891 1895 } 1892 - req_payload.num_slots = mgr->proposed_vcpis[i]->num_slots; 1893 - req_payload.vcpi = mgr->proposed_vcpis[i]->vcpi; 1896 + req_payload.num_slots = vcpi->num_slots; 1897 + req_payload.vcpi = vcpi->vcpi; 1894 1898 } else { 1895 1899 port = NULL; 1896 1900 req_payload.num_slots = 0; 1897 1901 } 1898 1902 1899 - mgr->payloads[i].start_slot = req_payload.start_slot; 1903 + payload->start_slot = req_payload.start_slot; 1900 1904 /* work out what is required to happen with this payload */ 1901 - if (mgr->payloads[i].num_slots != req_payload.num_slots) { 1905 + if (payload->num_slots != req_payload.num_slots) { 1902 1906 1903 1907 /* need to push an update for this payload */ 1904 1908 if (req_payload.num_slots) { 1905 - drm_dp_create_payload_step1(mgr, mgr->proposed_vcpis[i]->vcpi, &req_payload); 1906 - mgr->payloads[i].num_slots = req_payload.num_slots; 1907 - mgr->payloads[i].vcpi = req_payload.vcpi; 1908 - } else if (mgr->payloads[i].num_slots) { 1909 - mgr->payloads[i].num_slots = 0; 1910 - drm_dp_destroy_payload_step1(mgr, port, mgr->payloads[i].vcpi, &mgr->payloads[i]); 1911 - req_payload.payload_state = mgr->payloads[i].payload_state; 1912 - mgr->payloads[i].start_slot = 0; 1909 + drm_dp_create_payload_step1(mgr, vcpi->vcpi, 1910 + &req_payload); 1911 + payload->num_slots = req_payload.num_slots; 1912 + payload->vcpi = req_payload.vcpi; 1913 + 1914 + } else if (payload->num_slots) { 1915 + payload->num_slots = 0; 1916 + drm_dp_destroy_payload_step1(mgr, port, 1917 + payload->vcpi, 1918 + payload); 1919 + req_payload.payload_state = 1920 + payload->payload_state; 1921 + payload->start_slot = 0; 1913 1922 } 1914 - mgr->payloads[i].payload_state = req_payload.payload_state; 1923 + payload->payload_state = req_payload.payload_state; 1915 1924 } 1916 1925 cur_slots += req_payload.num_slots; 1917 1926 ··· 1929 1920 } 1930 1921 1931 1922 for (i = 0; i < mgr->max_payloads; i++) { 1932 - if (mgr->payloads[i].payload_state == DP_PAYLOAD_DELETE_LOCAL) { 1933 - DRM_DEBUG_KMS("removing payload %d\n", i); 1934 - for (j = i; j < mgr->max_payloads - 1; j++) { 1935 - memcpy(&mgr->payloads[j], &mgr->payloads[j + 1], sizeof(struct drm_dp_payload)); 1936 - mgr->proposed_vcpis[j] = mgr->proposed_vcpis[j + 1]; 1937 - if (mgr->proposed_vcpis[j] && mgr->proposed_vcpis[j]->num_slots) { 1938 - set_bit(j + 1, &mgr->payload_mask); 1939 - } else { 1940 - clear_bit(j + 1, &mgr->payload_mask); 1941 - } 1942 - } 1943 - memset(&mgr->payloads[mgr->max_payloads - 1], 0, sizeof(struct drm_dp_payload)); 1944 - mgr->proposed_vcpis[mgr->max_payloads - 1] = NULL; 1945 - clear_bit(mgr->max_payloads, &mgr->payload_mask); 1923 + if (mgr->payloads[i].payload_state != DP_PAYLOAD_DELETE_LOCAL) 1924 + continue; 1946 1925 1926 + DRM_DEBUG_KMS("removing payload %d\n", i); 1927 + for (j = i; j < mgr->max_payloads - 1; j++) { 1928 + mgr->payloads[j] = mgr->payloads[j + 1]; 1929 + mgr->proposed_vcpis[j] = mgr->proposed_vcpis[j + 1]; 1930 + 1931 + if (mgr->proposed_vcpis[j] && 1932 + mgr->proposed_vcpis[j]->num_slots) { 1933 + set_bit(j + 1, &mgr->payload_mask); 1934 + } else { 1935 + clear_bit(j + 1, &mgr->payload_mask); 1936 + } 1947 1937 } 1938 + 1939 + memset(&mgr->payloads[mgr->max_payloads - 1], 0, 1940 + sizeof(struct drm_dp_payload)); 1941 + mgr->proposed_vcpis[mgr->max_payloads - 1] = NULL; 1942 + clear_bit(mgr->max_payloads, &mgr->payload_mask); 1948 1943 } 1949 1944 mutex_unlock(&mgr->payload_lock); 1950 1945