From patchwork Fri Sep 9 20:57:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 12972175 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 482CDECAAD3 for ; Fri, 9 Sep 2022 20:59:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=XCPL1MNWJNh6aG8o6KeWhQyJjAgNWTz2Z8WlY0DWzkw=; b=3K7canf0y5Obfj 9/g6xuA4D5uOYyij0I5biKjJeklx00pURv9OKj3vu0NMUbGmkw9MTEIV7nAxjKt8hfaEgft9OyI/Y ufq/jp3eRGD0TmNQ5jZYHhEEkq/sdjvbmo3UV0D8u6/hMt/ARUlNTnHGPQ2q2H61FP3Oqr+j/5lDh /oGFEtM9KLKCqriWEbBTSLWZWUeictS2NYbNhmh+v9SgE6P9tcEOY+Vkz8mu/tZd4GyJNVKr3OLbs /Gnvqr5+3O2Wq3rPhEGdO79ZHG9PI4T03EH2yqDpPXc4aFfmneAr9UtL6D36XWRZ0Zq93/gl3IkzM /PDRd7it+Y0LWjKFOc2Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oWl4q-002pUk-Fo; Fri, 09 Sep 2022 20:58:16 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oWl4f-002pRn-Tx for linux-arm-kernel@lists.infradead.org; Fri, 09 Sep 2022 20:58:08 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 47A00620D4; Fri, 9 Sep 2022 20:58:05 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 48B71C433B5; Fri, 9 Sep 2022 20:58:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1662757084; bh=R3JkQvlGe/NqtSRKhl4LJo0WglEvb8+IF3NMUWUDig4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q1h6BjrFrt0G8ULqZuH6tpHtDV1Thv7T90aIrLorUYUDCa3r1BHrCCyRCnZ6JiU7o +7FCdq56GYC7RqLvEP3dUDW4d0JdywlB+5VKqCASMHq7LT9FzwCAYWURxD+ahRogw/ /ZxE1IQcRENnjYKTy13l6/KlDaQ6jjfGaovUvN6Sl+kRhoOX1mGmCM4FAq6hFZMKl9 530rsacj3aDnODjsoOW3n/7gTuzBYH+QOjz+g0V1330prYRomEy2dYupXcBDIoACOz AzS0e5/gfO8bXi9jw53JSbC3rTWglKbR8LPLhfRu63CbPT801gBLsSlNhoAF53lFIR Lpo/51h+oufMQ== From: Arnd Bergmann To: linux-arm-kernel@lists.infradead.org Cc: Arnd Bergmann , Russell King , Christoph Hellwig , Linus Walleij , Marc Zyngier Subject: [PATCH v3 1/5] ARM: footbridge: remove addin mode Date: Fri, 9 Sep 2022 22:57:45 +0200 Message-Id: <20220909205749.1793677-2-arnd@kernel.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20220909205749.1793677-1-arnd@kernel.org> References: <20220909205749.1793677-1-arnd@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220909_135806_076351_4B7E008C X-CRM114-Status: GOOD ( 39.09 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Arnd Bergmann This does not appear to have been used in many years, we can kill off some of the uglier code. Among other things, it avoids a randconfig issue when both modes are disabled: arch/arm/mach-footbridge/common.c:149:24: error: 'ebsa285_host_io_desc' defined but not used [-Werror=unused-variable] 149 | static struct map_desc ebsa285_host_io_desc[] __initdata = { | ^~~~~~~~~~~~~~~~~~~~ arch/arm/mach-footbridge/common.c:136:24: error: 'fb_common_io_desc' defined but not used [-Werror=unused-variable] 136 | static struct map_desc fb_common_io_desc[] __initdata = { | ^~~~~~~~~~~~~~~~~ The recently added phys_to_dma() functions are now trivial and could probably be removed again as a follow-up, if anyone knows how. Cc: Christoph Hellwig Tested-by: Marc Zyngier Signed-off-by: Arnd Bergmann --- arch/arm/include/asm/hardware/dec21285.h | 13 ---- arch/arm/mach-footbridge/Kconfig | 28 +------ arch/arm/mach-footbridge/Makefile | 2 +- arch/arm/mach-footbridge/common.c | 73 ++----------------- arch/arm/mach-footbridge/dc21285.c | 61 +++++----------- arch/arm/mach-footbridge/dma.c | 3 +- .../arm/mach-footbridge/include/mach/memory.h | 22 ------ arch/arm/mach-footbridge/isa.c | 3 - 8 files changed, 30 insertions(+), 175 deletions(-) diff --git a/arch/arm/include/asm/hardware/dec21285.h b/arch/arm/include/asm/hardware/dec21285.h index 3f18a56a025d..eee390e8d4dc 100644 --- a/arch/arm/include/asm/hardware/dec21285.h +++ b/arch/arm/include/asm/hardware/dec21285.h @@ -81,19 +81,6 @@ #define SA110_CNTL_XCSDIR(x) ((x)<<28) #define SA110_CNTL_PCICFN (1 << 31) -/* - * footbridge_cfn_mode() is used when we want - * to check whether we are the central function - */ -#define __footbridge_cfn_mode() (*CSR_SA110_CNTL & SA110_CNTL_PCICFN) -#if defined(CONFIG_FOOTBRIDGE_HOST) && defined(CONFIG_FOOTBRIDGE_ADDIN) -#define footbridge_cfn_mode() __footbridge_cfn_mode() -#elif defined(CONFIG_FOOTBRIDGE_HOST) -#define footbridge_cfn_mode() (1) -#else -#define footbridge_cfn_mode() (0) -#endif - #define CSR_PCIADDR_EXTN DC21285_IO(0x0140) #define CSR_PREFETCHMEMRANGE DC21285_IO(0x0144) #define CSR_XBUS_CYCLE DC21285_IO(0x0148) diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig index acc10b1caa69..3497ea8e91e3 100644 --- a/arch/arm/mach-footbridge/Kconfig +++ b/arch/arm/mach-footbridge/Kconfig @@ -8,31 +8,17 @@ config ARCH_CATS depends on UNUSED_BOARD_FILES select CLKEVT_I8253 select CLKSRC_I8253 - select FOOTBRIDGE_HOST select ISA - select ISA_DMA select FORCE_PCI help Say Y here if you intend to run this kernel on the CATS. Saying N will reduce the size of the Footbridge kernel. -config ARCH_EBSA285_ADDIN - bool "EBSA285 (addin mode)" - select ARCH_EBSA285 - select FOOTBRIDGE_ADDIN - help - Say Y here if you intend to run this kernel on the EBSA285 card - in addin mode. - - Saying N will reduce the size of the Footbridge kernel. - config ARCH_EBSA285_HOST bool "EBSA285 (host mode)" select ARCH_EBSA285 - select FOOTBRIDGE_HOST select ISA - select ISA_DMA select ARCH_MAY_HAVE_PC_FDC select FORCE_PCI help @@ -45,9 +31,7 @@ config ARCH_NETWINDER bool "NetWinder" select CLKEVT_I8253 select CLKSRC_I8253 - select FOOTBRIDGE_HOST select ISA - select ISA_DMA select FORCE_PCI help Say Y here if you intend to run this kernel on the Rebel.COM @@ -61,19 +45,11 @@ endmenu # Footbridge support config FOOTBRIDGE + def_bool y select ARCH_HAS_PHYS_TO_DMA - bool - -# Footbridge in host mode -config FOOTBRIDGE_HOST - bool select ARCH_MIGHT_HAVE_PC_SERIO + select ISA_DMA -# Footbridge in addin mode -config FOOTBRIDGE_ADDIN - bool - -# EBSA285 board in either host or addin mode config ARCH_EBSA285 bool diff --git a/arch/arm/mach-footbridge/Makefile b/arch/arm/mach-footbridge/Makefile index 6262993c0555..30bae6684dce 100644 --- a/arch/arm/mach-footbridge/Makefile +++ b/arch/arm/mach-footbridge/Makefile @@ -9,7 +9,7 @@ obj-y := common.o dma.o isa-irq.o pci-y += dc21285.o pci-$(CONFIG_ARCH_CATS) += cats-pci.o -pci-$(CONFIG_ARCH_EBSA285_HOST) += ebsa285-pci.o +pci-$(CONFIG_ARCH_EBSA285) += ebsa285-pci.o pci-$(CONFIG_ARCH_NETWINDER) += netwinder-pci.o obj-$(CONFIG_ARCH_CATS) += cats-hw.o isa-timer.o diff --git a/arch/arm/mach-footbridge/common.c b/arch/arm/mach-footbridge/common.c index 5020eb96b025..9483eccea5ae 100644 --- a/arch/arm/mach-footbridge/common.c +++ b/arch/arm/mach-footbridge/common.c @@ -198,9 +198,6 @@ void __init footbridge_init_irq(void) __fb_init_irq(); - if (!footbridge_cfn_mode()) - return; - if (machine_is_ebsa285()) /* The following is dependent on which slot * you plug the Southbridge card into. We @@ -221,21 +218,13 @@ void __init footbridge_init_irq(void) * commented out since there is a "No Fix" problem with it. Not mapping * it means that we have extra bullet protection on our feet. */ -static struct map_desc fb_common_io_desc[] __initdata = { +static struct map_desc ebsa285_host_io_desc[] __initdata = { { .virtual = ARMCSR_BASE, .pfn = __phys_to_pfn(DC21285_ARMCSR_BASE), .length = ARMCSR_SIZE, .type = MT_DEVICE, - } -}; - -/* - * The mapping when the footbridge is in host mode. We don't map any of - * this when we are in add-in mode. - */ -static struct map_desc ebsa285_host_io_desc[] __initdata = { -#if defined(CONFIG_ARCH_FOOTBRIDGE) && defined(CONFIG_FOOTBRIDGE_HOST) + }, { .virtual = PCIMEM_BASE, .pfn = __phys_to_pfn(DC21285_PCI_MEM), @@ -257,26 +246,12 @@ static struct map_desc ebsa285_host_io_desc[] __initdata = { .length = PCIIACK_SIZE, .type = MT_DEVICE, }, -#endif }; void __init footbridge_map_io(void) { - /* - * Set up the common mapping first; we need this to - * determine whether we're in host mode or not. - */ - iotable_init(fb_common_io_desc, ARRAY_SIZE(fb_common_io_desc)); - - /* - * Now, work out what we've got to map in addition on this - * platform. - */ - if (footbridge_cfn_mode()) { - iotable_init(ebsa285_host_io_desc, ARRAY_SIZE(ebsa285_host_io_desc)); - pci_map_io_early(__phys_to_pfn(DC21285_PCI_IO)); - } - + iotable_init(ebsa285_host_io_desc, ARRAY_SIZE(ebsa285_host_io_desc)); + pci_map_io_early(__phys_to_pfn(DC21285_PCI_IO)); vga_base = PCIMEM_BASE; } @@ -307,48 +282,12 @@ void footbridge_restart(enum reboot_mode mode, const char *cmd) } } -#ifdef CONFIG_FOOTBRIDGE_ADDIN - -static inline unsigned long fb_bus_sdram_offset(void) -{ - return *CSR_PCISDRAMBASE & 0xfffffff0; -} - -/* - * These two functions convert virtual addresses to PCI addresses and PCI - * addresses to virtual addresses. Note that it is only legal to use these - * on memory obtained via get_zeroed_page or kmalloc. - */ -unsigned long __virt_to_bus(unsigned long res) -{ - WARN_ON(res < PAGE_OFFSET || res >= (unsigned long)high_memory); - - return res + (fb_bus_sdram_offset() - PAGE_OFFSET); -} -EXPORT_SYMBOL(__virt_to_bus); - -unsigned long __bus_to_virt(unsigned long res) -{ - res = res - (fb_bus_sdram_offset() - PAGE_OFFSET); - - WARN_ON(res < PAGE_OFFSET || res >= (unsigned long)high_memory); - - return res; -} -EXPORT_SYMBOL(__bus_to_virt); -#else -static inline unsigned long fb_bus_sdram_offset(void) -{ - return BUS_OFFSET; -} -#endif /* CONFIG_FOOTBRIDGE_ADDIN */ - dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr) { - return paddr + (fb_bus_sdram_offset() - PHYS_OFFSET); + return paddr + (BUS_OFFSET - PHYS_OFFSET); } phys_addr_t dma_to_phys(struct device *dev, dma_addr_t dev_addr) { - return dev_addr - (fb_bus_sdram_offset() - PHYS_OFFSET); + return dev_addr - (BUS_OFFSET - PHYS_OFFSET); } diff --git a/arch/arm/mach-footbridge/dc21285.c b/arch/arm/mach-footbridge/dc21285.c index f9713dc561cf..372600bc15c8 100644 --- a/arch/arm/mach-footbridge/dc21285.c +++ b/arch/arm/mach-footbridge/dc21285.c @@ -245,9 +245,6 @@ int __init dc21285_setup(int nr, struct pci_sys_data *sys) { struct resource *res; - if (nr || !footbridge_cfn_mode()) - return 0; - res = kcalloc(2, sizeof(struct resource), GFP_KERNEL); if (!res) { printk("out of memory for root bus resources"); @@ -278,7 +275,6 @@ int __init dc21285_setup(int nr, struct pci_sys_data *sys) void __init dc21285_preinit(void) { unsigned int mem_size, mem_mask; - int cfn_mode; pcibios_min_mem = 0x81000000; @@ -298,21 +294,15 @@ void __init dc21285_preinit(void) *CSR_CSRBASEOFFSET = 0; *CSR_PCIADDR_EXTN = 0; - cfn_mode = __footbridge_cfn_mode(); - printk(KERN_INFO "PCI: DC21285 footbridge, revision %02lX, in " - "%s mode\n", *CSR_CLASSREV & 0xff, cfn_mode ? - "central function" : "addin"); - - if (footbridge_cfn_mode()) { - /* - * Clear any existing errors - we aren't - * interested in historical data... - */ - *CSR_SA110_CNTL = (*CSR_SA110_CNTL & 0xffffde07) | - SA110_CNTL_RXSERR; - *CSR_PCICMD = (*CSR_PCICMD & 0xffff) | PCICMD_ERROR_BITS; - } + "central function mode\n", *CSR_CLASSREV & 0xff); + + /* + * Clear any existing errors - we aren't + * interested in historical data... + */ + *CSR_SA110_CNTL = (*CSR_SA110_CNTL & 0xffffde07) | SA110_CNTL_RXSERR; + *CSR_PCICMD = (*CSR_PCICMD & 0xffff) | PCICMD_ERROR_BITS; timer_setup(&serr_timer, dc21285_enable_error, 0); timer_setup(&perr_timer, dc21285_enable_error, 0); @@ -331,29 +321,18 @@ void __init dc21285_preinit(void) dc21285_request_irq(IRQ_PCI_DPERR, dc21285_dparity_irq, 0, "PCI data parity", NULL); - if (cfn_mode) { - /* - * Map our SDRAM at a known address in PCI space, just in case - * the firmware had other ideas. Using a nonzero base is - * necessary, since some VGA cards forcefully use PCI addresses - * in the range 0x000a0000 to 0x000c0000. (eg, S3 cards). - */ - *CSR_PCICSRBASE = 0xf4000000; - *CSR_PCICSRIOBASE = 0; - *CSR_PCISDRAMBASE = __virt_to_bus(PAGE_OFFSET); - *CSR_PCIROMBASE = 0; - *CSR_PCICMD = PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER | - PCI_COMMAND_INVALIDATE | PCICMD_ERROR_BITS; - } else if (footbridge_cfn_mode() != 0) { - /* - * If we are not compiled to accept "add-in" mode, then - * we are using a constant virt_to_bus translation which - * can not hope to cater for the way the host BIOS has - * set up the machine. - */ - panic("PCI: this kernel is compiled for central " - "function mode only"); - } + /* + * Map our SDRAM at a known address in PCI space, just in case + * the firmware had other ideas. Using a nonzero base is + * necessary, since some VGA cards forcefully use PCI addresses + * in the range 0x000a0000 to 0x000c0000. (eg, S3 cards). + */ + *CSR_PCICSRBASE = 0xf4000000; + *CSR_PCICSRIOBASE = 0; + *CSR_PCISDRAMBASE = __virt_to_bus(PAGE_OFFSET); + *CSR_PCIROMBASE = 0; + *CSR_PCICMD = PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER | + PCI_COMMAND_INVALIDATE | PCICMD_ERROR_BITS; } void __init dc21285_postinit(void) diff --git a/arch/arm/mach-footbridge/dma.c b/arch/arm/mach-footbridge/dma.c index 86618074a7a5..228757c8e06f 100644 --- a/arch/arm/mach-footbridge/dma.c +++ b/arch/arm/mach-footbridge/dma.c @@ -50,8 +50,7 @@ static int __init fb_dma_init(void) dma[_DC21285_DMA(1)].d_ops = &fb_dma_ops; #endif #ifdef CONFIG_ISA_DMA - if (footbridge_cfn_mode()) - isa_init_dma(); + isa_init_dma(); #endif return 0; } diff --git a/arch/arm/mach-footbridge/include/mach/memory.h b/arch/arm/mach-footbridge/include/mach/memory.h index 3a5d2638c18f..8f0ca8e8b37e 100644 --- a/arch/arm/mach-footbridge/include/mach/memory.h +++ b/arch/arm/mach-footbridge/include/mach/memory.h @@ -16,22 +16,6 @@ #ifndef __ASM_ARCH_MEMORY_H #define __ASM_ARCH_MEMORY_H - -#if defined(CONFIG_FOOTBRIDGE_ADDIN) -/* - * If we may be using add-in footbridge mode, then we must - * use the out-of-line translation that makes use of the - * PCI BAR - */ -#ifndef __ASSEMBLY__ -extern unsigned long __virt_to_bus(unsigned long); -extern unsigned long __bus_to_virt(unsigned long); -#endif -#define __virt_to_bus __virt_to_bus -#define __bus_to_virt __bus_to_virt - -#elif defined(CONFIG_FOOTBRIDGE_HOST) - /* * The footbridge is programmed to expose the system RAM at 0xe0000000. * The requirement is that the RAM isn't placed at bus address 0, which @@ -41,12 +25,6 @@ extern unsigned long __bus_to_virt(unsigned long); #define __virt_to_bus(x) ((x) + (BUS_OFFSET - PAGE_OFFSET)) #define __bus_to_virt(x) ((x) - (BUS_OFFSET - PAGE_OFFSET)) -#else - -#error "Undefined footbridge mode" - -#endif - /* * Cache flushing area. */ diff --git a/arch/arm/mach-footbridge/isa.c b/arch/arm/mach-footbridge/isa.c index ec5af521cf95..3375ac23c046 100644 --- a/arch/arm/mach-footbridge/isa.c +++ b/arch/arm/mach-footbridge/isa.c @@ -79,9 +79,6 @@ static int __init footbridge_isa_init(void) { int err = 0; - if (!footbridge_cfn_mode()) - return 0; - /* Personal server doesn't have RTC */ if (!machine_is_personal_server()) { isa_rtc_init(); From patchwork Fri Sep 9 20:57:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 12972174 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B9B79ECAAA1 for ; Fri, 9 Sep 2022 20:59:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ozyxKJcBDv2ehwB10Z26Il80EutqRFZmH4C3InbA++U=; b=Ogm/tBWqKzr6bY KrptIpjVWG8woW96RwW8daVadS/yCaaq8iiQLiZ4EW7UbVlLGewC9hmlDAgIvECC2xaW0n0Y3KSqo EcdVAYTPJmZH+N8Yw7j0chJGYKyLHqeHiZtSJyCxmc2pvjROo7iErbhj/Q7IBV1D1DZKFX5/j4eWC Czh5KvPpTY8mFbpLOfdulzMDxLDRMwj6e/++xRPslBN7q/bQ369uJKU/bj7ihD21IU79guX0DN2m+ 6fiCPSlOpDhgLVZmUBhx+22TQpxbG2yWzqrE+Y+Jt1I3ZM5Q8RyqcUVHLDYiGcEe+q9QuHieIAohZ XrbVxyOYkgrQJipoYMKg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oWl4y-002pcI-Rs; Fri, 09 Sep 2022 20:58:24 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oWl4h-002pSl-Hi for linux-arm-kernel@lists.infradead.org; Fri, 09 Sep 2022 20:58:08 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 26EF0620F7; Fri, 9 Sep 2022 20:58:07 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 25B9DC433D7; Fri, 9 Sep 2022 20:58:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1662757086; bh=dQw4HWC0oOIla3gYVBmqDe8D3/Z8MiYwfdPl0jwhfrY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ho5K4FiGJ2mgCqJc6pKhMI1aeVMqjhIwHTcGYjhkRrjJGauWLT9gtr78SfLMav3BJ SadJrc03aTCgGBc1ATGZNyyx5oAXtYc8SgtVZjSL0/pNXBRBqhLskD/4qs55KaEG9T IZbuE0AvjONA5ykvqFjOHNInNBIhKjzln+lptWQBktSm+W5iL55G6CgTlkdbYV/BRE 9iJNSbyI+dB+4eJS4qjGS3at7OEMdwTpFdwaSVU47wEztNX5NNW658K6Mv+spvTO1P bB72jxGuzRWy8tMylNdUakRQdFv2XxxpnXuDw+hI/Q6IXVy3rOz2rpXQjKLcr7JdHF aE/2DeX1dKGRw== From: Arnd Bergmann To: linux-arm-kernel@lists.infradead.org Cc: Arnd Bergmann , Russell King , Christoph Hellwig , Linus Walleij , Marc Zyngier Subject: [PATCH v3 2/5] ARM: footbridge: remove leftover from personal-server Date: Fri, 9 Sep 2022 22:57:46 +0200 Message-Id: <20220909205749.1793677-3-arnd@kernel.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20220909205749.1793677-1-arnd@kernel.org> References: <20220909205749.1793677-1-arnd@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220909_135807_647765_C0B743A5 X-CRM114-Status: GOOD ( 17.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Arnd Bergmann The machine was removed a while ago, and the checks are now useless. Reviewed-by: Christoph Hellwig Tested-by: Marc Zyngier Signed-off-by: Arnd Bergmann --- arch/arm/mach-footbridge/isa.c | 11 +++++------ drivers/tty/serial/21285.c | 3 --- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/arch/arm/mach-footbridge/isa.c b/arch/arm/mach-footbridge/isa.c index 3375ac23c046..84caccddce44 100644 --- a/arch/arm/mach-footbridge/isa.c +++ b/arch/arm/mach-footbridge/isa.c @@ -80,12 +80,11 @@ static int __init footbridge_isa_init(void) int err = 0; /* Personal server doesn't have RTC */ - if (!machine_is_personal_server()) { - isa_rtc_init(); - err = platform_device_register(&rtc_device); - if (err) - printk(KERN_ERR "Unable to register RTC device: %d\n", err); - } + isa_rtc_init(); + err = platform_device_register(&rtc_device); + if (err) + printk(KERN_ERR "Unable to register RTC device: %d\n", err); + err = platform_device_register(&serial_device); if (err) printk(KERN_ERR "Unable to register serial device: %d\n", err); diff --git a/drivers/tty/serial/21285.c b/drivers/tty/serial/21285.c index 7520cc02fd4d..65d6af755567 100644 --- a/drivers/tty/serial/21285.c +++ b/drivers/tty/serial/21285.c @@ -461,9 +461,6 @@ static int __init serial21285_console_setup(struct console *co, char *options) int parity = 'n'; int flow = 'n'; - if (machine_is_personal_server()) - baud = 57600; - /* * Check whether an invalid uart number has been specified, and * if so, search for the first available port that does have From patchwork Fri Sep 9 20:57:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 12972176 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C745CECAAD3 for ; Fri, 9 Sep 2022 20:59:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Htp91flzDi2IwiX7/+u5spjk57teUWjq1cnjbmvVhvw=; b=BpAPx1J/uzccQs 8dI57YjTv0dR1+jkles4/B8lRoaQsmDwgWruJxs4q0IyAsk7xviZjE9sABKvnYQzDxv0iIqjHdhyJ dVUS1+G7VlAvEa1IfcKyDimKgmO4IPsBDxXwrB9iSDFG0bgGzCqHAFnMwnPLlkauaE3/yil/WGLfi kV7O3MaQhvZKZ+V9ftoD4JBpxgAoZ5lFU6agjbyb1qAhFVuCdcXYpgFwxbwbPZocFMZs1o8MJEDme BV8Lo90WwyPbP7iCh8KW+qj4bUlrEvAQFaiQBzIA8b93T2HmhjBsGS9tPXMpLj87K/k6dnNsshaQP /+DDjR1UY1p8lThsg5gQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oWl57-002pdN-IM; Fri, 09 Sep 2022 20:58:33 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oWl4l-002pTP-3U for linux-arm-kernel@lists.infradead.org; Fri, 09 Sep 2022 20:58:13 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id A2CD8B8261C; Fri, 9 Sep 2022 20:58:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 018C1C433B5; Fri, 9 Sep 2022 20:58:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1662757088; bh=4Udz9leV/Acq770ASbUnqNVnBGCTKrMXJS+Zf0vf72A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JISLzphV9wWY8L/pBVsNumr4ztgB1kUZnj+DTWDMINmFY1C9m4iyNH5gSIGOTk0UM Tvoroet8o/OL+VPb4YKm6n3km9sgdLzXv2PqC2nb32iFLxPB0xolMyYxE0kP88y+xs l+lRfoj/RreaF9NGRe7OUuMIp5XtGdWNPOJ6x4S5XfepBjcybBHDuRI+nsTFQB3NFx oQ5bXDqDg9Al2Ubh/CvSv0OOpjxwMGk58xJLMZbSXh3QLIZDapRZEcTmOklNhWjA4j NB70Z9/YOD3sqLDox6nPg+phaskxAwCS3v1MHC9iz7z2jbjiCKvx9Y16fqrEXIcLb+ lqNgbuJChXP9w== From: Arnd Bergmann To: linux-arm-kernel@lists.infradead.org Cc: Arnd Bergmann , Russell King , Christoph Hellwig , Linus Walleij , Marc Zyngier Subject: [PATCH v3 3/5] ARM: footbridge: move isa-dma support into footbridge Date: Fri, 9 Sep 2022 22:57:47 +0200 Message-Id: <20220909205749.1793677-4-arnd@kernel.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20220909205749.1793677-1-arnd@kernel.org> References: <20220909205749.1793677-1-arnd@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220909_135811_463684_81348D42 X-CRM114-Status: GOOD ( 23.15 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Arnd Bergmann The dma-isa.c was shared between footbridge and shark a long time ago, but as shark was removed, it can be made footbridge specific again. The fb_dma bits in turn are not used at all and can be removed. All the ISA related files are now built into the platform regardless of CONFIG_ISA, as they just refer to on-chip devices rather than actual ISA cards. Reviewed-by: Christoph Hellwig Tested-by: Marc Zyngier Signed-off-by: Arnd Bergmann --- arch/arm/Kconfig | 5 -- arch/arm/include/asm/mach/dma.h | 5 -- arch/arm/kernel/Makefile | 1 - arch/arm/mach-footbridge/Kconfig | 2 +- arch/arm/mach-footbridge/Makefile | 3 +- .../arm/{kernel => mach-footbridge}/dma-isa.c | 7 ++- arch/arm/mach-footbridge/dma.c | 57 ------------------- .../mach-footbridge/include/mach/isa-dma.h | 14 +---- 8 files changed, 9 insertions(+), 85 deletions(-) rename arch/arm/{kernel => mach-footbridge}/dma-isa.c (98%) delete mode 100644 arch/arm/mach-footbridge/dma.c diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 87badeae3181..ec7e48f6bd91 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -989,11 +989,6 @@ config ISA (MCA) or VESA. ISA is an older system, now being displaced by PCI; newer boards don't support it. If you have ISA, say Y, otherwise N. -# Select ISA DMA controller support -config ISA_DMA - bool - select ISA_DMA_API - # Select ISA DMA interface config ISA_DMA_API bool diff --git a/arch/arm/include/asm/mach/dma.h b/arch/arm/include/asm/mach/dma.h index 1506422af383..5ec11d7f0d04 100644 --- a/arch/arm/include/asm/mach/dma.h +++ b/arch/arm/include/asm/mach/dma.h @@ -44,8 +44,3 @@ struct dma_struct { * isa_dma_add - add an ISA-style DMA channel */ extern int isa_dma_add(unsigned int, dma_t *dma); - -/* - * Add the ISA DMA controller. Always takes channels 0-7. - */ -extern void isa_init_dma(void); diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile index 553866751e1a..95034d32213c 100644 --- a/arch/arm/kernel/Makefile +++ b/arch/arm/kernel/Makefile @@ -45,7 +45,6 @@ obj-$(CONFIG_ISA_DMA_API) += dma.o obj-$(CONFIG_FIQ) += fiq.o fiqasm.o obj-$(CONFIG_MODULES) += armksyms.o module.o obj-$(CONFIG_ARM_MODULE_PLTS) += module-plts.o -obj-$(CONFIG_ISA_DMA) += dma-isa.o obj-$(CONFIG_PCI) += bios32.o isa.o obj-$(CONFIG_ARM_CPU_SUSPEND) += sleep.o suspend.o obj-$(CONFIG_HIBERNATION) += hibernate.o diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig index 3497ea8e91e3..1a3676109654 100644 --- a/arch/arm/mach-footbridge/Kconfig +++ b/arch/arm/mach-footbridge/Kconfig @@ -48,7 +48,7 @@ config FOOTBRIDGE def_bool y select ARCH_HAS_PHYS_TO_DMA select ARCH_MIGHT_HAVE_PC_SERIO - select ISA_DMA + select ISA_DMA_API config ARCH_EBSA285 bool diff --git a/arch/arm/mach-footbridge/Makefile b/arch/arm/mach-footbridge/Makefile index 30bae6684dce..55d570739f19 100644 --- a/arch/arm/mach-footbridge/Makefile +++ b/arch/arm/mach-footbridge/Makefile @@ -5,7 +5,7 @@ # Object file lists. -obj-y := common.o dma.o isa-irq.o +obj-y := common.o isa-irq.o isa.o isa-rtc.o dma-isa.o pci-y += dc21285.o pci-$(CONFIG_ARCH_CATS) += cats-pci.o @@ -18,4 +18,3 @@ obj-$(CONFIG_ARCH_NETWINDER) += netwinder-hw.o isa-timer.o obj-$(CONFIG_PCI) +=$(pci-y) -obj-$(CONFIG_ISA) += isa.o isa-rtc.o diff --git a/arch/arm/kernel/dma-isa.c b/arch/arm/mach-footbridge/dma-isa.c similarity index 98% rename from arch/arm/kernel/dma-isa.c rename to arch/arm/mach-footbridge/dma-isa.c index 2d90ecce5a11..0fc0705fd58b 100644 --- a/arch/arm/kernel/dma-isa.c +++ b/arch/arm/mach-footbridge/dma-isa.c @@ -1,7 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * linux/arch/arm/kernel/dma-isa.c - * * Copyright (C) 1999-2000 Russell King * * ISA DMA primitives @@ -157,7 +155,7 @@ static dma_t isa_dma[8]; /* * ISA DMA always starts at channel 0 */ -void __init isa_init_dma(void) +static int __init isa_dma_init(void) { /* * Try to autodetect presence of an ISA DMA controller. @@ -222,4 +220,7 @@ void __init isa_init_dma(void) request_dma(DMA_ISA_CASCADE, "cascade"); } + + return 0; } +core_initcall(isa_dma_init); diff --git a/arch/arm/mach-footbridge/dma.c b/arch/arm/mach-footbridge/dma.c deleted file mode 100644 index 228757c8e06f..000000000000 --- a/arch/arm/mach-footbridge/dma.c +++ /dev/null @@ -1,57 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * linux/arch/arm/kernel/dma-ebsa285.c - * - * Copyright (C) 1998 Phil Blundell - * - * DMA functions specific to EBSA-285/CATS architectures - * - * Changelog: - * 09-Nov-1998 RMK Split out ISA DMA functions to dma-isa.c - * 17-Mar-1999 RMK Allow any EBSA285-like architecture to have - * ISA DMA controllers. - */ -#include -#include -#include -#include - -#include - -#include -#include - -#if 0 -static int fb_dma_request(unsigned int chan, dma_t *dma) -{ - return -EINVAL; -} - -static void fb_dma_enable(unsigned int chan, dma_t *dma) -{ -} - -static void fb_dma_disable(unsigned int chan, dma_t *dma) -{ -} - -static struct dma_ops fb_dma_ops = { - .type = "fb", - .request = fb_dma_request, - .enable = fb_dma_enable, - .disable = fb_dma_disable, -}; -#endif - -static int __init fb_dma_init(void) -{ -#if 0 - dma[_DC21285_DMA(0)].d_ops = &fb_dma_ops; - dma[_DC21285_DMA(1)].d_ops = &fb_dma_ops; -#endif -#ifdef CONFIG_ISA_DMA - isa_init_dma(); -#endif - return 0; -} -core_initcall(fb_dma_init); diff --git a/arch/arm/mach-footbridge/include/mach/isa-dma.h b/arch/arm/mach-footbridge/include/mach/isa-dma.h index 8a1b991076e1..b10731a1f66a 100644 --- a/arch/arm/mach-footbridge/include/mach/isa-dma.h +++ b/arch/arm/mach-footbridge/include/mach/isa-dma.h @@ -10,17 +10,9 @@ #ifndef __ASM_ARCH_DMA_H #define __ASM_ARCH_DMA_H -/* - * The 21285 has two internal DMA channels; we call these 8 and 9. - * On CATS hardware we have an additional eight ISA dma channels - * numbered 0..7. - */ -#define _ISA_DMA(x) (0+(x)) -#define _DC21285_DMA(x) (8+(x)) - -#define MAX_DMA_CHANNELS 10 +#define MAX_DMA_CHANNELS 8 -#define DMA_FLOPPY _ISA_DMA(2) -#define DMA_ISA_CASCADE _ISA_DMA(4) +#define DMA_FLOPPY (2) +#define DMA_ISA_CASCADE (4) #endif /* _ASM_ARCH_DMA_H */ From patchwork Fri Sep 9 20:57:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 12972177 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 474C7ECAAA1 for ; Fri, 9 Sep 2022 20:59:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5nylgquvjYLlMeyYX/nP8bZfbpoxrlw2ryv7z7xEPbI=; b=z9vH8jk/Zcn+iT EBiwNyJ1FdHB2Cw8onhf7hG7vp2/pN0J6Dzgfz5aZB9GgYPq3c3Suwer8ViVNk2MJOF7G+MtgxqUI zZJN7Tx1ObK15vAPVzImtLzxWgTafzSdJZ+EZOQAFyKcMxi10o/4zFKtGyQw2EYlt8pv9RN2lzCa8 LP9ClueszaQ7Pl2ZZC8++g/ioC7eWQLnU2IjnGbzX6UYv9f86VQLRRRJkaGMRcICwDjWukG4fobvX tZLcbspoHLwY8euRmVl65RIh4z81Y2Xy3TwhcqBu+GCKYh8vPWpClGfQiAeKoRRZwJU1iuCokFfZj MIquDympKibWUV7Qz+oQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oWl5G-002pge-5r; Fri, 09 Sep 2022 20:58:42 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oWl4m-002pTd-UT for linux-arm-kernel@lists.infradead.org; Fri, 09 Sep 2022 20:58:14 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 8E196B82628; Fri, 9 Sep 2022 20:58:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D04DAC433D6; Fri, 9 Sep 2022 20:58:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1662757090; bh=RaVDNgCUV6z9yJN9CyWLNmh74hB3kKxzEJzK1PYvRhM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BLDeu2xTR3EmayjGT+eIjY6nD3/GKdiYJdAkq/ELKPUK8xtLATy206CowDfBI6Hb4 57+s+PvV5I3KM0M8cFFOtBaflIPjIrCGbuOsqKoCexg5WQ/cDuHtm5JizD9dhLWLyJ AUunKOr5XVDXgCyRpOuKY/UexYelnqRNskT5wZ0PM9n5QBGYqFwfzbczwcZJyAEhJK vuwEmYJX0qwjqCUmXnCzNfw7UqtZfpG4KBI45o7iteJKljlKvbK52iy2KtWZKlX1Wo Huzwd6BhMLm6nLwBNILMinzx5CGqX3nv+MQRv6UuCPYYatLNXlngyaDxTOaHzlqG0U T96F4Z4XeIK4w== From: Arnd Bergmann To: linux-arm-kernel@lists.infradead.org Cc: Arnd Bergmann , Russell King , Christoph Hellwig , Linus Walleij , Marc Zyngier Subject: [PATCH v3 4/5] ARM: footbridge: limit CONFIG_ISA to CATS Date: Fri, 9 Sep 2022 22:57:48 +0200 Message-Id: <20220909205749.1793677-5-arnd@kernel.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20220909205749.1793677-1-arnd@kernel.org> References: <20220909205749.1793677-1-arnd@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220909_135813_175205_A43E9690 X-CRM114-Status: GOOD ( 18.13 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Arnd Bergmann The CONFIG_ISA option is only used for actual add-in cards, not on-board devices. NetWinder has no hardware support for those, and ebsa285 appears to not support them in Linux, as the XBUS is not set up that way and there is no support for a PCI-ISA bridge. CATS on the other hand has four ISA slots connected to a PCI-ISA bridge device. Russell mentioned that it is no longer possible to select the sound drivers for Netwinder after this, as the WaveArtist sound chip is connected to the ISA bus. However, the WaveArtist module was removed years ago in linux-4.15 and did not actually depend on CONFIG_ISA. While the SoundBlaster compatibility mode of the SoundChip might work with the ALSA sb16-isa driver with a little help, there is no mixer support without the waveartist driver, and the default settings for sb16 never probe IRQ 3. Link: https://lore.kernel.org/linux-arm-kernel/87v8q3unlv.wl-maz@kernel.org/ Tested-by: Marc Zyngier Signed-off-by: Arnd Bergmann --- arch/arm/mach-footbridge/Kconfig | 2 -- 1 file changed, 2 deletions(-) diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig index 1a3676109654..cd18871fd03f 100644 --- a/arch/arm/mach-footbridge/Kconfig +++ b/arch/arm/mach-footbridge/Kconfig @@ -18,7 +18,6 @@ config ARCH_CATS config ARCH_EBSA285_HOST bool "EBSA285 (host mode)" select ARCH_EBSA285 - select ISA select ARCH_MAY_HAVE_PC_FDC select FORCE_PCI help @@ -31,7 +30,6 @@ config ARCH_NETWINDER bool "NetWinder" select CLKEVT_I8253 select CLKSRC_I8253 - select ISA select FORCE_PCI help Say Y here if you intend to run this kernel on the Rebel.COM From patchwork Fri Sep 9 20:57:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 12972178 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C9113ECAAD3 for ; Fri, 9 Sep 2022 20:59:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=PnNsltSe7d8o6/l5TJthDkq+RQiJgVYGn1jWN2+IJIk=; b=FDqb+VcVulj1xo lcDEgGysrtOFCTG9lAlQrmiG2vxpznaaY8o28iqR1bURTFJU2x8YK8ECYAnt1y8oCvxCvqy3hwndN YJ/87DP2eD2sKBFlggJePy7rcRJQ5cFGKekYmw9cmP/bJ6/HrJW+6Jn1dxsCafTUHlYq/cL2S1jkI HiVBaKg35OieOs3UKlY+mPTIatPHTqEm5LOoA6ZMqnKg71Ro6+hoqOv9obVLEkjmHB2DLdEaiqaxV vKQR4qb8GB/O0kmkZVPu38YLepK89UhdFO+Yf0mRsoTVfQaHWAAPIdwCtSUEgySzPIyt55VgnmEll fIEpWboOQV7EKB8FCH5A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oWl5R-002pp6-OK; Fri, 09 Sep 2022 20:58:53 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oWl4n-002pTj-5Q for linux-arm-kernel@lists.infradead.org; Fri, 09 Sep 2022 20:58:15 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id AC847620D5; Fri, 9 Sep 2022 20:58:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ADDF4C433D7; Fri, 9 Sep 2022 20:58:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1662757092; bh=hgp7HLfeOqGb8vm9DrUV8MCoySjnq7ghSnumr1M13Mc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=npT0L9StjJs6fxdTqt/+btNr385QxMm/1edfdxyZc+hgYNS4bhxxXikgM7Z/lnW8J F6VSHdQIDZmKAxd4KSEKzvLCrazUIwqfxrUSyuq1sVyJFa+SdwX4KNvud9bjqfI3nT wGsaYZ9+fJ87q/QvySC9wNm0HB47Ei/hjyzwvCSLtyFGNRXF3ykVa+7bGn2rAYnM0M GU1sDtPN+FFg4j90aZa5vhJ6+dhExHgTw41PZT1vUbSLHmANdQMlVZ29zyMxcW/C2z 4sDXOitr6S/Zt5erUI0be03A3OeKcowba2I+/n14fndxhmcXjuVUEVtSzwNtTmxlG/ D9X1wdkKFEiGQ== From: Arnd Bergmann To: linux-arm-kernel@lists.infradead.org Cc: Arnd Bergmann , Russell King , Christoph Hellwig , Linus Walleij , Marc Zyngier Subject: [PATCH v3 5/5] ARM: footbridge: remove custom DMA address handling Date: Fri, 9 Sep 2022 22:57:49 +0200 Message-Id: <20220909205749.1793677-6-arnd@kernel.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20220909205749.1793677-1-arnd@kernel.org> References: <20220909205749.1793677-1-arnd@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220909_135813_351165_2F01E2C9 X-CRM114-Status: GOOD ( 28.58 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Arnd Bergmann Footbridge is the last Arm platform that has its own __virt_to_bus()/__bus_to_virt()/phys_to_dma()/dma_to_phys() abstraction, but this is just a simple offset now. For PCI devices, the offset that is programmed into the PCI bridge must also be set in each device using dma_direct_set_offset(). As Arm does not have a pcibios_bus_add_device() helper yet, just use a bus notifier for this. For the ISA DMA, drivers now pass a non-translated physical address into set_dma_addr(), so they have to be converted back with the corresponding isa_bus_to_virt() function and then into the correct bus address with the offset using the isa_dma_dev. Tested-by: Marc Zyngier Signed-off-by: Arnd Bergmann --- arch/arm/include/asm/dma-direct.h | 1 - arch/arm/include/asm/dma.h | 2 +- arch/arm/include/asm/hardware/dec21285.h | 7 +++++++ arch/arm/include/asm/memory.h | 11 ---------- arch/arm/mach-footbridge/Kconfig | 1 - arch/arm/mach-footbridge/common.c | 10 --------- arch/arm/mach-footbridge/dc21285.c | 21 ++++++++++++++++++- arch/arm/mach-footbridge/dma-isa.c | 4 ++++ .../mach-footbridge/include/mach/dma-direct.h | 8 ------- .../arm/mach-footbridge/include/mach/memory.h | 9 -------- 10 files changed, 32 insertions(+), 42 deletions(-) delete mode 100644 arch/arm/include/asm/dma-direct.h delete mode 100644 arch/arm/mach-footbridge/include/mach/dma-direct.h diff --git a/arch/arm/include/asm/dma-direct.h b/arch/arm/include/asm/dma-direct.h deleted file mode 100644 index 4f7bcde03abb..000000000000 --- a/arch/arm/include/asm/dma-direct.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/arch/arm/include/asm/dma.h b/arch/arm/include/asm/dma.h index 05f29a72150b..c6aded1b069c 100644 --- a/arch/arm/include/asm/dma.h +++ b/arch/arm/include/asm/dma.h @@ -106,7 +106,7 @@ extern void set_dma_sg(unsigned int chan, struct scatterlist *sg, int nr_sg); */ extern void __set_dma_addr(unsigned int chan, void *addr); #define set_dma_addr(chan, addr) \ - __set_dma_addr(chan, (void *)__bus_to_virt(addr)) + __set_dma_addr(chan, (void *)isa_bus_to_virt(addr)) /* Set the DMA byte count for this channel * diff --git a/arch/arm/include/asm/hardware/dec21285.h b/arch/arm/include/asm/hardware/dec21285.h index eee390e8d4dc..894f2a635cbb 100644 --- a/arch/arm/include/asm/hardware/dec21285.h +++ b/arch/arm/include/asm/hardware/dec21285.h @@ -22,6 +22,13 @@ #define DC21285_IO(x) (x) #endif +/* + * The footbridge is programmed to expose the system RAM at 0xe0000000. + * The requirement is that the RAM isn't placed at bus address 0, which + * would clash with VGA cards. + */ +#define BUS_OFFSET 0xe0000000 + #define CSR_PCICMD DC21285_IO(0x0004) #define CSR_CLASSREV DC21285_IO(0x0008) #define CSR_PCICACHELINESIZE DC21285_IO(0x000c) diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h index a55a9038abc8..d8eef4bd8c71 100644 --- a/arch/arm/include/asm/memory.h +++ b/arch/arm/include/asm/memory.h @@ -369,17 +369,6 @@ static inline unsigned long __virt_to_idmap(unsigned long x) #define virt_to_idmap(x) __virt_to_idmap((unsigned long)(x)) -/* - * Virtual <-> DMA view memory address translations - * Again, these are *only* valid on the kernel direct mapped RAM - * memory. Use of these is *deprecated* (and that doesn't mean - * use the __ prefixed forms instead.) See dma-mapping.h. - */ -#ifndef __virt_to_bus -#define __virt_to_bus __virt_to_phys -#define __bus_to_virt __phys_to_virt -#endif - /* * Conversion between a struct page and a physical address. * diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig index cd18871fd03f..f452663576d1 100644 --- a/arch/arm/mach-footbridge/Kconfig +++ b/arch/arm/mach-footbridge/Kconfig @@ -44,7 +44,6 @@ endmenu # Footbridge support config FOOTBRIDGE def_bool y - select ARCH_HAS_PHYS_TO_DMA select ARCH_MIGHT_HAVE_PC_SERIO select ISA_DMA_API diff --git a/arch/arm/mach-footbridge/common.c b/arch/arm/mach-footbridge/common.c index 9483eccea5ae..629e4676ed77 100644 --- a/arch/arm/mach-footbridge/common.c +++ b/arch/arm/mach-footbridge/common.c @@ -281,13 +281,3 @@ void footbridge_restart(enum reboot_mode mode, const char *cmd) *CSR_SA110_CNTL |= (1 << 13); } } - -dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr) -{ - return paddr + (BUS_OFFSET - PHYS_OFFSET); -} - -phys_addr_t dma_to_phys(struct device *dev, dma_addr_t dev_addr) -{ - return dev_addr - (BUS_OFFSET - PHYS_OFFSET); -} diff --git a/arch/arm/mach-footbridge/dc21285.c b/arch/arm/mach-footbridge/dc21285.c index 372600bc15c8..f8920d0010de 100644 --- a/arch/arm/mach-footbridge/dc21285.c +++ b/arch/arm/mach-footbridge/dc21285.c @@ -5,6 +5,7 @@ * Copyright (C) 1998-2001 Russell King * Copyright (C) 1998-2000 Phil Blundell */ +#include #include #include #include @@ -241,6 +242,22 @@ static irqreturn_t dc21285_parity_irq(int irq, void *dev_id) return IRQ_HANDLED; } +static int dc21285_pci_bus_notifier(struct notifier_block *nb, + unsigned long action, + void *data) +{ + if (action != BUS_NOTIFY_ADD_DEVICE) + return NOTIFY_DONE; + + dma_direct_set_offset(data, PHYS_OFFSET, BUS_OFFSET, SZ_256M); + + return NOTIFY_OK; +} + +static struct notifier_block dc21285_pci_bus_nb = { + .notifier_call = dc21285_pci_bus_notifier, +}; + int __init dc21285_setup(int nr, struct pci_sys_data *sys) { struct resource *res; @@ -266,6 +283,8 @@ int __init dc21285_setup(int nr, struct pci_sys_data *sys) pci_add_resource_offset(&sys->resources, &res[0], sys->mem_offset); pci_add_resource_offset(&sys->resources, &res[1], sys->mem_offset); + bus_register_notifier(&pci_bus_type, &dc21285_pci_bus_nb); + return 1; } @@ -329,7 +348,7 @@ void __init dc21285_preinit(void) */ *CSR_PCICSRBASE = 0xf4000000; *CSR_PCICSRIOBASE = 0; - *CSR_PCISDRAMBASE = __virt_to_bus(PAGE_OFFSET); + *CSR_PCISDRAMBASE = BUS_OFFSET; *CSR_PCIROMBASE = 0; *CSR_PCICMD = PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER | PCI_COMMAND_INVALIDATE | PCICMD_ERROR_BITS; diff --git a/arch/arm/mach-footbridge/dma-isa.c b/arch/arm/mach-footbridge/dma-isa.c index 0fc0705fd58b..937f5376d5e7 100644 --- a/arch/arm/mach-footbridge/dma-isa.c +++ b/arch/arm/mach-footbridge/dma-isa.c @@ -11,6 +11,7 @@ * arch/arm/kernel/dma-ebsa285.c * Copyright (C) 1998 Phil Blundell */ +#include #include #include #include @@ -18,6 +19,7 @@ #include #include +#include #define ISA_DMA_MASK 0 #define ISA_DMA_MODE 1 @@ -221,6 +223,8 @@ static int __init isa_dma_init(void) request_dma(DMA_ISA_CASCADE, "cascade"); } + dma_direct_set_offset(&isa_dma_dev, PHYS_OFFSET, BUS_OFFSET, SZ_256M); + return 0; } core_initcall(isa_dma_init); diff --git a/arch/arm/mach-footbridge/include/mach/dma-direct.h b/arch/arm/mach-footbridge/include/mach/dma-direct.h deleted file mode 100644 index 01f9e8367c00..000000000000 --- a/arch/arm/mach-footbridge/include/mach/dma-direct.h +++ /dev/null @@ -1,8 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef MACH_FOOTBRIDGE_DMA_DIRECT_H -#define MACH_FOOTBRIDGE_DMA_DIRECT_H 1 - -dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr); -phys_addr_t dma_to_phys(struct device *dev, dma_addr_t dev_addr); - -#endif /* MACH_FOOTBRIDGE_DMA_DIRECT_H */ diff --git a/arch/arm/mach-footbridge/include/mach/memory.h b/arch/arm/mach-footbridge/include/mach/memory.h index 8f0ca8e8b37e..9516877667d7 100644 --- a/arch/arm/mach-footbridge/include/mach/memory.h +++ b/arch/arm/mach-footbridge/include/mach/memory.h @@ -16,15 +16,6 @@ #ifndef __ASM_ARCH_MEMORY_H #define __ASM_ARCH_MEMORY_H -/* - * The footbridge is programmed to expose the system RAM at 0xe0000000. - * The requirement is that the RAM isn't placed at bus address 0, which - * would clash with VGA cards. - */ -#define BUS_OFFSET 0xe0000000 -#define __virt_to_bus(x) ((x) + (BUS_OFFSET - PAGE_OFFSET)) -#define __bus_to_virt(x) ((x) - (BUS_OFFSET - PAGE_OFFSET)) - /* * Cache flushing area. */