Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp406108pxu; Tue, 1 Dec 2020 14:27:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJy9Ck8iSdX3Z5hFicO3D7X/8OfoA9azyQtemSj3Hlh+37M6MeCe7bwcOJoHAgcIi4eiuj0f X-Received: by 2002:a17:907:101c:: with SMTP id ox28mr3011637ejb.201.1606861649870; Tue, 01 Dec 2020 14:27:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606861649; cv=none; d=google.com; s=arc-20160816; b=0p+8igiW9W0qSRsIYhOxstBNH2aEqGQARWd1dtQ857U1sKxGqJ8FWB4CqiO9s3tAxa 7JPyWMckGWO1kMT7KXTuj6dyEQHgg6gxTvVmJJW6vzkyx9l6yu8ePDY9JRFdxJc7PT2r AG45fEjnksWVILSF7oyavBMFDCip6LEnPDELc2Kb6LzhHAA/OYCyFgKxtIYb75QEimM0 4zE+BDMpJ7D1LZJ2iBpuAGO5olqVxqoMCYWNaaDR+Z2WsNJFDn6Xa9BR+rSNa/wQmWJm DeM2ZTM69n9BRG9ZOjBAyFPKP7sEz4MaGOZpf0+/7D/C0ffpNPf1i6tjXUYkvXqT4dsj Oh/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=4nTFldwPPtgYqJfRFjSfH1FQ4BbIFWPRDDg0QKiEYGc=; b=ah+dTDdvdtysiXaSru+Xf7imebU15upsl/JRclm/j0gBdXwF+HdYYI2RWWmdy0F8R0 2TisiPV6xjJKE7AMN3bbsIU1b6kyPuhuaZyAHqhitHSoZsGJ+dEwdtYOzr4iQoDlos+t UtnLClbF/Xevak2gy0Cm6ePCy/R5a5kZbs5X5VtI2EI8qEpUyFtCijV0zdO04HdTkTeh Oj0olote8+jd54J/Rys0PPstj8+RyYYApsL2I1pnVStsw2mmMXwo8P1T77sjicd1Vesc Oud9EyMSW647v024Kt8UpZm8Th2B5RNbGeDtcJ3UDYEgeKkQEmtl0vgj3lMU0tgm8ZNI hdPA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=f4OtfwiK; 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 uz9si807595ejb.386.2020.12.01.14.27.07; Tue, 01 Dec 2020 14:27:29 -0800 (PST) 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=f4OtfwiK; 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 S2390049AbgLAJNF (ORCPT + 99 others); Tue, 1 Dec 2020 04:13:05 -0500 Received: from mail.kernel.org ([198.145.29.99]:51286 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390031AbgLAJM6 (ORCPT ); Tue, 1 Dec 2020 04:12:58 -0500 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id AF27F21D7A; Tue, 1 Dec 2020 09:12:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1606813937; bh=cIPVjtn4KT75hCzCf+nComspBooSr9eqyKayp4WK43I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=f4OtfwiKLgVC1KuizSoj2dkamkcXxdKgmP9WJR6Xtd8SPgkYkZyIBR8RGXRBgbAnS TY79KMZt1T+MdHruoXqBd5M8K2pa8BQs70G+9wQQul8XxwhN2d366Nqy4stfbOmTHm mRBIY8DT+dAq89ynObpEMfK5a0/lfKEgOoymcnQ4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Peter Chen , Sasha Levin Subject: [PATCH 5.9 081/152] usb: cdns3: gadget: calculate TD_SIZE based on TD Date: Tue, 1 Dec 2020 09:53:16 +0100 Message-Id: <20201201084722.520693959@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201201084711.707195422@linuxfoundation.org> References: <20201201084711.707195422@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Peter Chen [ Upstream commit 40252dd7cf7cad81c784c695c36bc475b518f0ea ] The TRB entry TD_SIZE is the packet number for the TD (request) but not the each TRB, so it only needs to be assigned for the first TRB during the TD, and the value of it is for TD too. Fixes: 7733f6c32e36 ("usb: cdns3: Add Cadence USB3 DRD Driver") Signed-off-by: Peter Chen Signed-off-by: Sasha Levin --- drivers/usb/cdns3/gadget.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/drivers/usb/cdns3/gadget.c b/drivers/usb/cdns3/gadget.c index dc5e6be3fd45a..6af6343c7c65a 100644 --- a/drivers/usb/cdns3/gadget.c +++ b/drivers/usb/cdns3/gadget.c @@ -1170,10 +1170,20 @@ static int cdns3_ep_run_transfer(struct cdns3_endpoint *priv_ep, /* set incorrect Cycle Bit for first trb*/ control = priv_ep->pcs ? 0 : TRB_CYCLE; + trb->length = 0; + if (priv_dev->dev_ver >= DEV_VER_V2) { + u16 td_size; + + td_size = DIV_ROUND_UP(request->length, + priv_ep->endpoint.maxpacket); + if (priv_dev->gadget.speed == USB_SPEED_SUPER) + trb->length = TRB_TDL_SS_SIZE(td_size); + else + control |= TRB_TDL_HS_SIZE(td_size); + } do { u32 length; - u16 td_size = 0; /* fill TRB */ control |= TRB_TYPE(TRB_NORMAL); @@ -1185,20 +1195,12 @@ static int cdns3_ep_run_transfer(struct cdns3_endpoint *priv_ep, else length = request->sg[sg_iter].length; - if (likely(priv_dev->dev_ver >= DEV_VER_V2)) - td_size = DIV_ROUND_UP(length, - priv_ep->endpoint.maxpacket); - else if (priv_ep->flags & EP_TDLCHK_EN) + if (priv_ep->flags & EP_TDLCHK_EN) total_tdl += DIV_ROUND_UP(length, priv_ep->endpoint.maxpacket); - trb->length = cpu_to_le32(TRB_BURST_LEN(priv_ep->trb_burst_size) | + trb->length |= cpu_to_le32(TRB_BURST_LEN(priv_ep->trb_burst_size) | TRB_LEN(length)); - if (priv_dev->gadget.speed == USB_SPEED_SUPER) - trb->length |= cpu_to_le32(TRB_TDL_SS_SIZE(td_size)); - else - control |= TRB_TDL_HS_SIZE(td_size); - pcs = priv_ep->pcs ? TRB_CYCLE : 0; /* -- 2.27.0