Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752062AbdDCHwY (ORCPT ); Mon, 3 Apr 2017 03:52:24 -0400 Received: from mail7.pr.hu ([87.242.0.7]:49665 "EHLO mail7.pr.hu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751990AbdDCHwV (ORCPT ); Mon, 3 Apr 2017 03:52:21 -0400 From: Zoltan Boszormenyi To: linux-usb@vger.kernel.org, linux-watchdog@vger.kernel.org, linux-i2c@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Paul Menzel , Christian Fetzer , Jean Delvare , Nehal Shah , Tim Small , Guenter Roeck , Zoltan Boszormenyi Subject: [PATCH 1/3 v2] usb: pci-quirks: Add a common mutex for the I/O port pair of SB800 Date: Mon, 3 Apr 2017 09:51:31 +0200 Message-Id: <20170403075133.12343-2-zboszor@pr.hu> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170403075133.12343-1-zboszor@pr.hu> References: <<20170401110223.12056-1-zboszor@pr.hu>> <20170403075133.12343-1-zboszor@pr.hu> X-Spam-Score: 1.3 (+) X-Scan-Signature: e60d8c77b9093fb5a9e5e1cf29f3793d X-Spam-Tracer: backend.mail.pr.hu 1.3 20170403075211Z Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1484 Lines: 44 This patch adds a common mutex in the USB PCI quirks code and starts using it to synchronize access to the I/O port pair 0xcd6 / 0xcd7 on SB800. These I/O ports are also used by i2c-piix4 and sp5100_tco, the next two patches port these drivers to use this common mutex. v2: No extra header and no wrapper for mutex_lock() / mutex_unlock() Signed-off-by: Zoltan Boszormenyi --- drivers/usb/host/pci-quirks.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c index a9a1e4c..1ef0ada 100644 --- a/drivers/usb/host/pci-quirks.c +++ b/drivers/usb/host/pci-quirks.c @@ -279,6 +279,9 @@ bool usb_amd_prefetch_quirk(void) } EXPORT_SYMBOL_GPL(usb_amd_prefetch_quirk); +DEFINE_MUTEX(sb800_mutex); +EXPORT_SYMBOL_GPL(sb800_mutex); + /* * The hardware normally enables the A-link power management feature, which * lets the system lower the power consumption in idle states. @@ -314,11 +317,13 @@ static void usb_amd_quirk_pll(int disable) if (amd_chipset.sb_type.gen == AMD_CHIPSET_SB800 || amd_chipset.sb_type.gen == AMD_CHIPSET_HUDSON2 || amd_chipset.sb_type.gen == AMD_CHIPSET_BOLTON) { + mutex_lock(&sb800_mutex); outb_p(AB_REG_BAR_LOW, 0xcd6); addr_low = inb_p(0xcd7); outb_p(AB_REG_BAR_HIGH, 0xcd6); addr_high = inb_p(0xcd7); addr = addr_high << 8 | addr_low; + mutex_unlock(&sb800_mutex); outl_p(0x30, AB_INDX(addr)); outl_p(0x40, AB_DATA(addr)); -- 2.9.3