From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Jenishkumar Maheshbhai Patel <jpatel2@marvell.com>
Cc: lpieralisi@kernel.org, thomas.petazzoni@bootlin.com,
kw@linux.com, manivannan.sadhasivam@linaro.org, robh@kernel.org,
bhelgaas@google.com, linux-pci@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, salee@marvell.com,
dingwei@marvell.com
Subject: Re: [PATCH 1/1] PCI: armada8k: add device reset to link-down handle
Date: Tue, 12 Nov 2024 09:40:42 +0000 [thread overview]
Message-ID: <ZzMimiRUAV6ecx1s@shell.armlinux.org.uk> (raw)
In-Reply-To: <20241112070310.757856-1-jpatel2@marvell.com>
On Mon, Nov 11, 2024 at 11:03:10PM -0800, Jenishkumar Maheshbhai Patel wrote:
> diff --git a/drivers/pci/controller/dwc/pcie-armada8k.c b/drivers/pci/controller/dwc/pcie-armada8k.c
> index b1b48c2016f7..9a48ef60be51 100644
> --- a/drivers/pci/controller/dwc/pcie-armada8k.c
> +++ b/drivers/pci/controller/dwc/pcie-armada8k.c
> @@ -23,6 +23,7 @@
> #include <linux/of_pci.h>
> #include <linux/mfd/syscon.h>
> #include <linux/regmap.h>
> +#include <linux/of_gpio.h>
>
> #include "pcie-designware.h"
>
> @@ -37,6 +38,8 @@ struct armada8k_pcie {
> struct regmap *sysctrl_base;
> u32 mac_rest_bitmask;
> struct work_struct recover_link_work;
> + enum of_gpio_flags flags;
> + struct gpio_desc *reset_gpio;
> };
>
> #define PCIE_VENDOR_REGS_OFFSET 0x8000
> @@ -238,9 +241,18 @@ static void armada8k_pcie_recover_link(struct work_struct *ws)
> }
> pci_lock_rescan_remove();
> pci_stop_and_remove_bus_device(root_port);
> + /* Reset device if reset gpio is set */
> + if (pcie->reset_gpio) {
> + /* assert and then deassert the reset signal */
> + gpiod_set_value_cansleep(pcie->reset_gpio, 0);
> + msleep(100);
> + gpiod_set_value_cansleep(pcie->reset_gpio,
> + (pcie->flags & OF_GPIO_ACTIVE_LOW) ? 0 : 1);
This looks wrong. resets are normally active-low.
gpiod_set_value_cansleep() should be called with '1' to indicate active
state, and '0' to indicate de-active state. DT should specify whether
the signal is active high or active low.
> + /* Config reset gpio for pcie if the reset connected to gpio */
> + reset_gpio = of_get_named_gpio_flags(pdev->dev.of_node,
> + "reset-gpios", 0,
> + &pcie->flags);
> + if (gpio_is_valid(reset_gpio))
> + pcie->reset_gpio = gpio_to_desc(reset_gpio);
> +
Just use devm_fwnode_gpiod_get() here, which will also handle the
cleanup.
To see how this should be done, look at
drivers/pci/controller/pci-mvebu.c which gets the polarity settings
correct too, as mentioned above.
Lastly, as this patch is related to the breaking DT change, it
_should_ have been sent as a patch series (which means the same
Cc list on each patch) so that reviewers can see the full story
and comments on the other patches.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
next prev parent reply other threads:[~2024-11-12 9:43 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-12 7:03 [PATCH 1/1] PCI: armada8k: add device reset to link-down handle Jenishkumar Maheshbhai Patel
2024-11-12 9:40 ` Russell King (Oracle) [this message]
2024-11-12 21:36 ` Bjorn Helgaas
[not found] ` <BY3PR18MB46731FD9009EC4A2443C41F8A7F52@BY3PR18MB4673.namprd18.prod.outlook.com>
2025-02-03 4:28 ` Wilson Ding
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZzMimiRUAV6ecx1s@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=bhelgaas@google.com \
--cc=dingwei@marvell.com \
--cc=jpatel2@marvell.com \
--cc=kw@linux.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=robh@kernel.org \
--cc=salee@marvell.com \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.