Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1819585imu; Fri, 14 Dec 2018 00:49:05 -0800 (PST) X-Google-Smtp-Source: AFSGD/WrDeSn6TWDNptvbnSGVb6VxnoUlJ9K2A4WBxt6mGMlJZDpdyYMk/SY9dxF5F7Ba/VUIe3S X-Received: by 2002:a17:902:2006:: with SMTP id n6mr2137070pla.66.1544777345592; Fri, 14 Dec 2018 00:49:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544777345; cv=none; d=google.com; s=arc-20160816; b=BWRPJ84AvWo63n05CLUZ2i4MQs3G7fOP3900z5bLQ95QU35LpQ3CDmIiqbJwZqoloM g9zfeOsm27O+MqaTF9RWiwIZqF22VqkAAD8hKjwLb6kycK0BdqFWDwGG4wosPT6A4Ekr qSnAO8OYYFXG39tQPRCynkgUByH2u6unCUTQ+U+K6WZlqIlChG/68a7m/xKXupM2zCKL 1xXoF62g2tUrVivbW9XZgNExFvfRK5N76wYFuGk8W3u5ncVIKng6fhpntIPhTx4FmBS3 EVTl92juaEbcW5VjKYHFQzCPSUMHnYJpP25tYiCEQzyxxUx8Z0vZgcAvs/4fukb4QfJa nbtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:mail-followup-to :message-id:subject:cc:to:from:date:dkim-signature; bh=N/x1QJua7CUAnyrcnvFWJwm3HvcMW/4AYkZOcxlxDKE=; b=n27su7H3gJz0sUpuy54POk2yl0DR+TngpqFgABJgAQvejfJHFULhVl2xQHWP6+O8QI oTefVOoknkJGz3o76rQNXFQpj+Qr3t8w8/2qBEb6c2SH4AowOnVWHOs9DE0neaC836WZ nRr6F2YBvCm0RnhlW5h0AQP3e4GWvEYahRa4dKlO/Q0LqRwyedhL3mFKk0VWW5ok9MyX mMxKQVBMnwZ8n/4jvsll49rUhnR+ZaZEgv2iC40A2IHMpKIPe22mHBvdsd5dW36bzlmM BtiHyLAU7+hCUmC7eFWcO8cJkTfyxhlsJaBju2405W3EYoxTOH3lsGGFTAtXD1mEcoIU 9rpA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b=PLMvc1oc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y15si3598188pgf.321.2018.12.14.00.48.50; Fri, 14 Dec 2018 00:49:05 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b=PLMvc1oc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728656AbeLNIrs (ORCPT + 99 others); Fri, 14 Dec 2018 03:47:48 -0500 Received: from mail-ed1-f67.google.com ([209.85.208.67]:45097 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726494AbeLNIrs (ORCPT ); Fri, 14 Dec 2018 03:47:48 -0500 Received: by mail-ed1-f67.google.com with SMTP id d39so4265492edb.12 for ; Fri, 14 Dec 2018 00:47:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition:in-reply-to:user-agent; bh=N/x1QJua7CUAnyrcnvFWJwm3HvcMW/4AYkZOcxlxDKE=; b=PLMvc1ocGDFep2u5UAL03lM/Svo2UgGQ8eDtSeBMkDBGoV50EcaIzalp0JqMliONZs Mb7hyxgYyjdpUdtSduU4Xue1ApxSFYQFzlI28iktagJuo/04jJKpIw369Jm9fBsM63hZ s6qsJImuZY0bnG9D9v7xjo2ZZop4vPNN4+d6c= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to:user-agent; bh=N/x1QJua7CUAnyrcnvFWJwm3HvcMW/4AYkZOcxlxDKE=; b=idk/KYyo11LBxI457QsnxaYEy+sifqrZepeKD5DrRBPjZ16ROGBQMmOBieOqAmDnmv 6hYZLBiFruoir8GOc7KZEHIBSfgxekdFkUavEk+sTcUdgQ/vKp9XHqWWcWaABOfX0jmq 3AUYbduTNjiuxjjzO89wrgdqRCHmKkGpEItoy57nRUIAg+UIZsSHbBHwsvWa4oAZu+vz u3D8SwK1TYkBij0mhGQ51xzKAH9nnCXZQ/dGTuHQJaH5vkq6uat5BTsnFN2QxUJGsWFy 3sAGDkwXy/TmaFa6/UD5g9Yr3boepjn06VVlSv/Z01qFPPzrRx9Kv5+LzzeltVVThlP5 kEFA== X-Gm-Message-State: AA+aEWbV1VtZOENtOQLPx46J7M8mrB9yts3WTs1OQZG5tva0tENFx12S 3dafyKQfot3/RoQUBLuG+iCePw== X-Received: by 2002:aa7:d8d3:: with SMTP id k19mr2299628eds.64.1544777266040; Fri, 14 Dec 2018 00:47:46 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:569e:0:3106:d637:d723:e855]) by smtp.gmail.com with ESMTPSA id k26-v6sm707627ejv.59.2018.12.14.00.47.44 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 14 Dec 2018 00:47:45 -0800 (PST) Date: Fri, 14 Dec 2018 09:47:43 +0100 From: Daniel Vetter To: Lyude Paul Cc: dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, Daniel Vetter , Dave Airlie , Harry Wentland , Jerry Zuo , Juston Li , Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , linux-kernel@vger.kernel.org Subject: Re: [WIP PATCH 02/15] drm/dp_mst: Refactor drm_dp_update_payload_part1() Message-ID: <20181214084743.GM21184@phenom.ffwll.local> Mail-Followup-To: Lyude Paul , dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, Dave Airlie , Harry Wentland , Jerry Zuo , Juston Li , Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , linux-kernel@vger.kernel.org References: <20181214012604.13746-1-lyude@redhat.com> <20181214012604.13746-3-lyude@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181214012604.13746-3-lyude@redhat.com> X-Operating-System: Linux phenom 4.18.0-2-amd64 User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Dec 13, 2018 at 08:25:31PM -0500, Lyude Paul wrote: > There should be no functional changes here Would be good to explain what you did refactor here, instead of me trying to reconstruct it from the patch. Especially pre-coffee that helps :-) > > Signed-off-by: Lyude Paul > Cc: Juston Li > --- > drivers/gpu/drm/drm_dp_mst_topology.c | 71 ++++++++++++++++----------- > 1 file changed, 42 insertions(+), 29 deletions(-) > > diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c > index 9b1b5c9b1fa0..2ab16c9e6243 100644 > --- a/drivers/gpu/drm/drm_dp_mst_topology.c > +++ b/drivers/gpu/drm/drm_dp_mst_topology.c > @@ -1879,39 +1879,48 @@ int drm_dp_update_payload_part1(struct drm_dp_mst_topology_mgr *mgr) > > mutex_lock(&mgr->payload_lock); > for (i = 0; i < mgr->max_payloads; i++) { > + struct drm_dp_vcpi *vcpi = mgr->proposed_vcpis[i]; > + struct drm_dp_payload *payload = &mgr->payloads[i]; > + > /* solve the current payloads - compare to the hw ones > - update the hw view */ > req_payload.start_slot = cur_slots; > - if (mgr->proposed_vcpis[i]) { > - port = container_of(mgr->proposed_vcpis[i], struct drm_dp_mst_port, vcpi); > + if (vcpi) { > + port = container_of(vcpi, struct drm_dp_mst_port, > + vcpi); > port = drm_dp_get_validated_port_ref(mgr, port); > if (!port) { > mutex_unlock(&mgr->payload_lock); > return -EINVAL; > } > - req_payload.num_slots = mgr->proposed_vcpis[i]->num_slots; > - req_payload.vcpi = mgr->proposed_vcpis[i]->vcpi; > + req_payload.num_slots = vcpi->num_slots; > + req_payload.vcpi = vcpi->vcpi; > } else { > port = NULL; > req_payload.num_slots = 0; > } > > - mgr->payloads[i].start_slot = req_payload.start_slot; > + payload->start_slot = req_payload.start_slot; > /* work out what is required to happen with this payload */ > - if (mgr->payloads[i].num_slots != req_payload.num_slots) { > + if (payload->num_slots != req_payload.num_slots) { > > /* need to push an update for this payload */ > if (req_payload.num_slots) { > - drm_dp_create_payload_step1(mgr, mgr->proposed_vcpis[i]->vcpi, &req_payload); > - mgr->payloads[i].num_slots = req_payload.num_slots; > - mgr->payloads[i].vcpi = req_payload.vcpi; > - } else if (mgr->payloads[i].num_slots) { > - mgr->payloads[i].num_slots = 0; > - drm_dp_destroy_payload_step1(mgr, port, mgr->payloads[i].vcpi, &mgr->payloads[i]); > - req_payload.payload_state = mgr->payloads[i].payload_state; > - mgr->payloads[i].start_slot = 0; > + drm_dp_create_payload_step1(mgr, vcpi->vcpi, > + &req_payload); > + payload->num_slots = req_payload.num_slots; > + payload->vcpi = req_payload.vcpi; > + > + } else if (payload->num_slots) { > + payload->num_slots = 0; > + drm_dp_destroy_payload_step1(mgr, port, > + payload->vcpi, > + payload); > + req_payload.payload_state = > + payload->payload_state; > + payload->start_slot = 0; > } > - mgr->payloads[i].payload_state = req_payload.payload_state; > + payload->payload_state = req_payload.payload_state; > } > cur_slots += req_payload.num_slots; > > @@ -1920,22 +1929,26 @@ int drm_dp_update_payload_part1(struct drm_dp_mst_topology_mgr *mgr) > } > > for (i = 0; i < mgr->max_payloads; i++) { > - if (mgr->payloads[i].payload_state == DP_PAYLOAD_DELETE_LOCAL) { > - DRM_DEBUG_KMS("removing payload %d\n", i); > - for (j = i; j < mgr->max_payloads - 1; j++) { > - memcpy(&mgr->payloads[j], &mgr->payloads[j + 1], sizeof(struct drm_dp_payload)); > - mgr->proposed_vcpis[j] = mgr->proposed_vcpis[j + 1]; > - if (mgr->proposed_vcpis[j] && mgr->proposed_vcpis[j]->num_slots) { > - set_bit(j + 1, &mgr->payload_mask); > - } else { > - clear_bit(j + 1, &mgr->payload_mask); > - } > - } > - memset(&mgr->payloads[mgr->max_payloads - 1], 0, sizeof(struct drm_dp_payload)); > - mgr->proposed_vcpis[mgr->max_payloads - 1] = NULL; > - clear_bit(mgr->max_payloads, &mgr->payload_mask); > + if (mgr->payloads[i].payload_state != DP_PAYLOAD_DELETE_LOCAL) > + continue; > + > + DRM_DEBUG_KMS("removing payload %d\n", i); > + for (j = i; j < mgr->max_payloads - 1; j++) { > + mgr->payloads[j] = mgr->payloads[j + 1]; > + mgr->proposed_vcpis[j] = mgr->proposed_vcpis[j + 1]; > > + if (mgr->proposed_vcpis[j] && > + mgr->proposed_vcpis[j]->num_slots) { > + set_bit(j + 1, &mgr->payload_mask); > + } else { > + clear_bit(j + 1, &mgr->payload_mask); > + } > } > + > + memset(&mgr->payloads[mgr->max_payloads - 1], 0, > + sizeof(struct drm_dp_payload)); > + mgr->proposed_vcpis[mgr->max_payloads - 1] = NULL; > + clear_bit(mgr->max_payloads, &mgr->payload_mask); With the commit message improved to mention - Add local variables in the first loop - Early continue to reduce 1 indent in the 2nd loop this is Reviewed-by: Daniel Vetter > } > mutex_unlock(&mgr->payload_lock); > > -- > 2.19.2 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch