From patchwork Wed Sep 14 21:29:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adam Borowski X-Patchwork-Id: 6444 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4242:0:0:0:0:0 with SMTP id s2csp356221wrr; Thu, 20 Oct 2022 15:46:58 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5OuMCsvwVtf6XwmhrA70b/lISYXUZ2J22G1P1fMzPm5tNyWu++Z44+GZwnskiZKM3cZHNF X-Received: by 2002:a17:90b:1806:b0:20d:a753:7d4b with SMTP id lw6-20020a17090b180600b0020da7537d4bmr18859677pjb.160.1666306017719; Thu, 20 Oct 2022 15:46:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666306017; cv=none; d=google.com; s=arc-20160816; b=cVPn4KTK6iZnA0LKGTqkYhDMI0/kN74wtTJdeKGegUWB2dgxp12V2AkX/oevQmcADm +qSR6o6pDyIgPGtrg4+L1OpSj6aNUntdKgP6IxV5X5ueDaY3PjR6yxmnOBIWE/h+K71x HKE4A0K/POJukMRJndqI8GK37w+uRMjkEp6390VcSeUYFB6pvXKayHdeo1+WZfiP8qAN NmxmOKNAr77QRRFQow4CvhQDFn0JKueQDQdyo1y8dh9a+jA/4i3DhUHmsTG582Wqdjs9 a+jX8JU1OKgZCfGm6XbvM1Cu6pQMHcdwToRw1TJL4BuYHRbFWyooYHEz+27rC+sYPjUm I+Cg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:list-id:precedence:in-reply-to:subject:date:to:from :dkim-signature; bh=Nm1iJXuUdZU2uB9PpQSX83/wN9IfcihizUePEGEMhZE=; b=xhEPz874oWL3pAU9L9qXauwINrOJtU+CxvvlO2sR+6zTokmg2hrxuc4TIdiDsW13/b nbb6FrshqZVMo4fTDzRGajWusNT9Mbpzo7iHsBdBOBa3937HC/32hnsyY2om3qEL7h4f C0fzXbQV97SVhEJyur2tswh6dnq0S6DlvMguV1XB7aRPLIOmMgYs234MM0BBJ0QOk7/W 6C5rXG2+oW2yReR6MA+tlGGkgXEeZrx+bPwe+0m3yYB+Wsx0QBCFYN7EuvRtZ5yPBwVy fAm2NVPzKQO24I3TfB5NwmNflZzVDlKPEd0JwoUVuoOKSDg0zDGvdsaSvqk1m77xE/TZ J6IA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@angband.pl header.s=tartarus header.b=Ls48i0je; 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 gt17-20020a17090af2d100b00210767d910asi4469245pjb.36.2022.10.20.15.46.44; Thu, 20 Oct 2022 15:46:57 -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; dkim=fail header.i=@angband.pl header.s=tartarus header.b=Ls48i0je; 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 S230006AbiJTWq2 (ORCPT + 99 others); Thu, 20 Oct 2022 18:46:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41894 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230085AbiJTWqM (ORCPT ); Thu, 20 Oct 2022 18:46:12 -0400 Received: from tartarus.angband.pl (tartarus.angband.pl [51.83.246.204]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 47BC422C47A; Thu, 20 Oct 2022 15:46:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=angband.pl; s=tartarus; h=In-Reply-To:Subject:Date:To:From:Resent-To:Resent-Message-ID: Resent-Date:Resent-From:Sender:Reply-To:Message-ID:Cc:MIME-Version: Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Sender:Resent-Cc:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=Nm1iJXuUdZU2uB9PpQSX83/wN9IfcihizUePEGEMhZE=; b=Ls48i0jeumE8G9rGzpu/zgItj/ EaMT057HE3YesF+z7+yW4TyCy84/7Gl6uQjF+BDPbeW6a8q0PLglUn7p39PLdMOc4L4b3zKOVgqjy EcuLIQQGE/Ww46xi2sKUtvMmh6cDBNEB9ONcUBoXVakd61O6JOuiL6FsGJMcsfZALpsY=; Received: from kilobyte by tartarus.angband.pl with local (Exim 4.94.2) (envelope-from ) id 1oleII-009OaO-Sl; Fri, 21 Oct 2022 00:45:42 +0200 From: Adam Borowski To: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , linux-mtd@lists.infradead.org, Mark Brown , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org Date: Wed, 14 Sep 2022 23:29:09 +0200 Subject: [PATCH 3/6] mtd: eject cfi_interleave code to its own header In-Reply-To: X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: kilobyte@angband.pl X-SA-Exim-Scanned: No (on tartarus.angband.pl); SAEximRunCond expanded to false X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MISSING_MID,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED 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: X-Mailing-List: linux-kernel@vger.kernel.org Message-Id: X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747248498596441808?= X-GMAIL-MSGID: =?utf-8?q?1747248498596441808?= This fixes build failures for stuff that doesn't care about that, such as: In file included from ./include/linux/mtd/spi-nor.h:10, from drivers/spi/spi-intel.c:13: ./include/linux/mtd/cfi.h:62:2: error: #warning No CONFIG_MTD_CFI_Ix selected. No NOR chip support 62 | #warning No CONFIG_MTD_CFI_Ix selected. No NOR chip support can work. | ^~~~~~~ Signed-off-by: Adam Borowski --- drivers/mtd/chips/cfi_cmdset_0001.c | 1 + drivers/mtd/chips/cfi_cmdset_0002.c | 1 + drivers/mtd/chips/cfi_cmdset_0020.c | 1 + drivers/mtd/chips/cfi_util.c | 1 + drivers/mtd/chips/gen_probe.c | 1 + drivers/mtd/chips/jedec_probe.c | 1 + include/linux/mtd/cfi.h | 75 -------------------------- include/linux/mtd/cfi_interleave.h | 83 +++++++++++++++++++++++++++++ 8 files changed, 89 insertions(+), 75 deletions(-) create mode 100644 include/linux/mtd/cfi_interleave.h diff --git a/drivers/mtd/chips/cfi_cmdset_0001.c b/drivers/mtd/chips/cfi_cmdset_0001.c index 54f92d09d9cf..efbf06fce95b 100644 --- a/drivers/mtd/chips/cfi_cmdset_0001.c +++ b/drivers/mtd/chips/cfi_cmdset_0001.c @@ -34,6 +34,7 @@ #include #include #include +#include /* #define CMDSET0001_DISABLE_ERASE_SUSPEND_ON_WRITE */ /* #define CMDSET0001_DISABLE_WRITE_SUSPEND */ diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index 67453f59c69c..70d00c3641d8 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #define AMD_BOOTLOC_BUG diff --git a/drivers/mtd/chips/cfi_cmdset_0020.c b/drivers/mtd/chips/cfi_cmdset_0020.c index d35df526e0a6..007e37faff56 100644 --- a/drivers/mtd/chips/cfi_cmdset_0020.c +++ b/drivers/mtd/chips/cfi_cmdset_0020.c @@ -31,6 +31,7 @@ #include #include #include +#include #include diff --git a/drivers/mtd/chips/cfi_util.c b/drivers/mtd/chips/cfi_util.c index 6a6a2a21d2ed..608315032f9e 100644 --- a/drivers/mtd/chips/cfi_util.c +++ b/drivers/mtd/chips/cfi_util.c @@ -22,6 +22,7 @@ #include #include #include +#include void cfi_udelay(int us) { diff --git a/drivers/mtd/chips/gen_probe.c b/drivers/mtd/chips/gen_probe.c index 4d4f97841016..8703890ff20e 100644 --- a/drivers/mtd/chips/gen_probe.c +++ b/drivers/mtd/chips/gen_probe.c @@ -10,6 +10,7 @@ #include #include #include +#include #include static struct mtd_info *check_cmd_set(struct map_info *, int); diff --git a/drivers/mtd/chips/jedec_probe.c b/drivers/mtd/chips/jedec_probe.c index 6f7e7e1b3fe5..88a979bb59bb 100644 --- a/drivers/mtd/chips/jedec_probe.c +++ b/drivers/mtd/chips/jedec_probe.c @@ -20,6 +20,7 @@ #include #include #include +#include #include /* AMD */ diff --git a/include/linux/mtd/cfi.h b/include/linux/mtd/cfi.h index d88bb56c18e2..4a8ddb51afee 100644 --- a/include/linux/mtd/cfi.h +++ b/include/linux/mtd/cfi.h @@ -8,87 +8,12 @@ #include #include -#include #include #include #include #include #include -#ifdef CONFIG_MTD_CFI_I1 -#define cfi_interleave(cfi) 1 -#define cfi_interleave_is_1(cfi) (cfi_interleave(cfi) == 1) -#else -#define cfi_interleave_is_1(cfi) (0) -#endif - -#ifdef CONFIG_MTD_CFI_I2 -# ifdef cfi_interleave -# undef cfi_interleave -# define cfi_interleave(cfi) ((cfi)->interleave) -# else -# define cfi_interleave(cfi) 2 -# endif -#define cfi_interleave_is_2(cfi) (cfi_interleave(cfi) == 2) -#else -#define cfi_interleave_is_2(cfi) (0) -#endif - -#ifdef CONFIG_MTD_CFI_I4 -# ifdef cfi_interleave -# undef cfi_interleave -# define cfi_interleave(cfi) ((cfi)->interleave) -# else -# define cfi_interleave(cfi) 4 -# endif -#define cfi_interleave_is_4(cfi) (cfi_interleave(cfi) == 4) -#else -#define cfi_interleave_is_4(cfi) (0) -#endif - -#ifdef CONFIG_MTD_CFI_I8 -# ifdef cfi_interleave -# undef cfi_interleave -# define cfi_interleave(cfi) ((cfi)->interleave) -# else -# define cfi_interleave(cfi) 8 -# endif -#define cfi_interleave_is_8(cfi) (cfi_interleave(cfi) == 8) -#else -#define cfi_interleave_is_8(cfi) (0) -#endif - -#ifndef cfi_interleave -#warning No CONFIG_MTD_CFI_Ix selected. No NOR chip support can work. -static inline int cfi_interleave(void *cfi) -{ - BUG(); - return 0; -} -#endif - -static inline int cfi_interleave_supported(int i) -{ - switch (i) { -#ifdef CONFIG_MTD_CFI_I1 - case 1: -#endif -#ifdef CONFIG_MTD_CFI_I2 - case 2: -#endif -#ifdef CONFIG_MTD_CFI_I4 - case 4: -#endif -#ifdef CONFIG_MTD_CFI_I8 - case 8: -#endif - return 1; - - default: - return 0; - } -} - /* NB: these values must represents the number of bytes needed to meet the * device type (x8, x16, x32). Eg. a 32 bit device is 4 x 8 bytes. diff --git a/include/linux/mtd/cfi_interleave.h b/include/linux/mtd/cfi_interleave.h new file mode 100644 index 000000000000..03d94a6d11fc --- /dev/null +++ b/include/linux/mtd/cfi_interleave.h @@ -0,0 +1,83 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#ifndef __MTD_CFI_INTERLEAVE_H__ +#define __MTD_CFI_INTERLEAVE_H__ + +#include + +#ifdef CONFIG_MTD_CFI_I1 +#define cfi_interleave(cfi) 1 +#define cfi_interleave_is_1(cfi) (cfi_interleave(cfi) == 1) +#else +#define cfi_interleave_is_1(cfi) (0) +#endif + +#ifdef CONFIG_MTD_CFI_I2 +# ifdef cfi_interleave +# undef cfi_interleave +# define cfi_interleave(cfi) ((cfi)->interleave) +# else +# define cfi_interleave(cfi) 2 +# endif +#define cfi_interleave_is_2(cfi) (cfi_interleave(cfi) == 2) +#else +#define cfi_interleave_is_2(cfi) (0) +#endif + +#ifdef CONFIG_MTD_CFI_I4 +# ifdef cfi_interleave +# undef cfi_interleave +# define cfi_interleave(cfi) ((cfi)->interleave) +# else +# define cfi_interleave(cfi) 4 +# endif +#define cfi_interleave_is_4(cfi) (cfi_interleave(cfi) == 4) +#else +#define cfi_interleave_is_4(cfi) (0) +#endif + +#ifdef CONFIG_MTD_CFI_I8 +# ifdef cfi_interleave +# undef cfi_interleave +# define cfi_interleave(cfi) ((cfi)->interleave) +# else +# define cfi_interleave(cfi) 8 +# endif +#define cfi_interleave_is_8(cfi) (cfi_interleave(cfi) == 8) +#else +#define cfi_interleave_is_8(cfi) (0) +#endif + +#ifndef cfi_interleave +#warning No CONFIG_MTD_CFI_Ix selected. No NOR chip support can work. +static inline int cfi_interleave(void *cfi) +{ + BUG(); + return 0; +} +#endif + +static inline int cfi_interleave_supported(int i) +{ + switch (i) { +#ifdef CONFIG_MTD_CFI_I1 + case 1: +#endif +#ifdef CONFIG_MTD_CFI_I2 + case 2: +#endif +#ifdef CONFIG_MTD_CFI_I4 + case 4: +#endif +#ifdef CONFIG_MTD_CFI_I8 + case 8: +#endif + return 1; + + default: + return 0; + } +} + + +#endif /* __MTD_CFI_INTERLEAVE_H__ */