Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp572082ybk; Wed, 20 May 2020 06:52:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzgIz/tI+TPwHKeXjen7Ya1aDK/+X18BtgrBXYE8OlIC0Q5YHZ6ixZ4h+EKCMxZE/hYJxfF X-Received: by 2002:a17:906:6d5a:: with SMTP id a26mr3985288ejt.410.1589982764758; Wed, 20 May 2020 06:52:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589982764; cv=none; d=google.com; s=arc-20160816; b=RsLjXMOGdbmV6uLZA2qmK6uM8d+mlNbj/YYuM8bARr/EKykBXFUT7wW6zvHBBPat9L lbGzRBfmnLn8rPxnf3otaV84LPKTouVpeBo1eOp6tTjp4QF3nPhJ+rAoLskEXphWCMn2 +E4XWKsPZi7mMbVN5k66Kx3VC8ki4jJdlpz4TCQM4j/LoOLzF29m01pswGEr2njexqE/ PLO5IXeAoAlDUpEcj9RiL1KECgZbocgovaXWKV9B3rW1m8tXPB1CSHdUGrU7D71++dbR wFpvT2SEg9tnCsUdjbrPDzF2a5sX/WAucBiVdXD7F6zw+WML1/LPu6iJw5kRsqAuTTmC L1Aw== 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:dkim-signature; bh=lTWjeswxH0l98lyAxNqRNJAIOGggfbasSyUWJF3O/mI=; b=UcOA8i/Lo2PF9g7PB8V47bPoZonbEGqu+euRvMpHDxXLPPQlKEhRQowkrl5RUxHKK0 LvCSYmoGJD3QZUffVgdvUdr1n3MXSjlxzqQzfLFZbNW5RDu5a1pIOVegufgcekeEQNju bc8u2XD90lzq6ksSOafaRi3d9BJWyRtwvABes6wxSthyqn4Evv4jMn+BVQ2UwBZ7qmWU DSRcdXUwe4hM0tkKKGNaYwPYxk/yipeHIwl2Tz8hmlQQ13CqBrSpxezI5YPRzM1Z5e5K M1HeB/FWdkG+ymEhdWsdkwZjqItpttmwFGGkPJii16QihtXBaW3I+jBqnZIJr7/AXlza 3qQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=CjbbxN8h; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k5si1540063eds.231.2020.05.20.06.52.21; Wed, 20 May 2020 06:52:44 -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=@broadcom.com header.s=google header.b=CjbbxN8h; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726697AbgETNuv (ORCPT + 99 others); Wed, 20 May 2020 09:50:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50208 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726510AbgETNuv (ORCPT ); Wed, 20 May 2020 09:50:51 -0400 Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2A6B4C061A0F for ; Wed, 20 May 2020 06:50:51 -0700 (PDT) Received: by mail-wm1-x341.google.com with SMTP id f134so2613459wmf.1 for ; Wed, 20 May 2020 06:50:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=lTWjeswxH0l98lyAxNqRNJAIOGggfbasSyUWJF3O/mI=; b=CjbbxN8hygEVQLVlGrH7l+/V/HdHKau/Ebvqwk35rM13T4gaQNRQy7FepGskwmW3na +RHf7e1uuO7h0fovTB5z0nEvtSTAPxYrR+kFXWhjKT9xQIyhn1hzLCv7DYoGzBdAU2cy /DVgXsWaQCgLoKd3OHE1X0o8+YbdAu18dWgfo= 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=lTWjeswxH0l98lyAxNqRNJAIOGggfbasSyUWJF3O/mI=; b=rKfvJsvJMuaDUTlHbi+edvFnck5gATG7h6o5FndzOk9oUPun6U25CgUUtJh87jCB/l UW29prKGfzLyrf56N2JHMZaK2gtmGI2i93s2eorjIVs269d/PkCxqd2M3OGmZ7ykLtOF PPd2EFSclK69VQpBex39UH+lAFtNIihWdi6jYE2GDzvveZYvXQyX0rJqkFpk23WLodxD EKuzRlhzGEAaoLxxIszWK/tR12P+XwNZjs7IQbQSQPrpK0lgPcZhW++QaBXJp73W/tan 3K/TzF0kAsKosoN/KmChA1MCrpqiGGMhs78qm+ERsBCXHBrtZ19cpjXXMuAtdCQrcnl0 i0fw== X-Gm-Message-State: AOAM532X4xx5hwR0lpQdDaAn+HbX8wMOJ5o/QchwYqQnpAyMjm8tyTCL 3mYFAy+ZH4lUugvuioFxzyAl5pNR3d/y+B/gE7BLUw== X-Received: by 2002:a05:600c:d6:: with SMTP id u22mr4468679wmm.45.1589982649690; Wed, 20 May 2020 06:50:49 -0700 (PDT) MIME-Version: 1.0 References: <20200519203419.12369-1-james.quinlan@broadcom.com> <20200519203419.12369-10-james.quinlan@broadcom.com> <20200520054349.GB2180554@kroah.com> In-Reply-To: <20200520054349.GB2180554@kroah.com> From: Jim Quinlan Date: Wed, 20 May 2020 09:50:36 -0400 Message-ID: Subject: Re: [PATCH 09/15] device core: Add ability to handle multiple dma offsets To: Greg Kroah-Hartman Cc: Nicolas Saenz Julienne , Rob Herring , Frank Rowand , Christoph Hellwig , Marek Szyprowski , Robin Murphy , Suzuki K Poulose , Saravana Kannan , Heikki Krogerus , "Rafael J. Wysocki" , Dan Williams , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE" , open list , "open list:DMA MAPPING HELPERS" 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 Wed, May 20, 2020 at 1:43 AM Greg Kroah-Hartman wrote: > > On Tue, May 19, 2020 at 04:34:07PM -0400, Jim Quinlan wrote: > > diff --git a/include/linux/device.h b/include/linux/device.h > > index ac8e37cd716a..6cd916860b5f 100644 > > --- a/include/linux/device.h > > +++ b/include/linux/device.h > > @@ -493,6 +493,8 @@ struct dev_links_info { > > * @bus_dma_limit: Limit of an upstream bridge or bus which imposes a smaller > > * DMA limit than the device itself supports. > > * @dma_pfn_offset: offset of DMA memory range relatively of RAM > > + * @dma_map: Like dma_pfn_offset but used when there are multiple > > + * pfn offsets for multiple dma-ranges. > > * @dma_parms: A low level driver may set these to teach IOMMU code about > > * segment limitations. > > * @dma_pools: Dma pools (if dma'ble device). > > @@ -578,7 +580,12 @@ struct device { > > allocations such descriptors. */ > > u64 bus_dma_limit; /* upstream dma constraint */ > > unsigned long dma_pfn_offset; > > - > > +#ifdef CONFIG_DMA_PFN_OFFSET_MAP > > + const void *dma_offset_map; /* Like dma_pfn_offset, but for > > + * the unlikely case of multiple > > + * offsets. If non-null, dma_pfn_offset > > + * will be 0. */ > > +#endif > > struct device_dma_parameters *dma_parms; > > > > struct list_head dma_pools; /* dma pools (if dma'ble) */ > > I'll defer to Christoph here, but I thought we were trying to get rid of > stuff like this from struct device, not add new things to it for dma Hi Greg, I wasn't aware of this policy. I put it in 'struct device' because just like the existing dma_pfn_offset; it seemed to be the only way to pull this off. I'll certainly follow any ideas on alternative strategies from Christoph et al. > apis. And why is it a void *? Just wanted to minimize the number of lines I've added to device.h, no other reason. Thanks, Jim > > thanks, > > greg k-h