Message ID | 20230527164452.64797-4-contact@artur-rojek.eu |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp467751vqr; Sat, 27 May 2023 10:06:44 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4q9eeQwa8rjlHt/ZC/BaDpEriXi4XA75S0/4zkDKcT8xbP1FeJUAaWUhtWW0bxZNi4AfNz X-Received: by 2002:a17:90a:748:b0:24d:f992:5286 with SMTP id s8-20020a17090a074800b0024df9925286mr6145984pje.36.1685207203855; Sat, 27 May 2023 10:06:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685207203; cv=none; d=google.com; s=arc-20160816; b=xdcsLwD1Mir0KK0q/8NU3f09tatoEArOXWuf3MX6ZzNev78Rjlgv1Lfs4UPETcY0PC ihJgBN6jEzLPX1vn57ISvnmHb8swGMviXOLis3FegFHvGxjvOWNHnHi66+H2aKZ0JvV6 IRtdSKmLWwwmHmz4zaLxOkDfa2tZ2HDEnzvcjUHqdfSrsYrPkQCeobSXjz4IUu0YPhan 7KBmiallP2McCXHQxHfpJkewbxifbGE5ZI//8Nmx5xP3RONyKlp8rUckwyyR00ddnriP bc8+KwdmRRV17vG6bZFaFqdEGfaldmZycTIY3/XIegMJhs7xh7pRZSwhMrsqPVHoNOvz vedw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=jNYswkBh7U04jC09rR+LdO9PDBhLDrxcrglNMvlvjN4=; b=WonbixIe8pBaE/khKQvWOP+a88TA6VSFfdc+LzMgtGU8aX4XtZimV0b1F3UjFY3adD ggQAokIgLiHe4uf3pvp6EGsobCOpKZ0lIkR23LDkrWXNj6mSLMuuhmdJuJBOn2+eJQ7G FgVzsvUo8O5W9eAaI9e5rkFsMQrQUXkG4esPLmYXwiiL6qHTzRnq2rF/40DWLErMWwon PeyGXvABXe1MZHYHxDaZJFW9fGARLKoyyzlWv+WNDLHX8CAOqKi5UwYuvLVKg67rHath jvjN0L1MG6mSbAkxGLAmcHq/TWACf9ItQibCfnCIZcwQe1hY+hVFethT5/a5OOg0tFbE WXnQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d187-20020a6336c4000000b00533fce755adsi4594039pga.130.2023.05.27.10.06.25; Sat, 27 May 2023 10:06:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230312AbjE0Qpf (ORCPT <rfc822;zhanglyra.2023@gmail.com> + 99 others); Sat, 27 May 2023 12:45:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55326 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229649AbjE0Qp0 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Sat, 27 May 2023 12:45:26 -0400 Received: from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::227]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6ABAED8; Sat, 27 May 2023 09:45:18 -0700 (PDT) X-GND-Sasl: contact@artur-rojek.eu X-GND-Sasl: contact@artur-rojek.eu X-GND-Sasl: contact@artur-rojek.eu X-GND-Sasl: contact@artur-rojek.eu X-GND-Sasl: contact@artur-rojek.eu X-GND-Sasl: contact@artur-rojek.eu X-GND-Sasl: contact@artur-rojek.eu X-GND-Sasl: contact@artur-rojek.eu Received: by mail.gandi.net (Postfix) with ESMTPSA id C5A4A20003; Sat, 27 May 2023 16:45:15 +0000 (UTC) From: Artur Rojek <contact@artur-rojek.eu> To: Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>, John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>, Geert Uytterhoeven <geert@linux-m68k.org> Cc: Rafael Ignacio Zurita <rafaelignacio.zurita@gmail.com>, linux-sh@vger.kernel.org, linux-kernel@vger.kernel.org, Artur Rojek <contact@artur-rojek.eu> Subject: [PATCH v2 3/3] sh: dma: Correct the number of DMA channels in SH7709 Date: Sat, 27 May 2023 18:44:52 +0200 Message-Id: <20230527164452.64797-4-contact@artur-rojek.eu> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230527164452.64797-1-contact@artur-rojek.eu> References: <20230527164452.64797-1-contact@artur-rojek.eu> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,NO_DNS_FOR_FROM, RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE,T_SPF_TEMPERROR autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1767067828797995155?= X-GMAIL-MSGID: =?utf-8?q?1767067828797995155?= |
Series |
SuperH DMAC fixes
|
|
Commit Message
Artur Rojek
May 27, 2023, 4:44 p.m. UTC
According to the hardware manual [1], the DMAC found in SH7709 features
only 4 channels.
While at it, also sort the existing targets and clarify that
NR_ONCHIP_DMA_CHANNELS must be a multiply of two.
[1] https://www.renesas.com/us/en/document/mah/sh7709s-group-hardware-manual (p. 373)
Signed-off-by: Artur Rojek <contact@artur-rojek.eu>
---
v2: - sort existing targets
- clarify that the value must be a multiply of two
arch/sh/drivers/dma/Kconfig | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
Comments
Hi Artur, On Sat, May 27, 2023 at 6:45 PM Artur Rojek <contact@artur-rojek.eu> wrote: > According to the hardware manual [1], the DMAC found in SH7709 features > only 4 channels. > > While at it, also sort the existing targets and clarify that > NR_ONCHIP_DMA_CHANNELS must be a multiply of two. > > [1] https://www.renesas.com/us/en/document/mah/sh7709s-group-hardware-manual (p. 373) > > Signed-off-by: Artur Rojek <contact@artur-rojek.eu> > --- > > v2: - sort existing targets Thanks for the update! > - clarify that the value must be a multiply of two That's only true when there are two DMACs, right? Even in that case, you could mitigate that by avoiding the division by #ifdef SH_DMAC_BASE1 -#define SH_DMAC_NR_MD_CH (CONFIG_NR_ONCHIP_DMA_CHANNELS / 2) +#define SH_DMAC_NR_MD_CH 6 #else #define SH_DMAC_NR_MD_CH CONFIG_NR_ONCHIP_DMA_CHANNELS #endif That is actually safer, as the user can override NR_ONCHIP_DMA_CHANNELS when configuring his kernel, thus breaking DMA due to an incorrect value of SH_DMAC_NR_MD_CH. Unfortunately we cannot protect against that when using a single DMAC, as SH_DMAC_NR_MD_CH can be either 4, 6, or 8. Perhaps this configuration should be moved from Kconfig to <cpu/dma.h>, to protect against a user overriding this value? > --- a/arch/sh/drivers/dma/Kconfig > +++ b/arch/sh/drivers/dma/Kconfig > @@ -28,17 +28,19 @@ config SH_DMA_API > config NR_ONCHIP_DMA_CHANNELS > int > depends on SH_DMA > - default "4" if CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7751 || \ > - CPU_SUBTYPE_SH7750S || CPU_SUBTYPE_SH7091 > + default "4" if CPU_SUBTYPE_SH7709 || CPU_SUBTYPE_SH7750 || \ > + CPU_SUBTYPE_SH7750S || CPU_SUBTYPE_SH7751 || \ > + CPU_SUBTYPE_SH7091 > default "8" if CPU_SUBTYPE_SH7750R || CPU_SUBTYPE_SH7751R || \ > CPU_SUBTYPE_SH7760 > - default "12" if CPU_SUBTYPE_SH7723 || CPU_SUBTYPE_SH7780 || \ > - CPU_SUBTYPE_SH7785 || CPU_SUBTYPE_SH7724 > + default "12" if CPU_SUBTYPE_SH7723 || CPU_SUBTYPE_SH7724 || \ > + CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 > default "6" > help > This allows you to specify the number of channels that the on-chip > - DMAC supports. This will be 4 for SH7750/SH7751/Sh7750S/SH7091 and 8 for the > - SH7750R/SH7751R/SH7760, 12 for the SH7723/SH7780/SH7785/SH7724, default is 6. > + DMAC supports. This will be 4 for SH7709/SH7750/SH7750S/SH7751/SH7091, > + 8 for SH7750R/SH7751R/SH7760, and 12 for SH7723/SH7724/SH7780/SH7785. > + Default is 6. Must be an even number. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Hi! Sorry for being so late to the party. On Wed, 2023-06-07 at 11:16 +0200, Geert Uytterhoeven wrote: > Hi Artur, > > On Sat, May 27, 2023 at 6:45 PM Artur Rojek <contact@artur-rojek.eu> wrote: > > According to the hardware manual [1], the DMAC found in SH7709 features > > only 4 channels. > > > > While at it, also sort the existing targets and clarify that > > NR_ONCHIP_DMA_CHANNELS must be a multiply of two. > > > > [1] https://www.renesas.com/us/en/document/mah/sh7709s-group-hardware-manual (p. 373) > > > > Signed-off-by: Artur Rojek <contact@artur-rojek.eu> > > --- > > > > v2: - sort existing targets > > Thanks for the update! > > > - clarify that the value must be a multiply of two > > That's only true when there are two DMACs, right? > > Even in that case, you could mitigate that by avoiding the division by > > #ifdef SH_DMAC_BASE1 > -#define SH_DMAC_NR_MD_CH (CONFIG_NR_ONCHIP_DMA_CHANNELS / 2) > +#define SH_DMAC_NR_MD_CH 6 > #else > #define SH_DMAC_NR_MD_CH CONFIG_NR_ONCHIP_DMA_CHANNELS > #endif Aren't we dropping SH_DMAC_BASE1 in the other patch anyway? > That is actually safer, as the user can override NR_ONCHIP_DMA_CHANNELS > when configuring his kernel, thus breaking DMA due to an incorrect > value of SH_DMAC_NR_MD_CH. > > Unfortunately we cannot protect against that when using a single DMAC, > as SH_DMAC_NR_MD_CH can be either 4, 6, or 8. > > Perhaps this configuration should be moved from Kconfig to <cpu/dma.h>, > to protect against a user overriding this value? Isn't SH_DMAC_NR_MD_CH already hardwired to the SoC being used? Adrian
Hi Adrian, On Thu, Jun 8, 2023 at 11:54 AM John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> wrote: > On Wed, 2023-06-07 at 11:16 +0200, Geert Uytterhoeven wrote: > > On Sat, May 27, 2023 at 6:45 PM Artur Rojek <contact@artur-rojek.eu> wrote: > > > According to the hardware manual [1], the DMAC found in SH7709 features > > > only 4 channels. > > > > > > While at it, also sort the existing targets and clarify that > > > NR_ONCHIP_DMA_CHANNELS must be a multiply of two. > > > > > > [1] https://www.renesas.com/us/en/document/mah/sh7709s-group-hardware-manual (p. 373) > > > > > > Signed-off-by: Artur Rojek <contact@artur-rojek.eu> > > > --- > > > > > > v2: - sort existing targets > > > > Thanks for the update! > > > > > - clarify that the value must be a multiply of two > > > > That's only true when there are two DMACs, right? > > > > Even in that case, you could mitigate that by avoiding the division by > > > > #ifdef SH_DMAC_BASE1 > > -#define SH_DMAC_NR_MD_CH (CONFIG_NR_ONCHIP_DMA_CHANNELS / 2) > > +#define SH_DMAC_NR_MD_CH 6 > > #else > > #define SH_DMAC_NR_MD_CH CONFIG_NR_ONCHIP_DMA_CHANNELS > > #endif > > Aren't we dropping SH_DMAC_BASE1 in the other patch anyway? Only for the SH4 parts that do not have it. It is still set in arch/sh/include/cpu-sh4a/cpu/dma.h for the SH4a parts with 12 channels and 2 DMACs. > > That is actually safer, as the user can override NR_ONCHIP_DMA_CHANNELS > > when configuring his kernel, thus breaking DMA due to an incorrect > > value of SH_DMAC_NR_MD_CH. > > > > Unfortunately we cannot protect against that when using a single DMAC, > > as SH_DMAC_NR_MD_CH can be either 4, 6, or 8. > > > > Perhaps this configuration should be moved from Kconfig to <cpu/dma.h>, > > to protect against a user overriding this value? > > Isn't SH_DMAC_NR_MD_CH already hardwired to the SoC being used? It depends on CONFIG_NR_ONCHIP_DMA_CHANNELS, while it should be fixed based on the SoC. Gr{oetje,eeting}s, Geert
Hi Geert! On Thu, 2023-06-08 at 11:58 +0200, Geert Uytterhoeven wrote: > > > > Aren't we dropping SH_DMAC_BASE1 in the other patch anyway? > > Only for the SH4 parts that do not have it. > It is still set in arch/sh/include/cpu-sh4a/cpu/dma.h for the SH4a parts with > 12 channels and 2 DMACs. OK, thanks for the clarification. I will review the other patches tonight. > > > That is actually safer, as the user can override NR_ONCHIP_DMA_CHANNELS > > > when configuring his kernel, thus breaking DMA due to an incorrect > > > value of SH_DMAC_NR_MD_CH. > > > > > > Unfortunately we cannot protect against that when using a single DMAC, > > > as SH_DMAC_NR_MD_CH can be either 4, 6, or 8. > > > > > > Perhaps this configuration should be moved from Kconfig to <cpu/dma.h>, > > > to protect against a user overriding this value? > > > > Isn't SH_DMAC_NR_MD_CH already hardwired to the SoC being used? > > It depends on CONFIG_NR_ONCHIP_DMA_CHANNELS, while it > should be fixed based on the SoC. I agree. However, I would be fine with merging this patch set first and fixing this particular issue in a follow-up series. Adrian
Hi Geert! On Thu, 2023-06-08 at 12:03 +0200, John Paul Adrian Glaubitz wrote: > > > > That is actually safer, as the user can override NR_ONCHIP_DMA_CHANNELS > > > > when configuring his kernel, thus breaking DMA due to an incorrect > > > > value of SH_DMAC_NR_MD_CH. > > > > > > > > Unfortunately we cannot protect against that when using a single DMAC, > > > > as SH_DMAC_NR_MD_CH can be either 4, 6, or 8. > > > > > > > > Perhaps this configuration should be moved from Kconfig to <cpu/dma.h>, > > > > to protect against a user overriding this value? > > > > > > Isn't SH_DMAC_NR_MD_CH already hardwired to the SoC being used? > > > > It depends on CONFIG_NR_ONCHIP_DMA_CHANNELS, while it > > should be fixed based on the SoC. > > I agree. However, I would be fine with merging this patch set first and fixing > this particular issue in a follow-up series. So, my suggestion is to take this series as-is for 6.5, then get the other issues you mentioned fixed for 6.6. I think it's already a gain when these issues are fixed and the kernel boots on the HP Journada 680 again. Adrian
Hi Adrian, On Sat, Jun 17, 2023 at 9:32 AM John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> wrote: > On Thu, 2023-06-08 at 12:03 +0200, John Paul Adrian Glaubitz wrote: > > > > > That is actually safer, as the user can override NR_ONCHIP_DMA_CHANNELS > > > > > when configuring his kernel, thus breaking DMA due to an incorrect > > > > > value of SH_DMAC_NR_MD_CH. > > > > > > > > > > Unfortunately we cannot protect against that when using a single DMAC, > > > > > as SH_DMAC_NR_MD_CH can be either 4, 6, or 8. > > > > > > > > > > Perhaps this configuration should be moved from Kconfig to <cpu/dma.h>, > > > > > to protect against a user overriding this value? > > > > > > > > Isn't SH_DMAC_NR_MD_CH already hardwired to the SoC being used? > > > > > > It depends on CONFIG_NR_ONCHIP_DMA_CHANNELS, while it > > > should be fixed based on the SoC. > > > > I agree. However, I would be fine with merging this patch set first and fixing > > this particular issue in a follow-up series. > > So, my suggestion is to take this series as-is for 6.5, then get the other issues > you mentioned fixed for 6.6. I think it's already a gain when these issues are > fixed and the kernel boots on the HP Journada 680 again. Sure, I don't want to block the acceptance of this series at all. Thanks! Gr{oetje,eeting}s, Geert
Hi Geert! On Sat, 2023-06-17 at 13:09 +0200, Geert Uytterhoeven wrote: > Hi Adrian, > > On Sat, Jun 17, 2023 at 9:32 AM John Paul Adrian Glaubitz > <glaubitz@physik.fu-berlin.de> wrote: > > On Thu, 2023-06-08 at 12:03 +0200, John Paul Adrian Glaubitz wrote: > > > > > > That is actually safer, as the user can override NR_ONCHIP_DMA_CHANNELS > > > > > > when configuring his kernel, thus breaking DMA due to an incorrect > > > > > > value of SH_DMAC_NR_MD_CH. > > > > > > > > > > > > Unfortunately we cannot protect against that when using a single DMAC, > > > > > > as SH_DMAC_NR_MD_CH can be either 4, 6, or 8. > > > > > > > > > > > > Perhaps this configuration should be moved from Kconfig to <cpu/dma.h>, > > > > > > to protect against a user overriding this value? > > > > > > > > > > Isn't SH_DMAC_NR_MD_CH already hardwired to the SoC being used? > > > > > > > > It depends on CONFIG_NR_ONCHIP_DMA_CHANNELS, while it > > > > should be fixed based on the SoC. > > > > > > I agree. However, I would be fine with merging this patch set first and fixing > > > this particular issue in a follow-up series. > > > > So, my suggestion is to take this series as-is for 6.5, then get the other issues > > you mentioned fixed for 6.6. I think it's already a gain when these issues are > > fixed and the kernel boots on the HP Journada 680 again. > > Sure, I don't want to block the acceptance of this series at all. > Thanks! Apologies for the late reply. Would you mind adding your Reviewed-by to this patch before I review and apply the series? Adrian
Hi Adrian, On Tue, Jul 4, 2023 at 7:45 AM John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> wrote: > On Sat, 2023-06-17 at 13:09 +0200, Geert Uytterhoeven wrote: > > On Sat, Jun 17, 2023 at 9:32 AM John Paul Adrian Glaubitz > > <glaubitz@physik.fu-berlin.de> wrote: > > > On Thu, 2023-06-08 at 12:03 +0200, John Paul Adrian Glaubitz wrote: > > > > > > > That is actually safer, as the user can override NR_ONCHIP_DMA_CHANNELS > > > > > > > when configuring his kernel, thus breaking DMA due to an incorrect > > > > > > > value of SH_DMAC_NR_MD_CH. > > > > > > > > > > > > > > Unfortunately we cannot protect against that when using a single DMAC, > > > > > > > as SH_DMAC_NR_MD_CH can be either 4, 6, or 8. > > > > > > > > > > > > > > Perhaps this configuration should be moved from Kconfig to <cpu/dma.h>, > > > > > > > to protect against a user overriding this value? > > > > > > > > > > > > Isn't SH_DMAC_NR_MD_CH already hardwired to the SoC being used? > > > > > > > > > > It depends on CONFIG_NR_ONCHIP_DMA_CHANNELS, while it > > > > > should be fixed based on the SoC. > > > > > > > > I agree. However, I would be fine with merging this patch set first and fixing > > > > this particular issue in a follow-up series. > > > > > > So, my suggestion is to take this series as-is for 6.5, then get the other issues > > > you mentioned fixed for 6.6. I think it's already a gain when these issues are > > > fixed and the kernel boots on the HP Journada 680 again. > > > > Sure, I don't want to block the acceptance of this series at all. > > Thanks! > > Apologies for the late reply. Would you mind adding your Reviewed-by to this patch > before I review and apply the series? With "must be a multiply of two" and "Must be an even number" removed. Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Gr{oetje,eeting}s, Geert
Hi Geert! On Tue, 2023-07-04 at 09:32 +0200, Geert Uytterhoeven wrote: > Hi Adrian, > > On Tue, Jul 4, 2023 at 7:45 AM John Paul Adrian Glaubitz > <glaubitz@physik.fu-berlin.de> wrote: > > On Sat, 2023-06-17 at 13:09 +0200, Geert Uytterhoeven wrote: > > > On Sat, Jun 17, 2023 at 9:32 AM John Paul Adrian Glaubitz > > > <glaubitz@physik.fu-berlin.de> wrote: > > > > On Thu, 2023-06-08 at 12:03 +0200, John Paul Adrian Glaubitz wrote: > > > > > > > > That is actually safer, as the user can override NR_ONCHIP_DMA_CHANNELS > > > > > > > > when configuring his kernel, thus breaking DMA due to an incorrect > > > > > > > > value of SH_DMAC_NR_MD_CH. > > > > > > > > > > > > > > > > Unfortunately we cannot protect against that when using a single DMAC, > > > > > > > > as SH_DMAC_NR_MD_CH can be either 4, 6, or 8. > > > > > > > > > > > > > > > > Perhaps this configuration should be moved from Kconfig to <cpu/dma.h>, > > > > > > > > to protect against a user overriding this value? > > > > > > > > > > > > > > Isn't SH_DMAC_NR_MD_CH already hardwired to the SoC being used? > > > > > > > > > > > > It depends on CONFIG_NR_ONCHIP_DMA_CHANNELS, while it > > > > > > should be fixed based on the SoC. > > > > > > > > > > I agree. However, I would be fine with merging this patch set first and fixing > > > > > this particular issue in a follow-up series. > > > > > > > > So, my suggestion is to take this series as-is for 6.5, then get the other issues > > > > you mentioned fixed for 6.6. I think it's already a gain when these issues are > > > > fixed and the kernel boots on the HP Journada 680 again. > > > > > > Sure, I don't want to block the acceptance of this series at all. > > > Thanks! > > > > Apologies for the late reply. Would you mind adding your Reviewed-by to this patch > > before I review and apply the series? > > With "must be a multiply of two" and "Must be an even number" removed. > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Thanks. I guess, I will drop the whole "and clarify that NR_ONCHIP_DMA_CHANNELS must be a multiply of two" then. Correct? Adrian
Hi Adrian. On Tue, Jul 4, 2023 at 9:43 AM John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> wrote: > On Tue, 2023-07-04 at 09:32 +0200, Geert Uytterhoeven wrote: > > On Tue, Jul 4, 2023 at 7:45 AM John Paul Adrian Glaubitz > > <glaubitz@physik.fu-berlin.de> wrote: > > > On Sat, 2023-06-17 at 13:09 +0200, Geert Uytterhoeven wrote: > > > > On Sat, Jun 17, 2023 at 9:32 AM John Paul Adrian Glaubitz > > > > <glaubitz@physik.fu-berlin.de> wrote: > > > > > On Thu, 2023-06-08 at 12:03 +0200, John Paul Adrian Glaubitz wrote: > > > > > > > > > That is actually safer, as the user can override NR_ONCHIP_DMA_CHANNELS > > > > > > > > > when configuring his kernel, thus breaking DMA due to an incorrect > > > > > > > > > value of SH_DMAC_NR_MD_CH. > > > > > > > > > > > > > > > > > > Unfortunately we cannot protect against that when using a single DMAC, > > > > > > > > > as SH_DMAC_NR_MD_CH can be either 4, 6, or 8. > > > > > > > > > > > > > > > > > > Perhaps this configuration should be moved from Kconfig to <cpu/dma.h>, > > > > > > > > > to protect against a user overriding this value? > > > > > > > > > > > > > > > > Isn't SH_DMAC_NR_MD_CH already hardwired to the SoC being used? > > > > > > > > > > > > > > It depends on CONFIG_NR_ONCHIP_DMA_CHANNELS, while it > > > > > > > should be fixed based on the SoC. > > > > > > > > > > > > I agree. However, I would be fine with merging this patch set first and fixing > > > > > > this particular issue in a follow-up series. > > > > > > > > > > So, my suggestion is to take this series as-is for 6.5, then get the other issues > > > > > you mentioned fixed for 6.6. I think it's already a gain when these issues are > > > > > fixed and the kernel boots on the HP Journada 680 again. > > > > > > > > Sure, I don't want to block the acceptance of this series at all. > > > > Thanks! > > > > > > Apologies for the late reply. Would you mind adding your Reviewed-by to this patch > > > before I review and apply the series? > > > > With "must be a multiply of two" and "Must be an even number" removed. > > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> > > Thanks. I guess, I will drop the whole > > "and clarify that NR_ONCHIP_DMA_CHANNELS must be a multiply of two" > > then. Correct? Correct. Also in the help text. Thanks! Gr{oetje,eeting}s, Geert
On Sat, 2023-05-27 at 18:44 +0200, Artur Rojek wrote: > According to the hardware manual [1], the DMAC found in SH7709 features > only 4 channels. > > While at it, also sort the existing targets and clarify that > NR_ONCHIP_DMA_CHANNELS must be a multiply of two. > > [1] https://www.renesas.com/us/en/document/mah/sh7709s-group-hardware-manual (p. 373) > > Signed-off-by: Artur Rojek <contact@artur-rojek.eu> > --- > > v2: - sort existing targets > - clarify that the value must be a multiply of two > > arch/sh/drivers/dma/Kconfig | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/arch/sh/drivers/dma/Kconfig b/arch/sh/drivers/dma/Kconfig > index 7d54f284ce10..382fbb189fcf 100644 > --- a/arch/sh/drivers/dma/Kconfig > +++ b/arch/sh/drivers/dma/Kconfig > @@ -28,17 +28,19 @@ config SH_DMA_API > config NR_ONCHIP_DMA_CHANNELS > int > depends on SH_DMA > - default "4" if CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7751 || \ > - CPU_SUBTYPE_SH7750S || CPU_SUBTYPE_SH7091 > + default "4" if CPU_SUBTYPE_SH7709 || CPU_SUBTYPE_SH7750 || \ > + CPU_SUBTYPE_SH7750S || CPU_SUBTYPE_SH7751 || \ > + CPU_SUBTYPE_SH7091 > default "8" if CPU_SUBTYPE_SH7750R || CPU_SUBTYPE_SH7751R || \ > CPU_SUBTYPE_SH7760 > - default "12" if CPU_SUBTYPE_SH7723 || CPU_SUBTYPE_SH7780 || \ > - CPU_SUBTYPE_SH7785 || CPU_SUBTYPE_SH7724 > + default "12" if CPU_SUBTYPE_SH7723 || CPU_SUBTYPE_SH7724 || \ > + CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 > default "6" > help > This allows you to specify the number of channels that the on-chip > - DMAC supports. This will be 4 for SH7750/SH7751/Sh7750S/SH7091 and 8 for the > - SH7750R/SH7751R/SH7760, 12 for the SH7723/SH7780/SH7785/SH7724, default is 6. > + DMAC supports. This will be 4 for SH7709/SH7750/SH7750S/SH7751/SH7091, > + 8 for SH7750R/SH7751R/SH7760, and 12 for SH7723/SH7724/SH7780/SH7785. > + Default is 6. Must be an even number. > > config SH_DMABRG > bool "SH7760 DMABRG support" Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
diff --git a/arch/sh/drivers/dma/Kconfig b/arch/sh/drivers/dma/Kconfig index 7d54f284ce10..382fbb189fcf 100644 --- a/arch/sh/drivers/dma/Kconfig +++ b/arch/sh/drivers/dma/Kconfig @@ -28,17 +28,19 @@ config SH_DMA_API config NR_ONCHIP_DMA_CHANNELS int depends on SH_DMA - default "4" if CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7751 || \ - CPU_SUBTYPE_SH7750S || CPU_SUBTYPE_SH7091 + default "4" if CPU_SUBTYPE_SH7709 || CPU_SUBTYPE_SH7750 || \ + CPU_SUBTYPE_SH7750S || CPU_SUBTYPE_SH7751 || \ + CPU_SUBTYPE_SH7091 default "8" if CPU_SUBTYPE_SH7750R || CPU_SUBTYPE_SH7751R || \ CPU_SUBTYPE_SH7760 - default "12" if CPU_SUBTYPE_SH7723 || CPU_SUBTYPE_SH7780 || \ - CPU_SUBTYPE_SH7785 || CPU_SUBTYPE_SH7724 + default "12" if CPU_SUBTYPE_SH7723 || CPU_SUBTYPE_SH7724 || \ + CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 default "6" help This allows you to specify the number of channels that the on-chip - DMAC supports. This will be 4 for SH7750/SH7751/Sh7750S/SH7091 and 8 for the - SH7750R/SH7751R/SH7760, 12 for the SH7723/SH7780/SH7785/SH7724, default is 6. + DMAC supports. This will be 4 for SH7709/SH7750/SH7750S/SH7751/SH7091, + 8 for SH7750R/SH7751R/SH7760, and 12 for SH7723/SH7724/SH7780/SH7785. + Default is 6. Must be an even number. config SH_DMABRG bool "SH7760 DMABRG support"