All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andy.shevchenko@gmail.com>
To: Stuart Hayes <stuart.w.hayes@gmail.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	Austin Bolen <austin_bolen@dell.com>,
	Keith Busch <keith.busch@intel.com>,
	Alexandru Gagniuc <mr.nuke.me@gmail.com>,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	"Gustavo A . R . Silva" <gustavo@embeddedor.com>,
	Sinan Kaya <okaya@kernel.org>,
	Oza Pawandeep <poza@codeaurora.org>,
	linux-pci@vger.kernel.org,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Lukas Wunner <lukas@wunner.de>
Subject: Re: [PATCH v4 3/3] PCI: pciehp: Add dmi table for in-band presence disabled
Date: Fri, 25 Oct 2019 22:18:06 +0300	[thread overview]
Message-ID: <CAHp75Vdx9xVzgjPAxdMoSB=ZZx+Kc6yE4Ko3fn-gC6_+JtmT4g@mail.gmail.com> (raw)
In-Reply-To: <20191025190047.38130-4-stuart.w.hayes@gmail.com>

On Fri, Oct 25, 2019 at 10:01 PM Stuart Hayes <stuart.w.hayes@gmail.com> wrote:
>
> Some systems have in-band presence detection disabled for hot-plug PCI
> slots, but do not report this in the slot capabilities 2 (SLTCAP2) register.
> On these systems, presence detect can become active well after the link is
> reported to be active, which can cause the slots to be disabled after a
> device is connected.
>
> Add a dmi table to flag these systems as having in-band presence disabled.
>

FWIW,
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

> Signed-off-by: Stuart Hayes <stuart.w.hayes@gmail.com>
> ---
> v4
>   add comment to dmi table
>
>  drivers/pci/hotplug/pciehp_hpc.c | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
>
> diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c
> index 02d95ab27a12..9541735bd0aa 100644
> --- a/drivers/pci/hotplug/pciehp_hpc.c
> +++ b/drivers/pci/hotplug/pciehp_hpc.c
> @@ -14,6 +14,7 @@
>
>  #define dev_fmt(fmt) "pciehp: " fmt
>
> +#include <linux/dmi.h>
>  #include <linux/kernel.h>
>  #include <linux/types.h>
>  #include <linux/jiffies.h>
> @@ -26,6 +27,24 @@
>  #include "../pci.h"
>  #include "pciehp.h"
>
> +static const struct dmi_system_id inband_presence_disabled_dmi_table[] = {
> +       /*
> +        * Match all Dell systems, as some Dell systems have inband
> +        * presence disabled on NVMe slots (but don't support the bit to
> +        * report it). Setting inband presence disabled should have no
> +        * negative effect, except on broken hotplug slots that never
> +        * assert presence detect--and those will still work, they will
> +        * just have a bit of extra delay before being probed.
> +        */
> +       {
> +               .ident = "Dell System",
> +               .matches = {
> +                       DMI_MATCH(DMI_OEM_STRING, "Dell System"),
> +               },
> +       },
> +       {}
> +};
> +
>  static inline struct pci_dev *ctrl_dev(struct controller *ctrl)
>  {
>         return ctrl->pcie->port;
> @@ -895,6 +914,9 @@ struct controller *pcie_init(struct pcie_device *dev)
>                 ctrl->inband_presence_disabled = 1;
>         }
>
> +       if (dmi_first_match(inband_presence_disabled_dmi_table))
> +               ctrl->inband_presence_disabled = 1;
> +
>         /*
>          * If empty slot's power status is on, turn power off.  The IRQ isn't
>          * requested yet, so avoid triggering a notification with this command.
> --
> 2.18.1
>


-- 
With Best Regards,
Andy Shevchenko

  reply	other threads:[~2019-10-25 19:18 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-25 19:00 [PATCH v4 0/3] PCI: pciehp: Do not turn off slot if presence comes up after link Stuart Hayes
2019-10-25 19:00 ` [PATCH v4 1/3] PCI: pciehp: Add support for disabling in-band presence Stuart Hayes
2019-10-25 19:15   ` Andy Shevchenko
2019-11-27  1:36   ` Bjorn Helgaas
2019-11-27  2:19     ` Stuart Hayes
2019-12-31 22:06       ` Stuart Hayes
2020-01-29 13:15         ` Libor Pechacek
2019-10-25 19:00 ` [PATCH v4 2/3] PCI: pciehp: Wait for PDS if in-band presence is disabled Stuart Hayes
2019-10-25 19:16   ` Andy Shevchenko
2019-10-25 19:00 ` [PATCH v4 3/3] PCI: pciehp: Add dmi table for in-band presence disabled Stuart Hayes
2019-10-25 19:18   ` Andy Shevchenko [this message]
2020-02-21  5:21   ` Bjorn Helgaas
2020-02-21 17:46     ` Stuart Hayes
2019-10-28 11:31 ` [PATCH v4 0/3] PCI: pciehp: Do not turn off slot if presence comes up after link Mika Westerberg
2020-02-08 20:22 ` Lukas Wunner
2020-02-11  0:08 ` Bjorn Helgaas
2020-02-11  4:49   ` Lukas Wunner
2020-02-11 14:14     ` Bjorn Helgaas
2020-02-11 14:32       ` Lukas Wunner
2020-02-11 19:31         ` Bjorn Helgaas
2020-02-18 17:32         ` Bjorn Helgaas

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='CAHp75Vdx9xVzgjPAxdMoSB=ZZx+Kc6yE4Ko3fn-gC6_+JtmT4g@mail.gmail.com' \
    --to=andy.shevchenko@gmail.com \
    --cc=austin_bolen@dell.com \
    --cc=bhelgaas@google.com \
    --cc=gustavo@embeddedor.com \
    --cc=keith.busch@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=mika.westerberg@linux.intel.com \
    --cc=mr.nuke.me@gmail.com \
    --cc=okaya@kernel.org \
    --cc=poza@codeaurora.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=stuart.w.hayes@gmail.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.