Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp6031397pxb; Mon, 14 Feb 2022 13:33:47 -0800 (PST) X-Google-Smtp-Source: ABdhPJzPFEs+86X3B0gqc2FapmprSHxV7uBGnYaxzXQDc2AdNy/cqga+c8H8A0yvNl0+1j5R7Hy+ X-Received: by 2002:a17:90a:6902:b0:1b8:9249:d486 with SMTP id r2-20020a17090a690200b001b89249d486mr797063pjj.76.1644874427499; Mon, 14 Feb 2022 13:33:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644874427; cv=none; d=google.com; s=arc-20160816; b=FW0Y0RrVSzRnt7vggtiX5V7EWQk0BxjdRuQ6paGh6oATHvUoi4nOUMtHEX8bHkXr/5 B0je5G9VTsPvHT1ngCSbgABsxp6v6zTlwv4wRAIat0XuOGWeGVNiE12NokQ3agPZr0BD LPiBcOiEkT9uv8S6r+3DO+gDlTRgAW+C2Fq1/+a+NDEiuS7uSViQR6N0sw1Mo5ImkHOX prEkKEJHhnnN7GtceSigCC7D0LezSHX/UGbtgjFLuFmPOmw3TgwRpaT3o0lrEnoMIae8 /m9dsrGmTKmcU5NHZMcwjishBQE+Sgj0axlZ4hUFX2S3jCBLzCSMhask6lwTAYT9iMEH HFFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:message-id:subject:cc:to :from:date; bh=h5AeNLUcVYSiv316khs8PY3lWyHaO2pviM4d0ESoczQ=; b=PqefQG0Ta9/BsFjGc699+rwrwKlJwY4DtwujF08xKVqSzlws3gpVrrf5I5F9b5vdsP CsjmDPjQbsiasRo6aZ0yHklrs6I5TEXfNFiVvEqiGZ3TispAwQbJTd3no2dQLL+e9cK+ noVBzxhjTOzzDFiFKvzFlsVf27JlGOamcXyb+erqOjYarvqmOoFxM+3NjZJ6ebOuUsIr rdDMxYvN8aV7tw2oQrCasGhf3PdOUQ0hr+QHWgU4zv7M1SQpS6N+XVULCbUcg1gFqrA1 zJ3kZMk0s8UJ738Fv0kYEDu/hzjzjSerHl389X7JRPsLrSoWKL3geEjRh6cr7N2Ml189 E7+A== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id q15si14902414plx.29.2022.02.14.13.33.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Feb 2022 13:33:47 -0800 (PST) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id DCCA1F1E8E; Mon, 14 Feb 2022 12:55:26 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229922AbiBNUxr (ORCPT + 99 others); Mon, 14 Feb 2022 15:53:47 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:54622 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230025AbiBNUxb (ORCPT ); Mon, 14 Feb 2022 15:53:31 -0500 Received: from angie.orcam.me.uk (angie.orcam.me.uk [78.133.224.34]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 93BFADF97; Mon, 14 Feb 2022 12:53:10 -0800 (PST) Received: by angie.orcam.me.uk (Postfix, from userid 500) id D8D9792009C; Mon, 14 Feb 2022 21:16:50 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by angie.orcam.me.uk (Postfix) with ESMTP id D2C4C92009B; Mon, 14 Feb 2022 20:16:50 +0000 (GMT) Date: Mon, 14 Feb 2022 20:16:50 +0000 (GMT) From: "Maciej W. Rozycki" To: Sudip Mukherjee cc: Catalin Marinas , Will Deacon , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Christian Borntraeger , Alexander Gordeev , Sven Schnelle , Jeff Dike , Richard Weinberger , Anton Ivanov , Chris Zankel , Max Filippov , linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] parport_pc: Also enable driver for PCI systems Message-ID: User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no 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 Nowadays PC-style parallel ports come in the form of PCI and PCIe option cards and there are some combined parallel/serial option cards as well that we handle in the parport subsystem. There is nothing in particular that would prevent them from being used in any system equipped with PCI or PCIe connectivity, except that we do not permit the PARPORT_PC config option to be selected for platforms for which ARCH_MIGHT_HAVE_PC_PARPORT has not been set for. The only PCI platforms that actually can't make use of PC-style parallel port hardware are those newer PCIe systems that have no support for I/O cycles in the host bridge, required by such parallel ports. Notably, this includes the s390 arch, which has port I/O accessors that cause compilation warnings (promoted to errors with `-Werror'), and there are other cases such as the POWER9 PHB4 device, though this one has variable port I/O accessors that depend on the particular system. Also it is not clear whether the serial port side of devices enabled by PARPORT_SERIAL uses port I/O or MMIO. Finally Super I/O solutions are always either ISA or platform devices. Make the PARPORT_PC option selectable also for PCI systems then, except for the s390 arch, however limit the availability of PARPORT_PC_SUPERIO to platforms that enable ARCH_MIGHT_HAVE_PC_PARPORT. Update platforms accordingly for the required header. Signed-off-by: Maciej W. Rozycki --- Hi, I have verified this lightly by booting a kernel with PARPORT_PC and PARPORT_SERIAL enabled on a RISC-V HiFive Unmatched system. While I do have a PCIe parallel port option available that I could use with my RISC-V machine (based on the OxSemi OXPCIe952 chip) it is currently plugged in the wrong system, and both machines are in my remote lab I have currently no visit scheduled to in the near future. For the record the device reports as: PCI parallel port detected: 1415:c118, I/O at 0x1000(0x1008), IRQ 18 parport1: PC-style at 0x1000 (0x1008), irq 18, using FIFO [PCSPP,TRISTATE,COMPAT,EPP,ECP] in the other system. I'll see if I can verify it with the Unmatched at the next opportunity, though it seems like an overkill to me given that a PC-style parallel port is a generic PCIe device. The OXPCIe952 implements a multifunction device, so it doesn't rely on PARPORT_SERIAL. NB platforms to be updated for generation were chosen by the presence of the HAVE_PCI or FORCE_PCI option from ones that do not already have or generate that header, except for s390, now excluded. Let me know if I got anything wrong here. Maciej Changes from v1: - Exclude s390 systems, update the change description accordingly. --- arch/arm64/include/asm/Kbuild | 1 + arch/csky/include/asm/Kbuild | 1 + arch/riscv/include/asm/Kbuild | 1 + arch/um/include/asm/Kbuild | 1 + arch/xtensa/include/asm/Kbuild | 1 + drivers/parport/Kconfig | 4 ++-- 6 files changed, 7 insertions(+), 2 deletions(-) linux-parport-pc-pci.diff Index: linux-macro/arch/arm64/include/asm/Kbuild =================================================================== --- linux-macro.orig/arch/arm64/include/asm/Kbuild +++ linux-macro/arch/arm64/include/asm/Kbuild @@ -3,6 +3,7 @@ generic-y += early_ioremap.h generic-y += mcs_spinlock.h generic-y += qrwlock.h generic-y += qspinlock.h +generic-y += parport.h generic-y += user.h generated-y += cpucaps.h Index: linux-macro/arch/csky/include/asm/Kbuild =================================================================== --- linux-macro.orig/arch/csky/include/asm/Kbuild +++ linux-macro/arch/csky/include/asm/Kbuild @@ -4,5 +4,6 @@ generic-y += extable.h generic-y += gpio.h generic-y += kvm_para.h generic-y += qrwlock.h +generic-y += parport.h generic-y += user.h generic-y += vmlinux.lds.h Index: linux-macro/arch/riscv/include/asm/Kbuild =================================================================== --- linux-macro.orig/arch/riscv/include/asm/Kbuild +++ linux-macro/arch/riscv/include/asm/Kbuild @@ -2,5 +2,6 @@ generic-y += early_ioremap.h generic-y += flat.h generic-y += kvm_para.h +generic-y += parport.h generic-y += user.h generic-y += vmlinux.lds.h Index: linux-macro/arch/um/include/asm/Kbuild =================================================================== --- linux-macro.orig/arch/um/include/asm/Kbuild +++ linux-macro/arch/um/include/asm/Kbuild @@ -17,6 +17,7 @@ generic-y += mcs_spinlock.h generic-y += mmiowb.h generic-y += module.lds.h generic-y += param.h +generic-y += parport.h generic-y += percpu.h generic-y += preempt.h generic-y += softirq_stack.h Index: linux-macro/arch/xtensa/include/asm/Kbuild =================================================================== --- linux-macro.orig/arch/xtensa/include/asm/Kbuild +++ linux-macro/arch/xtensa/include/asm/Kbuild @@ -4,6 +4,7 @@ generic-y += extable.h generic-y += kvm_para.h generic-y += mcs_spinlock.h generic-y += param.h +generic-y += parport.h generic-y += qrwlock.h generic-y += qspinlock.h generic-y += user.h Index: linux-macro/drivers/parport/Kconfig =================================================================== --- linux-macro.orig/drivers/parport/Kconfig +++ linux-macro/drivers/parport/Kconfig @@ -42,7 +42,7 @@ if PARPORT config PARPORT_PC tristate "PC-style hardware" - depends on ARCH_MIGHT_HAVE_PC_PARPORT + depends on ARCH_MIGHT_HAVE_PC_PARPORT || (PCI && !S390) help You should say Y here if you have a PC-style parallel port. All IBM PC compatible computers and some Alphas have PC-style @@ -77,7 +77,7 @@ config PARPORT_PC_FIFO config PARPORT_PC_SUPERIO bool "SuperIO chipset support" - depends on PARPORT_PC && !PARISC + depends on ARCH_MIGHT_HAVE_PC_PARPORT && PARPORT_PC && !PARISC help Saying Y here enables some probes for Super-IO chipsets in order to find out things like base addresses, IRQ lines and DMA channels. It