Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp6140908ybi; Wed, 29 May 2019 03:31:36 -0700 (PDT) X-Google-Smtp-Source: APXvYqxkyVF+5efrWjdJTODUsV2RMQrIDM5KXoyDNpu9oJh2UvBUJv/hfeEOZmPWrtfJCnj56QjO X-Received: by 2002:a17:90a:cb10:: with SMTP id z16mr10927373pjt.81.1559125895990; Wed, 29 May 2019 03:31:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559125895; cv=none; d=google.com; s=arc-20160816; b=f9qDdBCNjp/2f/8nMGO/h/aFwV1zQCOuA08+w/vrWXwXM1n6Fy5CToOZi1LqGWpkHC swJ5Lv8uLSQVoNqvraoC9qqRjh6WUIcG8OaZ2OKoxpX8v4RllWe0AtJ0lkLvFOAaJzZ8 +arS7OUtPI8q8n1dN+L8k/Y0Rudlt/ItgOkDeAAR8WVS5yGIYbc1rBiP6cotkJ0h5gRY Ncmmnosbym6ovCiEE1UH9z7MqnLtNtLQToCTC7L2wXdUct1qsgtcfmxy4FVTKRA7tSzl 8Y22n+tGjequKERpMMRYjOdJTl4334TuUY73YoZEGTIImAPJuD+kN3lwWaqHcgrKZP9F I6oA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=wVI64BmEuEe18sUdcKfgqQ1BJ4I3tCgRPQqvCLdaV9A=; b=W9fCsuUiMF4/jH+vFzi65YSwf9Zu28O2fnXLTtM7HkUdFJnYrJ9SDSKRVLmnmVlgrg HRpgsGJAGj4CEP7+ppx/orDyLc6gEi3QdMNIqf0kifagYm5P7mlmWIsJ1FRlWbxivCi3 K+iT3IlQBTn3JbKtw7gHjvAov4ii0ihsPYvv02a3Nr3S13qVv0lQ0BrCDx3Ti2tQMG96 pAi7yrjMcC/k0R+imMZMRaLrT5WaUYjrHC2LJ/PAwemGD4/YNkuSSgkdgJZhYICiJNhg OKihT+fKbmw/NSSiH6CvN6aNRJRXb5sS/EO0rQiwxuodKC56EaQxyoy+2Q3eG0/O3CKj dC9w== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r19si27538236pfr.231.2019.05.29.03.31.18; Wed, 29 May 2019 03:31:35 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726855AbfE2K2z (ORCPT + 99 others); Wed, 29 May 2019 06:28:55 -0400 Received: from inva020.nxp.com ([92.121.34.13]:48996 "EHLO inva020.nxp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725956AbfE2K2x (ORCPT ); Wed, 29 May 2019 06:28:53 -0400 Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 91BC81A0273; Wed, 29 May 2019 12:28:50 +0200 (CEST) Received: from inva024.eu-rdc02.nxp.com (inva024.eu-rdc02.nxp.com [134.27.226.22]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 84F8D1A0118; Wed, 29 May 2019 12:28:50 +0200 (CEST) Received: from fsr-ub1864-101.ea.freescale.net (fsr-ub1864-101.ea.freescale.net [10.171.82.13]) by inva024.eu-rdc02.nxp.com (Postfix) with ESMTP id F20E1205E4; Wed, 29 May 2019 12:28:49 +0200 (CEST) From: laurentiu.tudor@nxp.com To: hch@lst.de, stern@rowland.harvard.edu, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, marex@denx.de Cc: leoyang.li@nxp.com, linux-kernel@vger.kernel.org, robin.murphy@arm.com, noring@nocrew.org, JuergenUrban@gmx.de, Laurentiu Tudor Subject: [PATCH v7 0/5] prerequisites for device reserved local mem rework Date: Wed, 29 May 2019 13:28:38 +0300 Message-Id: <20190529102843.13174-1-laurentiu.tudor@nxp.com> X-Mailer: git-send-email 2.17.1 X-Virus-Scanned: ClamAV using ClamSMTP Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Laurentiu Tudor For HCs that have local memory, replace the current DMA API usage with a genalloc generic allocator to manage the mappings for these devices. This is in preparation for dropping the existing "coherent" dma mem declaration APIs. Current implementation was relying on a short circuit in the DMA API that in the end, was acting as an allocator for these type of devices. Only compiled tested, so any volunteers willing to test are most welcome. Thank you! For context, see thread here: https://lkml.org/lkml/2019/4/22/357 Changes in v7: - drop useless __iomem annotation to fix sparse warning - select GENERIC_ALLOCATOR to fix compilation on sh arch Changes in v6: - drop some unneeded initializations (Alan) - use device name for genpool instead of misleading "ohci-hcd" (Alan) - updated some comments (Alan, Fredrik) - added Tested-By tags Changes in v5: - updated first patch to preserve bisectability (Christoph, Greg) - fixed a few more places where dma api was still being used (e.g. td_alloc, ed_alloc) (Fredrik) - included patch from Fredrik adding gen_pool_dma_zalloc() api - added patch that drops HCD_LOCAL_MEM altogether (Greg) - set td_cache / ed_cache to null for devices with local mem (Fredrik) - introduce usb_hcd_setup_local_mem() that sets up the genalloc pool for drivers and updated drivers to use it Changes in v4: - created mapping for local mem - fix genalloc misuse Changes in v3: - rearranged calls into genalloc simplifying the code a bit (Christoph) - dropped RFC prefix Changes in v2: - use genalloc also in core usb (based on comment from Robin) - moved genpool decl to usb_hcd to be accesible from core usb Fredrik Noring (1): lib/genalloc.c: Add gen_pool_dma_zalloc() for zeroed DMA allocations Laurentiu Tudor (4): USB: use genalloc for USB HCs with local memory usb: host: ohci-sm501: init genalloc for local memory usb: host: ohci-tmio: init genalloc for local memory USB: drop HCD_LOCAL_MEM flag drivers/usb/Kconfig | 1 + drivers/usb/core/buffer.c | 17 ++++++++---- drivers/usb/core/hcd.c | 51 ++++++++++++++++++++++++++++------ drivers/usb/host/ehci-hcd.c | 2 +- drivers/usb/host/fotg210-hcd.c | 2 +- drivers/usb/host/ohci-hcd.c | 25 +++++++++++++---- drivers/usb/host/ohci-mem.c | 35 ++++++++++++++++++++--- drivers/usb/host/ohci-sm501.c | 50 +++++++++++++++------------------ drivers/usb/host/ohci-tmio.c | 15 ++++------ drivers/usb/host/ohci.h | 2 ++ drivers/usb/host/uhci-hcd.c | 2 +- include/linux/genalloc.h | 1 + include/linux/usb/hcd.h | 6 +++- lib/genalloc.c | 29 ++++++++++++++++++- 14 files changed, 172 insertions(+), 66 deletions(-) -- 2.17.1