From patchwork Wed Aug 16 10:32:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 801984 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="eVeKw4Gn"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xXQfr0tbHz9t42 for ; Wed, 16 Aug 2017 20:33:24 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751841AbdHPKdI (ORCPT ); Wed, 16 Aug 2017 06:33:08 -0400 Received: from mail-lf0-f65.google.com ([209.85.215.65]:36219 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751636AbdHPKdG (ORCPT ); Wed, 16 Aug 2017 06:33:06 -0400 Received: by mail-lf0-f65.google.com with SMTP id t128so2213275lff.3; Wed, 16 Aug 2017 03:33:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=6/TjRRt1I7uDvaCFOXaQqJaAEoo3bKBVtceRkuMKqYc=; b=eVeKw4GnlZqAwmv/NzXwwE459QLq5mqIWaiDfIqO6d/p2R7lrDRCFWcxOHPs+VYsdL py7KbGynf7GojXj73pLpZpSIlXVVq864g0aXgoUP30pQRn1xRA6znRKoPHupqT/wq8Mj 4m6oxVWbupjETQbLyypq2nbgHTQNsJ7pG2Om6Old3S71AE9Q/NihA/pyRSIR8tM7Ey/H hE8gncjSHqI6b9VZq5KmI+Tqi46Fmt09CCtaNCh5aW0hnvN0+lmfyfnba/11qXm5DrET RLyuJBDKuUZOzl/tARGjdB+xVveXXNT+ptyZ0YyQmNCPiPV1F9Lp/QCM186Pck5K4bUh OIFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=6/TjRRt1I7uDvaCFOXaQqJaAEoo3bKBVtceRkuMKqYc=; b=aQWVb9MgeYGj8SfdM+9RPLIg+VvYb/uKWwKdIMPT4B1mJLm5CkY7/Z7FIoQ9gJXoSe xRfNSfQUMBn8aAcvqEaXt0T4IxFGaVcTiGNkxA0DpYspM8JDy4S+J2TbKU2AP7uV2jvy Tr4qIZqlmIApebMkMcrWTCJAMebGQFZmCfu0/w393tV/svzIh30/kGt4u4up4AM8yswI VAw3Q1sYG1EJrc/cx5BPT/w8yvAJfFOubGJS7lIEq9jR0u+SW3ASXnqaIdS7Cb0nXe1R 8mTL6VXVolznPeC3MtY4l0eexH8rxApfNYIOIJ+pIzaHTNZ6PIpxxElJrEBvovmooo4v nWoA== X-Gm-Message-State: AHYfb5gOGGLbuc0MfipK0IiWwAA+6tpcZZevo1i0DAU0bx5GH7s1SvKJ exsH8cYum640Iw== X-Received: by 10.46.83.85 with SMTP id t21mr459268ljd.193.1502879584973; Wed, 16 Aug 2017 03:33:04 -0700 (PDT) Received: from localhost.localdomain (ppp109-252-55-77.pppoe.spdop.ru. [109.252.55.77]) by smtp.gmail.com with ESMTPSA id h13sm160377lfl.5.2017.08.16.03.33.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Aug 2017 03:33:04 -0700 (PDT) From: Dmitry Osipenko To: Thierry Reding , Felipe Balbi , Greg Kroah-Hartman , Peter Chen , Jonathan Hunter , Stephen Warren Cc: Marc Dietrich , Nicolas Chauvet , =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= , linux-usb@vger.kernel.org, linux-tegra@vger.kernel.org Subject: [PATCH v6 1/8] usb: gadget: f_ncm/u_ether: Move 'SKB reserve' quirk setup to u_ether Date: Wed, 16 Aug 2017 13:32:38 +0300 Message-Id: <0057da7d2be650b9b5b2f3248e5c3ae4022b4796.1502879078.git.digetx@gmail.com> X-Mailer: git-send-email 2.13.3 In-Reply-To: References: In-Reply-To: References: Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org That quirk is required to make USB Ethernet gadget working on HW that can't cope with unaligned DMA. For some reason only f_ncm sets up that quirk, let's setup it directly in u_ether so other network models would have that quirk applied as well. All network models have been tested with ChipIdea UDC driver on NVIDIA Tegra20 SoC that require DMA to be aligned. Signed-off-by: Dmitry Osipenko --- drivers/usb/gadget/function/f_ncm.c | 2 -- drivers/usb/gadget/function/u_ether.c | 2 +- drivers/usb/gadget/function/u_ether.h | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/usb/gadget/function/f_ncm.c b/drivers/usb/gadget/function/f_ncm.c index 24e34cfcb4bd..45b334ceaf2e 100644 --- a/drivers/usb/gadget/function/f_ncm.c +++ b/drivers/usb/gadget/function/f_ncm.c @@ -925,8 +925,6 @@ static int ncm_set_alt(struct usb_function *f, unsigned intf, unsigned alt) */ ncm->port.is_zlp_ok = gadget_is_zlp_supported(cdev->gadget); - ncm->port.no_skb_reserve = - gadget_avoids_skb_reserve(cdev->gadget); ncm->port.cdc_filter = DEFAULT_FILTER; DBG(cdev, "activate ncm\n"); net = gether_connect(&ncm->port); diff --git a/drivers/usb/gadget/function/u_ether.c b/drivers/usb/gadget/function/u_ether.c index a8b40d07e927..bdbc3fdc7c4f 100644 --- a/drivers/usb/gadget/function/u_ether.c +++ b/drivers/usb/gadget/function/u_ether.c @@ -1073,7 +1073,7 @@ struct net_device *gether_connect(struct gether *link) if (result == 0) { dev->zlp = link->is_zlp_ok; - dev->no_skb_reserve = link->no_skb_reserve; + dev->no_skb_reserve = gadget_avoids_skb_reserve(dev->gadget); DBG(dev, "qlen %d\n", qlen(dev->gadget, dev->qmult)); dev->header_len = link->header_len; diff --git a/drivers/usb/gadget/function/u_ether.h b/drivers/usb/gadget/function/u_ether.h index 81d94a7ae4b4..c77145bd6b5b 100644 --- a/drivers/usb/gadget/function/u_ether.h +++ b/drivers/usb/gadget/function/u_ether.h @@ -64,7 +64,6 @@ struct gether { struct usb_ep *out_ep; bool is_zlp_ok; - bool no_skb_reserve; u16 cdc_filter;