From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 602C5C433F5 for ; Thu, 16 Sep 2021 01:33:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 390BB61165 for ; Thu, 16 Sep 2021 01:33:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233485AbhIPBeS (ORCPT ); Wed, 15 Sep 2021 21:34:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:45822 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231883AbhIPBeO (ORCPT ); Wed, 15 Sep 2021 21:34:14 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 505E5611EE for ; Thu, 16 Sep 2021 01:32:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1631755974; bh=EZUqyiFqMWPQYu1agznmvJd23FYTdk+UAyU6XzSvcJw=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=EgNNAmpzu9i7yJm0cZHK36sBCBZmvB09twTwUwQ/F9YXaOLPfuUeXS62cDBa+vTaN iHJzAZVobHIGgOVNKKjGBJry1flwMlWSbKge7odewf+YAchywON8xk5IdzEgMQ2RUo k2AI66SXpdYKntCmTc5FI5IrYkU83p8Ubc0A/3AFEd5kVGXHiLPWhWAg7ImrVIyFUs ft3CoKW6COBxDLTvOSj8ZmjjmQfzJ7P7axkkTmUBjC6v3gIwfkpyfkbw1y2FIaApU9 HHQoK45m9AlDkpDZrLhM59i8clNz5bQl16hMIGG2iaIqi+Mx1N8M+BWNJGSWQQf7K+ tfFVNgYdqKOtA== Received: by mail-lf1-f47.google.com with SMTP id i25so11916448lfg.6 for ; Wed, 15 Sep 2021 18:32:54 -0700 (PDT) X-Gm-Message-State: AOAM531EDSHL3EidWrCGLIz+DGx+LESbQwjtD/YMiJikR7YDB6esy3Cf MnHVGK0jvVpIz5I3YdbtzV2qWPpl3HWw7eRbLxY= X-Google-Smtp-Source: ABdhPJwLMtZmUEAMGSs3H9QZxFOEyu1LsKdSwSHV7UNOnFJABj6XzJsbEwUWd0CdAT/tmiokofKp1xCGyzxN/9m0Azk= X-Received: by 2002:a05:651c:b0b:: with SMTP id b11mr2599411ljr.72.1631755972643; Wed, 15 Sep 2021 18:32:52 -0700 (PDT) MIME-Version: 1.0 References: <20210911092139.79607-1-guoren@kernel.org> <20210911092139.79607-5-guoren@kernel.org> <20210915075007.GD20024@lst.de> In-Reply-To: <20210915075007.GD20024@lst.de> From: Guo Ren Date: Thu, 16 Sep 2021 09:32:41 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RFC PATCH V4 4/6] RISC-V: Implement arch_sync_dma* functions To: Christoph Hellwig Cc: Anup Patel , Atish Patra , Palmer Dabbelt , =?UTF-8?Q?Christoph_M=C3=BCllner?= , Philipp Tomsich , liush , wefu@redhat.com, =?UTF-8?B?V2VpIFd1ICjlkLTkvJ8p?= , Drew Fustini , linux-riscv , Linux Kernel Mailing List , taiten.peng@canonical.com, aniket.ponkshe@canonical.com, heinrich.schuchardt@canonical.com, gordan.markus@canonical.com Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Sep 15, 2021 at 3:50 PM Christoph Hellwig wrote: > > On Sat, Sep 11, 2021 at 05:21:37PM +0800, guoren@kernel.org wrote: > > +static void __dma_sync(phys_addr_t paddr, size_t size, enum dma_data_direction dir) > > +{ > > + if ((dir == DMA_FROM_DEVICE) && (dma_cache_sync->cache_invalidate)) > > + dma_cache_sync->cache_invalidate(paddr, size); > > + else if ((dir == DMA_TO_DEVICE) && (dma_cache_sync->cache_clean)) > > + dma_cache_sync->cache_clean(paddr, size); > > + else if ((dir == DMA_BIDIRECTIONAL) && dma_cache_sync->cache_flush) > > + dma_cache_sync->cache_flush(paddr, size); > > +} > > Despite various snipplets this is a still pretty much the broken previous > versions. These need to use the CMO instructions directly which are > about to go into review, and then your SBI can trap on those can call > whatever non-standard mess you're using. I think you mean put an ALTERNATIVE slot in the prologue of __dma_sync? #define ALT_DMA_SYNC() \ asm(ALTERNATIVE(".rept 64\n nop\n .endr\n", "", XXX_VENDOR_ID, \ ERRATA_XXX, CONFIG_ERRATA_XXX) \ : : : "memory") static void __dma_sync(phys_addr_t paddr, size_t size, enum dma_data_direction dir) { ALT_DMA_SYNC(); /* future cmo codes */ } -- Best Regards Guo Ren ML: https://lore.kernel.org/linux-csky/