search for: pci_pm_ctrl

Displaying 20 results from an estimated 20 matches for "pci_pm_ctrl".

2019 Oct 16
3
[PATCH v3] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...ut a device in D3cold on an ACPI > system, we do something like this: > > pci_set_power_state(D3cold) > if (PCI_DEV_FLAGS_NO_D3) > return 0 <-- nothing at all if quirked > pci_raw_set_power_state > pci_write_config_word(PCI_PM_CTRL, D3hot) <-- set to D3hot > __pci_complete_power_transition(D3cold) > pci_platform_power_transition(D3cold) > platform_pci_set_power_state(D3cold) > acpi_pci_set_power_state(D3cold) > acpi_device_set_power(ACPI_STATE_D3_COLD) >...
2019 Oct 16
2
[PATCH v3] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...pport)) > > return -EIO; > > > > + /* check if the bus controller causes issues */ > > + if (state != PCI_D0 && parent_broken_child_pm(dev)) > > + return 0; > > + > > pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); > > > > /* > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > > index 44c4ae1abd00..c2f20b745dd4 100644 > > --- a/drivers/pci/quirks.c > > +++ b/drivers/pci/quirks.c > > @@ -5268,3 +5268,55 @@ static void quirk_reset_lenovo_t...
2019 Oct 21
0
[PATCH v3] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...g like this: > > > > > > pci_set_power_state(D3cold) > > > if (PCI_DEV_FLAGS_NO_D3) > > > return 0 <-- nothing at all if quirked > > > pci_raw_set_power_state > > > pci_write_config_word(PCI_PM_CTRL, D3hot) <-- set to D3hot > > > __pci_complete_power_transition(D3cold) > > > pci_platform_power_transition(D3cold) > > > platform_pci_set_power_state(D3cold) > > > acpi_pci_set_power_state(D3cold) > > > acpi_de...
2019 Oct 16
0
[PATCH v3] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...I understand correctly, when we put a device in D3cold on an ACPI system, we do something like this: pci_set_power_state(D3cold) if (PCI_DEV_FLAGS_NO_D3) return 0 <-- nothing at all if quirked pci_raw_set_power_state pci_write_config_word(PCI_PM_CTRL, D3hot) <-- set to D3hot __pci_complete_power_transition(D3cold) pci_platform_power_transition(D3cold) platform_pci_set_power_state(D3cold) acpi_pci_set_power_state(D3cold) acpi_device_set_power(ACPI_STATE_D3_COLD) ... acpi_e...
2019 Oct 21
1
[PATCH v3] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...t; > system, we do something like this: > > > > pci_set_power_state(D3cold) > > if (PCI_DEV_FLAGS_NO_D3) > > return 0 <-- nothing at all if quirked > > pci_raw_set_power_state > > pci_write_config_word(PCI_PM_CTRL, D3hot) <-- set to D3hot > > __pci_complete_power_transition(D3cold) > > pci_platform_power_transition(D3cold) > > platform_pci_set_power_state(D3cold) > > acpi_pci_set_power_state(D3cold) > > acpi_device_set_power(ACPI_STATE...
2019 Oct 17
4
[PATCH v4] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...; !dev->d2_support)) return -EIO; + /* + * check if we have a bad combination of bridge controller and nvidia + * GPU, see quirk_broken_nv_runpm for more info + */ + if (state != PCI_D0 && dev->broken_nv_runpm) + return 0; + pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); /* diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 44c4ae1abd00..0006c9e37b6f 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -5268,3 +5268,56 @@ static void quirk_reset_lenovo_thinkpad_p50_nvgpu(struct pci_dev *pdev) DECLARE_PCI_FIXUP_CLASS_FINAL(P...
2019 Oct 16
4
[PATCH v3] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...power_state(struct pci_dev *dev, pci_power_t state) || (state == PCI_D2 && !dev->d2_support)) return -EIO; + /* check if the bus controller causes issues */ + if (state != PCI_D0 && parent_broken_child_pm(dev)) + return 0; + pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); /* diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 44c4ae1abd00..c2f20b745dd4 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -5268,3 +5268,55 @@ static void quirk_reset_lenovo_thinkpad_p50_nvgpu(struct pci_dev *pdev) DECLARE_PCI_FIXUP_CLASS_FINAL(P...
2020 Mar 03
2
[PATCH v6] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...ent can be disabled for certain devices as they don't + * come back up later on runtime_resume. We rely on platform means to + * cut power consumption instead (e.g. ACPI). + */ + if (state != PCI_D0 && dev->parent_d3cold) + return 0; + pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); if (pmcsr == (u16) ~0) { pci_err(dev, "can't change power state from %s to %s (config space inaccessible)\n", diff --git a/include/linux/pci.h b/include/linux/pci.h index 930fab293073..3e5938b91966 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -340,6...
2019 Nov 22
1
[PATCH v5] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...mp;& !dev->d2_support)) return -EIO; + /* + * Check if we have a bad combination of bridge controller and nvidia + * GPU, see quirk_broken_nv_runpm for more info + */ + if (state != PCI_D0 && dev->broken_nv_runpm) + return 0; + pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); /* diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 44c4ae1abd00..24e3f247d291 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -5268,3 +5268,54 @@ static void quirk_reset_lenovo_thinkpad_p50_nvgpu(struct pci_dev *pdev) DECLARE_PCI_FIXUP_CLASS_FINAL(P...
2019 Oct 16
0
[PATCH v3] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...er_t state) > || (state == PCI_D2 && !dev->d2_support)) > return -EIO; > > + /* check if the bus controller causes issues */ > + if (state != PCI_D0 && parent_broken_child_pm(dev)) > + return 0; > + > pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); > > /* > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index 44c4ae1abd00..c2f20b745dd4 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -5268,3 +5268,55 @@ static void quirk_reset_lenovo_thinkpad_p50_nvgpu(struct pci_dev *pde...
2019 Sep 30
0
[RFC PATCH] pci: prevent putting pcie devices into lower device states on certain intel bridges
...power_state(struct pci_dev *dev, pci_power_t state) || (state == PCI_D2 && !dev->d2_support)) return -EIO; + /* check if the bus controller causes issues */ + if (state != PCI_D0 && parent_broken_child_pm(dev)) + return 0; + pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); /* diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 0f16acc323c6..2be0deec2c3d 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -5198,3 +5198,53 @@ static void quirk_reset_lenovo_thinkpad_p50_nvgpu(struct pci_dev *pdev) DECLARE_PCI_FIXUP_CLASS_FINAL(P...
2020 Mar 04
0
[PATCH v6] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...ices as they don't > + * come back up later on runtime_resume. We rely on platform means to > + * cut power consumption instead (e.g. ACPI). > + */ > + if (state != PCI_D0 && dev->parent_d3cold) > + return 0; > + > pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); > if (pmcsr == (u16) ~0) { > pci_err(dev, "can't change power state from %s to %s (config space inaccessible)\n", > diff --git a/include/linux/pci.h b/include/linux/pci.h > index 930fab293073..3e5938b91966 100644 > --- a/include/linux/pci.h > +++ b...
2019 Nov 19
0
[PATCH v4] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...er and nvidia > + * GPU, see quirk_broken_nv_runpm for more info Whitespace damage. Capitalized incorrectly (see other comments nearby). > + */ > + if (state != PCI_D0 && dev->broken_nv_runpm) > + return 0; > + > pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); > > /* > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index 44c4ae1abd00..0006c9e37b6f 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -5268,3 +5268,56 @@ static void quirk_reset_lenovo_thinkpad_p50_nvgpu(struct pci_dev *pde...
2020 Mar 05
1
[PATCH v6] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...ntime_resume. We rely on platform means to > > + * cut power consumption instead (e.g. ACPI). > > + */ > > + if (state != PCI_D0 && dev->parent_d3cold) > > + return 0; > > + > > pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); > > if (pmcsr == (u16) ~0) { > > pci_err(dev, "can't change power state from %s to %s (config space inaccessible)\n", > > diff --git a/include/linux/pci.h b/include/linux/pci.h > > index 930fab293073..3e5938b91966 100644 > &...
2019 Nov 19
3
[PATCH v4] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...more info > > Whitespace damage. Capitalized incorrectly (see other comments > nearby). > > > + */ > > + if (state != PCI_D0 && dev->broken_nv_runpm) > > + return 0; > > + > > pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); > > > > /* > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > > index 44c4ae1abd00..0006c9e37b6f 100644 > > --- a/drivers/pci/quirks.c > > +++ b/drivers/pci/quirks.c > > @@ -5268,3 +5268,56 @@ static void quirk_reset_lenovo_t...
2020 Mar 10
2
[PATCH v7] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...ent can be disabled for certain devices as they don't + * come back up later on runtime_resume. We rely on platform means to + * cut power consumption instead (e.g. ACPI). + */ + if (state != PCI_D0 && dev->parent_d3cold) + return 0; + pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); if (pmcsr == (u16) ~0) { pci_err(dev, "can't change power state from %s to %s (config space inaccessible)\n", diff --git a/include/linux/pci.h b/include/linux/pci.h index 3840a541a9de..3c01f043519a 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -340,6...
2019 Nov 20
1
[PATCH v4] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
...ge. Capitalized incorrectly (see other comments > > nearby). > > > > > + */ > > > + if (state != PCI_D0 && dev->broken_nv_runpm) > > > + return 0; > > > + > > > pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); > > > > > > /* > > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > > > index 44c4ae1abd00..0006c9e37b6f 100644 > > > --- a/drivers/pci/quirks.c > > > +++ b/drivers/pci/quirks.c > > > @@ -5268,3 +5268,56...
2019 Jun 19
2
[PATCH v2 4/4] pci: save the boot pcie link speed and restore it on fini
...te). And there is something which made me very curious: If I put the card manually into any other state besides D0 via the 0x64 pci config register, the card just dies and pci core seems to expect this to not happen. pci_raw_set_power_state has this "pci_write_config_word(dev, dev->pm_cap + PCI_PM_CTRL, pmcsr);" call, and reads the value back later, but if the card is already gone, maybe we can't do this for nvidia GPUs? No idea why I didn't played around more with that register, but if the card already dies there then this kind of shows there is indeed an issue on a PCI level, no?...
2019 Jun 19
0
[PATCH v2 4/4] pci: save the boot pcie link speed and restore it on fini
...ng > which made me very curious: > If I put the card manually into any other state besides D0 via the > 0x64 pci config register, the card just dies and pci core seems to > expect this to not happen. pci_raw_set_power_state has this > "pci_write_config_word(dev, dev->pm_cap + PCI_PM_CTRL, pmcsr);" call, > and reads the value back later, but if the card is already gone, maybe > we can't do this for nvidia GPUs? > > No idea why I didn't played around more with that register, but if the > card already dies there then this kind of shows there is indeed an &g...
2019 Jun 03
2
[PATCH v2 4/4] pci: save the boot pcie link speed and restore it on fini
@bjorn: any further ideas? Otherwise I'd like to just go ahead and fix this issue inside Nouveau and leave it there until we have a better understanding or non Nouveau cases of this issue. On Tue, May 21, 2019 at 7:48 PM Karol Herbst <kherbst at redhat.com> wrote: > > doing the same on the bridge controller with my workarounds applied: > > please note some differences: >