From patchwork Wed Nov 4 15:24:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnaud de Turckheim X-Patchwork-Id: 1394097 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=EAl3Ny7V; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4CR9TG0Wx7z9sRK for ; Thu, 5 Nov 2020 02:25:38 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730395AbgKDPZT (ORCPT ); Wed, 4 Nov 2020 10:25:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54428 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730349AbgKDPZS (ORCPT ); Wed, 4 Nov 2020 10:25:18 -0500 Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 09375C0613D3; Wed, 4 Nov 2020 07:25:18 -0800 (PST) Received: by mail-wr1-x444.google.com with SMTP id x7so22497047wrl.3; Wed, 04 Nov 2020 07:25:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BF7gpkzHkPFc34hVY9E9ZbHX268ds3rIV7llWF9u/o8=; b=EAl3Ny7V5PvlOEbuMhVwjCjkp0PPEGY5PrBWvoidTsSINFel4Tv0uA+jQNg4pwqIlK ojuDwKG7LWDA51y2Fg8l0QxXkjHp2qQ0j/+5b6SQqlLSKlVwtyoAI2IizZ+wZRfH+uds hqmYdc1UtM17xtESd/D2qAcoEqyqfL0GuoR0hw9MrJhLkHk8uPHQHcHMesXyV+9EHqLd cZ++Sy+Om5GpPCktZfPATQ+XbRIYM2ro83c3HkJImlyp0kWbbXqyCfNO3xc9zCDBVObd lEdPGfNtYIWgUUthiwLYAtsNLhguGSY0dQxo+BL4oNmg2vl4zY6LunypjH16AaolfLZ5 D1gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=BF7gpkzHkPFc34hVY9E9ZbHX268ds3rIV7llWF9u/o8=; b=N3Cpph2j5qXhcofcbUv32ZUEmAu1dcwJ2+F1jcSrmANNlddOO9vZw33uYJYygXfbnr WjrqSqCYlBoeFxyfhH4JdRa5oUiBQ7GeBhxG54CM1AunBNjus7zbPLL+PFwrwVH6Hfzo G8p7uVlJaZjwzuqT9GDXjNCZfctsCoI+ZGYKkR/j94rLtbE3v0cWuS5NmVW9ePU2UWs3 Ybr52aBrkSW27dxvvTNNXKXNIR3C/0MODOslaz12dqLUaakfDlyV9PS9UgG+UzFhdYkL QqsgJ+T0K1gUlNmKm8rTuaSD1savgUxAiHauux6WXjuQraeS0ltu0Ce4dp6cTc+asBgO uk+A== X-Gm-Message-State: AOAM532LUfyVTj36esEoJRMjurb5ltzvXdunmSif6VB2/X9Ms1OE6GqV UqylmcgL11iM+6MukmgsNtgdMrga3pA= X-Google-Smtp-Source: ABdhPJwVgTXQO4aUB14NJoYkDr4bwwLx8LUKunKbtyH7Os1A/enmGBc5CVn7/wkjlJgZrwf+esPbGw== X-Received: by 2002:adf:c143:: with SMTP id w3mr32643252wre.62.1604503516797; Wed, 04 Nov 2020 07:25:16 -0800 (PST) Received: from srv-dev.mgt.openheadend.tv (aob-ovh-4.easytools.tv. [51.210.1.153]) by smtp.gmail.com with ESMTPSA id t2sm3050077wrw.95.2020.11.04.07.25.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2020 07:25:16 -0800 (PST) From: Arnaud de Turckheim To: linus.walleij@linaro.org Cc: bgolaszewski@baylibre.com, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, vilhelm.gray@gmail.com, Arnaud de Turckheim Subject: [PATCH 1/3] gpio: pcie-idio-24: Fix irq mask when masking Date: Wed, 4 Nov 2020 16:24:53 +0100 Message-Id: <20201104152455.40627-2-quarium@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201104152455.40627-1-quarium@gmail.com> References: <20201104152455.40627-1-quarium@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Fix the bitwise operation to remove only the corresponding bit from the mask. Fixes: 585562046628 ("gpio: Add GPIO support for the ACCES PCIe-IDIO-24 family") Signed-off-by: Arnaud de Turckheim Reviewed-by: William Breathitt Gray --- drivers/gpio/gpio-pcie-idio-24.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-pcie-idio-24.c b/drivers/gpio/gpio-pcie-idio-24.c index a68941d19ac6..5ea517416366 100644 --- a/drivers/gpio/gpio-pcie-idio-24.c +++ b/drivers/gpio/gpio-pcie-idio-24.c @@ -339,7 +339,7 @@ static void idio_24_irq_mask(struct irq_data *data) raw_spin_lock_irqsave(&idio24gpio->lock, flags); - idio24gpio->irq_mask &= BIT(bit_offset); + idio24gpio->irq_mask &= ~BIT(bit_offset); new_irq_mask = idio24gpio->irq_mask >> bank_offset; if (!new_irq_mask) { From patchwork Wed Nov 4 15:24:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnaud de Turckheim X-Patchwork-Id: 1394096 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=H6uRIaV9; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4CR9T35HMmz9sVN for ; Thu, 5 Nov 2020 02:25:27 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730646AbgKDPZ0 (ORCPT ); Wed, 4 Nov 2020 10:25:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54436 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730490AbgKDPZU (ORCPT ); Wed, 4 Nov 2020 10:25:20 -0500 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24225C0613D3; Wed, 4 Nov 2020 07:25:20 -0800 (PST) Received: by mail-wr1-x441.google.com with SMTP id 33so11674966wrl.7; Wed, 04 Nov 2020 07:25:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=10jlcCfU4L1eJ86OGF+6rgKnU1smgRqy0z0oCy+8t88=; b=H6uRIaV9ASsEqAl3oNKt5dW9WojRPD49hjl4ylqT5MomjW4XJo9O6QXBQYgUXO9VbK h6Kig5ikQATyxsuJUVPnDZG2meZO7LzmFiUTW3b0Plup1TdEUK2THtbVtB1Az9y5Ou3x W3fcJazdygmQvoPfEhb+DgMpQtXISwnRnNPRsCOnG9lDHEol+ju6TevyYTGi2vidcDZ8 fsQW2gsEo0rvFFVzwXkFSVekf7JF574uKXu4uLokHjvP384I5AhGfglEVGZNm0xC1NrD xDoJ/kJ3heozb0oDrdyoZuG8FnWb7aFyJe4bbxpHT0/LysV1ND9ne12rGPIqqt23mvrq px2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=10jlcCfU4L1eJ86OGF+6rgKnU1smgRqy0z0oCy+8t88=; b=opSMmR2QKCD7Xq8t90m1vbB2fU/Cn8hp5rhINXPPhOusmoWxSJcxzyYyfW66P2MOzq z90TbbfDFE5+YEDuIFvfMfuGVT7EtskfzNwOnCugxG+TgXsXiq6WqFyIXJkUCl6GpgGF 0S9q7zKzyHgrWwPFBUld4MpN9TubCqw4raKXIrMlLH2NfhMZfmEybH6giJAue05QNZwT OMkWPPB1UgE/3aUAITQ/6xx/rmI+OHXloIEflB9wW52gnymZyfdiOwZa8u6eyHRvayLH HdqOa8kp1T8VpwLH6GD2qR6WTvEIzIxo9WJas21FMe8jZ0Mlt2tPbEyJRtx+3pgHodNF R67g== X-Gm-Message-State: AOAM531zXy3cOiLpXJZfU4wYBQix3EureevERwtcsjAP/WyGmxLIF5nW pkHHLp1Q7sHG+P07hyYvyjtSv4hd7sY= X-Google-Smtp-Source: ABdhPJzBSRI84GB8ev44Z5ZbDjqTjjAIWCHXCXSLv1UJP6FIkp0kJXQC1MuuB/veY/X1yCKVW3sBVg== X-Received: by 2002:a5d:4249:: with SMTP id s9mr369921wrr.226.1604503518901; Wed, 04 Nov 2020 07:25:18 -0800 (PST) Received: from srv-dev.mgt.openheadend.tv (aob-ovh-4.easytools.tv. [51.210.1.153]) by smtp.gmail.com with ESMTPSA id t2sm3050077wrw.95.2020.11.04.07.25.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2020 07:25:17 -0800 (PST) From: Arnaud de Turckheim To: linus.walleij@linaro.org Cc: bgolaszewski@baylibre.com, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, vilhelm.gray@gmail.com, Arnaud de Turckheim Subject: [PATCH 2/3] gpio: pcie-idio-24: Fix IRQ Enable Register value Date: Wed, 4 Nov 2020 16:24:54 +0100 Message-Id: <20201104152455.40627-3-quarium@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201104152455.40627-1-quarium@gmail.com> References: <20201104152455.40627-1-quarium@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org This fixes the COS Enable Register value for enabling/disabling the corresponding IRQs bank. Fixes: 585562046628 ("gpio: Add GPIO support for the ACCES PCIe-IDIO-24 family") Signed-off-by: Arnaud de Turckheim Reviewed-by: William Breathitt Gray --- drivers/gpio/gpio-pcie-idio-24.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpio-pcie-idio-24.c b/drivers/gpio/gpio-pcie-idio-24.c index 5ea517416366..a61de14d09b6 100644 --- a/drivers/gpio/gpio-pcie-idio-24.c +++ b/drivers/gpio/gpio-pcie-idio-24.c @@ -334,13 +334,13 @@ static void idio_24_irq_mask(struct irq_data *data) unsigned long flags; const unsigned long bit_offset = irqd_to_hwirq(data) - 24; unsigned char new_irq_mask; - const unsigned long bank_offset = bit_offset/8 * 8; + const unsigned long bank_offset = bit_offset / 8; unsigned char cos_enable_state; raw_spin_lock_irqsave(&idio24gpio->lock, flags); idio24gpio->irq_mask &= ~BIT(bit_offset); - new_irq_mask = idio24gpio->irq_mask >> bank_offset; + new_irq_mask = idio24gpio->irq_mask >> bank_offset * 8; if (!new_irq_mask) { cos_enable_state = ioread8(&idio24gpio->reg->cos_enable); @@ -363,12 +363,12 @@ static void idio_24_irq_unmask(struct irq_data *data) unsigned long flags; unsigned char prev_irq_mask; const unsigned long bit_offset = irqd_to_hwirq(data) - 24; - const unsigned long bank_offset = bit_offset/8 * 8; + const unsigned long bank_offset = bit_offset / 8; unsigned char cos_enable_state; raw_spin_lock_irqsave(&idio24gpio->lock, flags); - prev_irq_mask = idio24gpio->irq_mask >> bank_offset; + prev_irq_mask = idio24gpio->irq_mask >> bank_offset * 8; idio24gpio->irq_mask |= BIT(bit_offset); if (!prev_irq_mask) { From patchwork Wed Nov 4 15:24:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnaud de Turckheim X-Patchwork-Id: 1394095 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=HTy3QjZ6; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4CR9T31WZVz9sVM for ; Thu, 5 Nov 2020 02:25:27 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730370AbgKDPZY (ORCPT ); Wed, 4 Nov 2020 10:25:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54442 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730582AbgKDPZW (ORCPT ); Wed, 4 Nov 2020 10:25:22 -0500 Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B8CC8C0613D3; Wed, 4 Nov 2020 07:25:21 -0800 (PST) Received: by mail-wr1-x444.google.com with SMTP id s9so22457129wro.8; Wed, 04 Nov 2020 07:25:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NzUdG7O5plJLltDdQaAt7vQkier8SQMoP2Kz4KWpJtg=; b=HTy3QjZ6WeEHGWiVybXAWLAbazQm6t1Jx8qkfY8ajPoYCY66rZlKj9XOWS8b3RvnWF hXmUAOmPOOwBzd1uDQ/r55JsN1GuoNWTvDIS0woWukbJERH7HEf9PFL1kP+HMOzu1qfK dyW2oR6AM1jHNBNkc8pxvoN7xHaWvpsZvP7P+nppSDwjAbtXpsa2uLWcBniRZyPqe6Gk HTfOhvwuCXH4xDsHEDftgcfbuUFWS0O6jn5lUbMeDLpwZIDy9pqn+66te/tyUQQhbzRP NilI7jbP9mhUv1TgK1GniLP0HuIVmcF1YjS2gzp8zmnk1o/zRFVjmkVdx+50DrEb36Xt PSYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NzUdG7O5plJLltDdQaAt7vQkier8SQMoP2Kz4KWpJtg=; b=cuiF8FWxrsm0kJDK1PbIb4NSmahO9brR/Fo01Gy/84DMWnOQkKNx7EseFqPYLZE1h7 7BDo4QjiUMNQv17Y5g43fQZ13swtjqugfwxsZY0TQE0f+D9G/SiPP9m28McE6FymmqL2 Sd/gQaIFiruGX2DBnGWErC4FVmW89w72Eped1svy2fJKRlN1vn7IP1Xm6vq71vgC8dgD Gj4okcJVm4BKWU2UwPW3eZ6PBB+8M1jHpc/mNU1baxEXtafA0ReHTrOG4SqVP4FBfZvF /xJ4skhguemSHQmrfU0qWLNDHOzVxC0yse7uLjWZH5DfG5RgUiS4YIjdP7J0GR6f5iPP wC0w== X-Gm-Message-State: AOAM532ecoEOhtapV5b7pPGJOT6KgqrPahdrcKe1VzHFhEpn/NGv+evT M+W37qcBHooW6UuIio/hWyQ= X-Google-Smtp-Source: ABdhPJwBKP7XMdHOEzKCA1aoTL/727GoUgoWuR5MxDyKScNUGQHAWCVtseN7CzPg+T7lgVeIhFjqPw== X-Received: by 2002:adf:f7c3:: with SMTP id a3mr34879862wrq.254.1604503520488; Wed, 04 Nov 2020 07:25:20 -0800 (PST) Received: from srv-dev.mgt.openheadend.tv (aob-ovh-4.easytools.tv. [51.210.1.153]) by smtp.gmail.com with ESMTPSA id t2sm3050077wrw.95.2020.11.04.07.25.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2020 07:25:19 -0800 (PST) From: Arnaud de Turckheim To: linus.walleij@linaro.org Cc: bgolaszewski@baylibre.com, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, vilhelm.gray@gmail.com, Arnaud de Turckheim Subject: [PATCH 3/3] gpio: pcie-idio-24: Enable PEX8311 interrupts Date: Wed, 4 Nov 2020 16:24:55 +0100 Message-Id: <20201104152455.40627-4-quarium@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201104152455.40627-1-quarium@gmail.com> References: <20201104152455.40627-1-quarium@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org This enables the PEX8311 internal PCI wire interrupt and the PEX8311 local interrupt input so the local interrupts are forwarded to the PCI. Fixes: 585562046628 ("gpio: Add GPIO support for the ACCES PCIe-IDIO-24 family") Signed-off-by: Arnaud de Turckheim Reviewed-by: William Breathitt Gray --- drivers/gpio/gpio-pcie-idio-24.c | 52 +++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-pcie-idio-24.c b/drivers/gpio/gpio-pcie-idio-24.c index a61de14d09b6..2a07fd96707e 100644 --- a/drivers/gpio/gpio-pcie-idio-24.c +++ b/drivers/gpio/gpio-pcie-idio-24.c @@ -28,6 +28,47 @@ #include #include +/* + * PLX PEX8311 PCI LCS_INTCSR Interrupt Control/Status + * + * Bit: Description + * 0: Enable Interrupt Sources (Bit 0) + * 1: Enable Interrupt Sources (Bit 1) + * 2: Generate Internal PCI Bus Internal SERR# Interrupt + * 3: Mailbox Interrupt Enable + * 4: Power Management Interrupt Enable + * 5: Power Management Interrupt + * 6: Slave Read Local Data Parity Check Error Enable + * 7: Slave Read Local Data Parity Check Error Status + * 8: Internal PCI Wire Interrupt Enable + * 9: PCI Express Doorbell Interrupt Enable + * 10: PCI Abort Interrupt Enable + * 11: Local Interrupt Input Enable + * 12: Retry Abort Enable + * 13: PCI Express Doorbell Interrupt Active + * 14: PCI Abort Interrupt Active + * 15: Local Interrupt Input Active + * 16: Local Interrupt Output Enable + * 17: Local Doorbell Interrupt Enable + * 18: DMA Channel 0 Interrupt Enable + * 19: DMA Channel 1 Interrupt Enable + * 20: Local Doorbell Interrupt Active + * 21: DMA Channel 0 Interrupt Active + * 22: DMA Channel 1 Interrupt Active + * 23: Built-In Self-Test (BIST) Interrupt Active + * 24: Direct Master was the Bus Master during a Master or Target Abort + * 25: DMA Channel 0 was the Bus Master during a Master or Target Abort + * 26: DMA Channel 1 was the Bus Master during a Master or Target Abort + * 27: Target Abort after internal 256 consecutive Master Retrys + * 28: PCI Bus wrote data to LCS_MBOX0 + * 29: PCI Bus wrote data to LCS_MBOX1 + * 30: PCI Bus wrote data to LCS_MBOX2 + * 31: PCI Bus wrote data to LCS_MBOX3 + */ +#define PLX_PEX8311_PCI_LCS_INTCSR 0x68 +#define INTCSR_INTERNAL_PCI_WIRE BIT(8) +#define INTCSR_LOCAL_INPUT BIT(11) + /** * struct idio_24_gpio_reg - GPIO device registers structure * @out0_7: Read: FET Outputs 0-7 @@ -92,6 +133,7 @@ struct idio_24_gpio_reg { struct idio_24_gpio { struct gpio_chip chip; raw_spinlock_t lock; + __u8 __iomem *plx; struct idio_24_gpio_reg __iomem *reg; unsigned long irq_mask; }; @@ -455,6 +497,7 @@ static int idio_24_probe(struct pci_dev *pdev, const struct pci_device_id *id) struct device *const dev = &pdev->dev; struct idio_24_gpio *idio24gpio; int err; + const size_t pci_plx_bar_index = 1; const size_t pci_bar_index = 2; const char *const name = pci_name(pdev); struct gpio_irq_chip *girq; @@ -469,12 +512,13 @@ static int idio_24_probe(struct pci_dev *pdev, const struct pci_device_id *id) return err; } - err = pcim_iomap_regions(pdev, BIT(pci_bar_index), name); + err = pcim_iomap_regions(pdev, BIT(pci_plx_bar_index) | BIT(pci_bar_index), name); if (err) { dev_err(dev, "Unable to map PCI I/O addresses (%d)\n", err); return err; } + idio24gpio->plx = pcim_iomap_table(pdev)[pci_plx_bar_index]; idio24gpio->reg = pcim_iomap_table(pdev)[pci_bar_index]; idio24gpio->chip.label = name; @@ -504,6 +548,12 @@ static int idio_24_probe(struct pci_dev *pdev, const struct pci_device_id *id) /* Software board reset */ iowrite8(0, &idio24gpio->reg->soft_reset); + /* + * enable PLX PEX8311 internal PCI wire interrupt and local interrupt + * input + */ + iowrite8((INTCSR_INTERNAL_PCI_WIRE | INTCSR_LOCAL_INPUT) >> 8, + idio24gpio->plx + PLX_PEX8311_PCI_LCS_INTCSR + 1); err = devm_gpiochip_add_data(dev, &idio24gpio->chip, idio24gpio); if (err) {