From patchwork Wed Dec 21 07:53:04 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Crispin X-Patchwork-Id: 9482665 X-Patchwork-Delegate: bhelgaas@google.com Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 2512060772 for ; Wed, 21 Dec 2016 07:53:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 137F3280B0 for ; Wed, 21 Dec 2016 07:53:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 05A2228179; Wed, 21 Dec 2016 07:53:18 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 76591280B0 for ; Wed, 21 Dec 2016 07:53:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756422AbcLUHxQ (ORCPT ); Wed, 21 Dec 2016 02:53:16 -0500 Received: from nbd.name ([46.4.11.11]:35803 "EHLO nbd.name" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755902AbcLUHxP (ORCPT ); Wed, 21 Dec 2016 02:53:15 -0500 From: John Crispin To: Bjorn Helgaas Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Gabor Juhos , John Crispin Subject: [PATCH] pci: add kernel config option for disabling common PCI quirks Date: Wed, 21 Dec 2016 08:53:04 +0100 Message-Id: <1482306784-29224-1-git-send-email-john@phrozen.org> X-Mailer: git-send-email 1.7.10.4 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Gabor Juhos These quirks do not effect small small plastic routers. These routers tend to have very little flash space. This patch adds a new option that allows us to build a kernel without including the common quirks, thus saving us valuable flash space. When building an image for a MIPS/Ralink router with this option enabled it will reduce the size of an uncompressed uImage by 12KB. Signed-off-by: John Crispin Signed-off-by: Gabor Juhos --- Hi Bjorn, This patch has been lingering inside the OpenWrt for some years. I am not sure if this is the best way to remove the quirks from the build. Let me know if you prefer a different way of solving this. John drivers/pci/Kconfig | 10 ++++++++++ drivers/pci/quirks.c | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig index 6555eb7..967bcd5 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig @@ -71,6 +71,16 @@ config XEN_PCIDEV_FRONTEND The PCI device frontend driver allows the kernel to import arbitrary PCI devices from a PCI backend to support PCI driver domains. +config PCI_DISABLE_COMMON_QUIRKS + bool "PCI disable common quirks" + depends on PCI + default n + help + Say Y here if you do not wish to include the common quirks inside + your kernel This is usefull for devices with scarce memory. + + If you don't know what to do here, say N. + config HT_IRQ bool "Interrupts on hypertransport devices" default y diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index c232729..afe181e 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -41,6 +41,7 @@ static void quirk_mmio_always_on(struct pci_dev *dev) DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on); +#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS /* The Mellanox Tavor device gives false positive parity errors * Mark this device with a broken_parity_status, to allow * PCI scanning code to "skip" this now blacklisted device. @@ -3015,6 +3016,7 @@ static void quirk_intel_mc_errata(struct pci_dev *dev) DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata); +#endif /* !CONFIG_PCI_DISABLE_COMMON_QUIRKS */ /* * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. To @@ -3071,6 +3073,8 @@ static void fixup_debug_report(struct pci_dev *dev, ktime_t calltime, } } +#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS + /* * Some BIOS implementations leave the Intel GPU interrupts enabled, * even though no one is handling them (f.e. i915 driver is never loaded). @@ -3105,6 +3109,8 @@ static void disable_igfx_irq(struct pci_dev *dev) DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); +#endif /* !CONFIG_PCI_DISABLE_COMMON_QUIRKS */ + /* * PCI devices which are on Intel chips can skip the 10ms delay * before entering D3 mode.