Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp4876842pxv; Tue, 6 Jul 2021 11:14:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx6utnarXzWbSL17EW+dC8y+fhmWqJj2avzsmYwWIfastx3jZ8ipHgtuznu3I3lM86wk1Vr X-Received: by 2002:aa7:d2d9:: with SMTP id k25mr18230094edr.305.1625595288617; Tue, 06 Jul 2021 11:14:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625595288; cv=none; d=google.com; s=arc-20160816; b=vYUovoBzAcIXdjGS/E8xcEXoqWXUVH+G+0Y9y/cAXvEY8T4oYXM3HkFvb5bR9WUCGX osvb0ziPWl2og/b5vN2lP3S1iU9MwPyNfQJNiRKhZTVQkU7m0Dkiw5xw8BqhuRl0kGU8 GpxZSpQTyjPX/CzFuJL/PCLZx08biyebWoMrlYEw3xcqI3fw1VYr3OKSzzGYfXO4Rtu5 NPohacSJyq96mmh+zq+/RG8xo/ca3lEY4VCy5l435ZEghOGcNOKJ2PiKj3NQjZho/5SL 9+4bxX3u9v6f/JjNzHpnP52NC7kFuNVhhK8y3jxkSON3mnk6YtsaxO1VOu17aMJPnMs3 hjSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=VbGlRCtIZ+9LtrD3Q/jaMCFcxBV/e3td9uwbA7wtbfU=; b=itG51AZiohFgufW4JsSUYA1E7vMBvB5daM5jigx7SJ/4tP1zOA8DHkjB5LU3K9SKKu xrNJ7b67YUTZ7gYoJtIefc1McJoCzLQOBdnTjHS9eeIicKG9n3Vb9q9vwYJI/Rv5KvEs a9+F87RrtuI6fHxtNLZokxWJL32yBaed/5CNze6GJU+SpLq+K9QsAg4j5jyEu7dk+sNk RwgTuyf7bNF6dep0qhdsdhaHew4osdObI+ZIJXGGvq0KX45yicVQiFsTHwrZH1ou80r1 qQdCyHf3cmxfjBAdSbNOLnrU1FsoybLBfZgIYc31KMZ1SmsOBhZqn651XSmo+AmvUEQw 8FuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="wZTv+P/O"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dd20si3296161ejc.425.2021.07.06.11.14.22; Tue, 06 Jul 2021 11:14:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="wZTv+P/O"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231192AbhGFSQI (ORCPT + 99 others); Tue, 6 Jul 2021 14:16:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:37476 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229954AbhGFSQI (ORCPT ); Tue, 6 Jul 2021 14:16:08 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 25A7461C5B; Tue, 6 Jul 2021 18:13:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1625595208; bh=bHnAYckIVuxZO/9EYFsl7HYVNOh8BlvdmxqH2jLYj0w=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=wZTv+P/O3sFBTABPV/Ms+tyI3IwjDMuI7vshyy+Ueww8rIBnsrifIQ0R8hzB45qCC J7J0kCybSxSpAk2NEbe7NNI56603ce7K82mjHLewVn/bMELGQZl1+eBAvRmOIPXUO/ OYwAbBYVlOXFP7P5KJ406DlnBUY7idEGPVrZ714k= Date: Tue, 6 Jul 2021 20:13:24 +0200 From: Greg KH To: Wesley Cheng Cc: agross@kernel.org, bjorn.andersson@linaro.org, balbi@kernel.org, robh+dt@kernel.org, frowand.list@gmail.com, linux-arm-msm@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, jackp@codeaurora.org, fntoth@gmail.com Subject: Re: [PATCH v12 3/6] usb: dwc3: Resize TX FIFOs to meet EP bursting requirements Message-ID: References: <1625218655-14180-1-git-send-email-wcheng@codeaurora.org> <1625218655-14180-4-git-send-email-wcheng@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1625218655-14180-4-git-send-email-wcheng@codeaurora.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 02, 2021 at 02:37:32AM -0700, Wesley Cheng wrote: > Some devices have USB compositions which may require multiple endpoints > that support EP bursting. HW defined TX FIFO sizes may not always be > sufficient for these compositions. By utilizing flexible TX FIFO > allocation, this allows for endpoints to request the required FIFO depth to > achieve higher bandwidth. With some higher bMaxBurst configurations, using > a larger TX FIFO size results in better TX throughput. > > By introducing the check_config() callback, the resizing logic can fetch > the maximum number of endpoints used in the USB composition (can contain > multiple configurations), which helps ensure that the resizing logic can > fulfill the configuration(s), or return an error to the gadget layer > otherwise during bind time. > > Signed-off-by: Wesley Cheng > --- > drivers/usb/dwc3/core.c | 9 ++ > drivers/usb/dwc3/core.h | 15 ++++ > drivers/usb/dwc3/ep0.c | 2 + > drivers/usb/dwc3/gadget.c | 221 ++++++++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 247 insertions(+) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index e0a8e79..a7bcdb9d 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -1267,6 +1267,7 @@ static void dwc3_get_properties(struct dwc3 *dwc) > u8 rx_max_burst_prd; > u8 tx_thr_num_pkt_prd; > u8 tx_max_burst_prd; > + u8 tx_fifo_resize_max_num; > const char *usb_psy_name; > int ret; > > @@ -1282,6 +1283,8 @@ static void dwc3_get_properties(struct dwc3 *dwc) > */ > hird_threshold = 12; > > + tx_fifo_resize_max_num = 6; > + No comment as to why 6 was picked, like the other defaults in this function? Why was 6 picked? > dwc->maximum_speed = usb_get_maximum_speed(dev); > dwc->max_ssp_rate = usb_get_maximum_ssp_rate(dev); > dwc->dr_mode = usb_get_dr_mode(dev); > @@ -1325,6 +1328,10 @@ static void dwc3_get_properties(struct dwc3 *dwc) > &tx_thr_num_pkt_prd); > device_property_read_u8(dev, "snps,tx-max-burst-prd", > &tx_max_burst_prd); > + dwc->do_fifo_resize = device_property_read_bool(dev, > + "tx-fifo-resize"); > + device_property_read_u8(dev, "tx-fifo-max-num", > + &tx_fifo_resize_max_num); So you overwrite the "max" with whatever is given to you? What if tx-fifo-resize is not enabled? thanks, greg k-h