From patchwork Mon Jun 10 18:05:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ramon Fried X-Patchwork-Id: 1113265 X-Patchwork-Delegate: daniel.schwierzeck@googlemail.com 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=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ttTEzyEH"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45N1Kc5HbTz9s00 for ; Tue, 11 Jun 2019 04:06:26 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 73453C2206B; Mon, 10 Jun 2019 18:05:55 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 8031FC22071; Mon, 10 Jun 2019 18:05:52 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 1338FC2205A; Mon, 10 Jun 2019 18:05:47 +0000 (UTC) Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by lists.denx.de (Postfix) with ESMTPS id 444EBC21FFC for ; Mon, 10 Jun 2019 18:05:44 +0000 (UTC) Received: by mail-wr1-f66.google.com with SMTP id d18so10131749wrs.5 for ; Mon, 10 Jun 2019 11:05:44 -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 :mime-version:content-transfer-encoding; bh=P5Eykw4LQSPJualzQhCUHaJy+6BLmoAx91vwtwbBpDw=; b=ttTEzyEHe089hEdjEeezQ4wloe3ip98VPK/kGeUps8+7yNDfNQB2c7FHgv4NadOmJ0 WR66rA6QXoAbAAosy4iUeO2zJ8JlP1USNc+QelNJLUGTFZDRiC/8hUG/Hi44SENCa+lM HqarkW5LowcqBJ+4Y+7f3HSsBsFPP3qrk4HwQhSAhI7Q7qye1pUwVgTAHJvv+uWIDsJM 8UHN3i4TZV5e4y9wLpIco51avXlZ28QgeigFJlzHuFZWvUWie4MRhfVOs+reWIzwcNRk 2qDBkJiJccPGisPjoObwWFHWEq3y1njThNwhQoSk+i6L0yrEc7qxuRB7zn9grJQM2AKL 5lHg== 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:mime-version:content-transfer-encoding; bh=P5Eykw4LQSPJualzQhCUHaJy+6BLmoAx91vwtwbBpDw=; b=U8RJoQKyd0cM5Xa09JC3BscoMgT75PPXgjxLuIEcsYQHA+dJAiRWktxs2WJllY9A2I HpT4k1rKu93Z6CIenz4EtwIA2VO9ZR6aK31OEvOCWFVOYUbMC/opI921aUNRdJ/38RRg fhovCIcnUwYMpL8uuuDWtAr6Xto5d+a3PDEIDe5vX63BBvAXgjwUkvvmnJ4FXRROZjiO fbUbEHBiaWPWvp0IMAj5dGjLlbRVg4nXxPn65W7Jdns4CxoXuUMXQkjC+/xUkQgfMbIK qtuO5rbo/JUFhFUwRSeJuJEMkVsvbUjH1+aIfKq0uTtcIP0UM8uddDLHe2FRtJJP8Ix3 Ibgw== X-Gm-Message-State: APjAAAUsCgHw8JSHuBu9Wp4SP2U1lUG6QbEP7gprdO1GK5mYO+9QDKsN IMFgeR9TKLRlnoQbxeX3lPE= X-Google-Smtp-Source: APXvYqyFPA9BHEi62Nynka4t3YM/E2aMPcf4qDA19ASDUmKA+/yXerknZ7odItRlXc1cnzda4ciXEQ== X-Received: by 2002:adf:dd46:: with SMTP id u6mr33220039wrm.286.1560189943971; Mon, 10 Jun 2019 11:05:43 -0700 (PDT) Received: from localhost.localdomain ([141.226.31.91]) by smtp.gmail.com with ESMTPSA id j123sm173334wmb.32.2019.06.10.11.05.43 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 10 Jun 2019 11:05:43 -0700 (PDT) From: Ramon Fried To: daniel.schwierzeck@gmail.com, u-boot@lists.denx.de Date: Mon, 10 Jun 2019 21:05:25 +0300 Message-Id: <20190610180526.11262-2-rfried.dev@gmail.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190610180526.11262-1-rfried.dev@gmail.com> References: <20190610180526.11262-1-rfried.dev@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v2 2/2] MIPS: add dma-mapping.h implementation X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" add implementation for dma_alloc_coherent(), dma_free_coherent(), dma_map_single() and dma_free_single() Signed-off-by: Ramon Fried --- v2: fix warning caused by missing casts. arch/mips/include/asm/dma-mapping.h | 48 +++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 arch/mips/include/asm/dma-mapping.h diff --git a/arch/mips/include/asm/dma-mapping.h b/arch/mips/include/asm/dma-mapping.h new file mode 100644 index 0000000000..387427c13b --- /dev/null +++ b/arch/mips/include/asm/dma-mapping.h @@ -0,0 +1,48 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * (C) Copyright 2019 + * Ramon Fried + */ + +#ifndef __ASM_MIPS_DMA_MAPPING_H +#define __ASM_MIPS_DMA_MAPPING_H + +#include +#include +#define dma_mapping_error(x, y) 0 + +static inline void *dma_alloc_coherent(size_t len, unsigned long *handle) +{ + void *vaddr = memalign(ARCH_DMA_MINALIGN, + ROUND(len, ARCH_DMA_MINALIGN)); + + *handle = CPHYSADDR((unsigned long)vaddr); + return (void *)(CKSEG1ADDR((unsigned long)vaddr)); +} + +static inline void dma_free_coherent(void *addr) +{ + free((void *)CPHYSADDR((unsigned long)addr)); +} + +static inline unsigned long dma_map_single(volatile void *vaddr, size_t len, + enum dma_data_direction dir) +{ + unsigned long dma_addr = CPHYSADDR((unsigned long)vaddr); + + if (dir == DMA_TO_DEVICE) + flush_dcache_range((unsigned long)vaddr, + (unsigned long)vaddr + len); + if (dir == DMA_FROM_DEVICE) + invalidate_dcache_range((unsigned long)vaddr, + (unsigned long)vaddr + len); + + return dma_addr; +} + +static inline void dma_unmap_single(volatile void *vaddr, size_t len, + unsigned long paddr) +{ +} + +#endif /* __ASM_MIPS_DMA_MAPPING_H */