Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp4173165ybi; Tue, 18 Jun 2019 13:10:37 -0700 (PDT) X-Google-Smtp-Source: APXvYqyv82fhwac/hiWBNG1z9iZniJhR3pQvCfzJYSni4surCtyDV8Gs7kcDTBn20mizdquwvYYB X-Received: by 2002:a17:902:aa83:: with SMTP id d3mr91498757plr.74.1560888637574; Tue, 18 Jun 2019 13:10:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560888637; cv=none; d=google.com; s=arc-20160816; b=WL0e7rpcvpkxVnDrRfhVNrd8OIrJFtA11Zm/rSTXQei8gpaWBANYH8JH5J6X+v92CI UZ63mVF0cZhgOi18HcVgXLghxbpIyTm4FbWXnoo1cavZBh9Evp1645jYxsoR/rtKa0RW shovL5TDuKynDHAXEuh/vq/cO0XKjqqVL38/vmI9Pim5NeTG2PsLsWrqsuGecnc2pShG Meyc6AjFlOsDG6glpWC5hQyk1AKiyK4fVApVjgRHkXnjJHQAaP37pVfhaR5b6b3Kea/9 3vsZR3An8xdC76BDgaptm5KzUaCsh3EN+UoY6/CvAUcflWH4x0kWICGkZjJigY6+2Gr0 ahcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version; bh=gnX6xKMGivJziLWPy0MXzH36uFV6fP8h9GWYY0vF4dQ=; b=AT1FTuTkk0AsVRGfTe3nBywK5vOV+SwWLIj19GG7UMG3VekmVm3vQmvxxPhQQqm6J2 yC3M5+SvJezJ/ZeHIeNoMBacl9/2/xDE7a6iiUMcewVHA4bQizieNAjBH6U/p9j8O5KQ 0aPxIDvrY4eVF4Goct1UsC3GdkeTZ1RzzDYtfH/E1t0tCmINsfJF5i/3HOLFABbdi4Wd pysyeqAcnY8K/uVJcEMl5L/Qrb1Fb4pNYW0ds+2AEeD8ZpyL+epqRjgWZ4FTEGMY3NBS AtKb2k23M118EQT/KvXwnaTIy/W2ZQJKwE5GU6nS6dRBSmLuR6BoGcYnH834MCE7EJ8K x3zg== ARC-Authentication-Results: i=1; mx.google.com; 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 f33si3144300pjg.81.2019.06.18.13.10.21; Tue, 18 Jun 2019 13:10:37 -0700 (PDT) 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; 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 S1730599AbfFRUJ6 (ORCPT + 99 others); Tue, 18 Jun 2019 16:09:58 -0400 Received: from mail-qt1-f196.google.com ([209.85.160.196]:36753 "EHLO mail-qt1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729331AbfFRUJ5 (ORCPT ); Tue, 18 Jun 2019 16:09:57 -0400 Received: by mail-qt1-f196.google.com with SMTP id p15so17049557qtl.3; Tue, 18 Jun 2019 13:09:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gnX6xKMGivJziLWPy0MXzH36uFV6fP8h9GWYY0vF4dQ=; b=m61DGYRiH4zZ9hFgpxAh13UTMN3/FEYp7iVKeDYmpZp9omXoPgZheRm9uFKZI2mwAD i/z4cEFGIgdQkzcuuBnp+FtTJB87cwcENcag6ZzaB2b1y+Te7hLrB48rnb/H8mgWNpoJ HMDBlyzbta3tMDsUXAGfaHKT+KruOjRfrKXc2fq+R+Bg3c0asrSPtgiGQS1mn6FvqEnQ PfECf7HoGAxufv/kBNz/kL3BGsYtbmnuVXCLIQ7q2u5XSa1TyjS0MfzgFwY33USOa41B MdHv5kU3Vg2WuIXel2MiHiQIo4+Ue3d0w4x562T961l5aie3V4dalNHgBMp+v0G0IKE2 xNow== X-Gm-Message-State: APjAAAUj76xd2VFLUYN+1lUVtUJWmBVGNP67tn0ZkPfiaW8Ecro4p4df xxOfChfC3YNbfz8zGayJgV0h8reS1pgbzhuXhtw= X-Received: by 2002:a0c:87ab:: with SMTP id 40mr28470984qvj.93.1560888596401; Tue, 18 Jun 2019 13:09:56 -0700 (PDT) MIME-Version: 1.0 References: <380a6185-7ad1-6be0-060b-e6e5d4126917@linaro.org> <36bca57c999f611353fd9741c55bb2a7@codeaurora.org> <153fafb91267147cf22e2bf102dd822933ec823a.camel@redhat.com> In-Reply-To: From: Arnd Bergmann Date: Tue, 18 Jun 2019 22:09:38 +0200 Message-ID: Subject: Re: [PATCH v2 00/17] net: introduce Qualcomm IPA driver To: Johannes Berg Cc: Alex Elder , Dan Williams , Subash Abhinov Kasiviswanathan , abhishek.esse@gmail.com, Ben Chan , Bjorn Andersson , cpratapa@codeaurora.org, David Miller , DTML , Eric Caruso , evgreen@chromium.org, Ilias Apalodimas , Linux ARM , linux-arm-msm@vger.kernel.org, Linux Kernel Mailing List , linux-soc@vger.kernel.org, Networking , syadagir@codeaurora.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 18, 2019 at 9:03 PM Johannes Berg wrote: > On Tue, 2019-06-18 at 08:45 -0500, Alex Elder wrote: > Really there are two possible ways (and they intersect to some extent). > > One is the whole multi-function device, where a single WWAN device is > composed of channels offered by actually different drivers, e.g. for a > typical USB device you might have something like cdc_ether and the > usb_wwan TTY driver. In this way, we need to "compose" the WWAN device > similarly, e.g. by using the underlying USB device "struct device" > pointer to tie it together. > > The other is something like IPA or the Intel modem driver, where the > device is actually a single (e.g. PCIe) device and just has a single > driver, but that single driver offers different channels. I would hope we can simplify this to expect only the second model, where you have a 'struct device' corresponding to hardware and the driver for it creates one wwan_device that user space talks to. Clearly the multi-function device hardware has to be handled somehow, but it would seem much cleaner in the long run to do that using a special workaround rather than putting this into the core interface. E.g. have a driver that lets you create a wwan_device by passing netdev and a tty chardev into a configuration interface, and from that point on use the generic wwan abstraction. > Now, it's not clear to me where IPA actually falls, because so far we've > been talking about the IPA driver only as providing *netdevs*, not any > control channels, so I'm not actually sure where the control channel is. The IPA driver today only handles the data path, because Alex removed the control channel. IPA is the driver that needs to talk to the hardware, both for data and control when finished. rmnet is a pure software construct that also contains both a data and control side and is designed to be independent of the lower hardware. Arnd