mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-07 14:32:23 +00:00
Merge branch 'pci/misc'
- Convert PCIe capability PCIBIOS errors to errno (Bolarinwa Olayemi Saheed) - Align PCIe capability and PCI accessor return values (Bolarinwa Olayemi Saheed) - Replace http:// links with https:// (Alexander A. Klimov) - Replace lkml.org, spinics, gmane with lore.kernel.org (Bjorn Helgaas) - Update panic message to mention kzalloc(), not kmalloc() (Liao Pingfang) - Move PCI_VENDOR_ID_REDHAT definition to pci_ids.h (Huacai Chen) - Remove unused pci_lost_interrupt() (Heiner Kallweit) * pci/misc: PCI: Remove unused pci_lost_interrupt() PCI: Move PCI_VENDOR_ID_REDHAT definition to pci_ids.h PCI: Fix error in panic message PCI: Replace lkml.org, spinics, gmane with lore.kernel.org PCI: Replace http:// links with https:// PCI: Align PCIe capability and PCI accessor return values PCI: Convert PCIe capability PCIBIOS errors to errno
This commit is contained in:
commit
0caa17f5f2
@ -17,7 +17,7 @@ PCI device drivers.
|
||||
A more complete resource is the third edition of "Linux Device Drivers"
|
||||
by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman.
|
||||
LDD3 is available for free (under Creative Commons License) from:
|
||||
http://lwn.net/Kernel/LDD3/.
|
||||
https://lwn.net/Kernel/LDD3/.
|
||||
|
||||
However, keep in mind that all documents are subject to "bit rot".
|
||||
Refer to the source code if things are not working as described here.
|
||||
@ -214,7 +214,7 @@ the PCI device by calling pci_enable_device(). This will:
|
||||
problem and unlikely to get fixed soon.
|
||||
|
||||
This has been discussed before but not changed as of 2.6.19:
|
||||
http://lkml.org/lkml/2006/3/2/194
|
||||
https://lore.kernel.org/r/20060302180025.GC28895@flint.arm.linux.org.uk/
|
||||
|
||||
|
||||
pci_set_master() will enable DMA by setting the bus master bit
|
||||
@ -514,9 +514,8 @@ your driver if they're helpful, or just use plain hex constants.
|
||||
The device IDs are arbitrary hex numbers (vendor controlled) and normally used
|
||||
only in a single location, the pci_device_id table.
|
||||
|
||||
Please DO submit new vendor/device IDs to http://pci-ids.ucw.cz/.
|
||||
There are mirrors of the pci.ids file at http://pciids.sourceforge.net/
|
||||
and https://github.com/pciutils/pciids.
|
||||
Please DO submit new vendor/device IDs to https://pci-ids.ucw.cz/.
|
||||
There's a mirror of the pci.ids file at https://github.com/pciutils/pciids.
|
||||
|
||||
|
||||
Obsolete functions
|
||||
|
@ -1,12 +1,12 @@
|
||||
PCI bus bridges have standardized Device Tree bindings:
|
||||
|
||||
PCI Bus Binding to: IEEE Std 1275-1994
|
||||
http://www.devicetree.org/open-firmware/bindings/pci/pci2_1.pdf
|
||||
https://www.devicetree.org/open-firmware/bindings/pci/pci2_1.pdf
|
||||
|
||||
And for the interrupt mapping part:
|
||||
|
||||
Open Firmware Recommended Practice: Interrupt Mapping
|
||||
http://www.devicetree.org/open-firmware/practice/imap/imap0_9d.pdf
|
||||
https://www.devicetree.org/open-firmware/practice/imap/imap0_9d.pdf
|
||||
|
||||
Additionally to the properties specified in the above standards a host bridge
|
||||
driver implementation may support the following properties:
|
||||
|
@ -557,12 +557,12 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x27B9, twinhead_reserve_killing_z
|
||||
* Device [8086:2fc0]
|
||||
* Erratum HSE43
|
||||
* CONFIG_TDP_NOMINAL CSR Implemented at Incorrect Offset
|
||||
* http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v3-spec-update.html
|
||||
* https://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v3-spec-update.html
|
||||
*
|
||||
* Devices [8086:6f60,6fa0,6fc0]
|
||||
* Erratum BDF2
|
||||
* PCI BARs in the Home Agent Will Return Non-Zero Values During Enumeration
|
||||
* http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v4-spec-update.html
|
||||
* https://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v4-spec-update.html
|
||||
*/
|
||||
static void pci_invalid_bar(struct pci_dev *dev)
|
||||
{
|
||||
|
@ -1195,13 +1195,13 @@ static int ioat3_dma_probe(struct ioatdma_device *ioat_dma, int dca)
|
||||
/* disable relaxed ordering */
|
||||
err = pcie_capability_read_word(pdev, IOAT_DEVCTRL_OFFSET, &val16);
|
||||
if (err)
|
||||
return err;
|
||||
return pcibios_err_to_errno(err);
|
||||
|
||||
/* clear relaxed ordering enable */
|
||||
val16 &= ~IOAT_DEVCTRL_ROE;
|
||||
err = pcie_capability_write_word(pdev, IOAT_DEVCTRL_OFFSET, val16);
|
||||
if (err)
|
||||
return err;
|
||||
return pcibios_err_to_errno(err);
|
||||
|
||||
if (ioat_dma->cap & IOAT_CAP_DPS)
|
||||
writeb(ioat_pending_level + 1,
|
||||
|
@ -131,8 +131,6 @@ enum SpiceCursorType {
|
||||
|
||||
#pragma pack(push, 1)
|
||||
|
||||
#define REDHAT_PCI_VENDOR_ID 0x1b36
|
||||
|
||||
/* 0x100-0x11f reserved for spice, 0x1ff used for unstable work */
|
||||
#define QXL_DEVICE_ID_STABLE 0x0100
|
||||
|
||||
|
@ -25,7 +25,6 @@ enum {
|
||||
|
||||
#define ROCKER_FP_PORTS_MAX 62
|
||||
|
||||
#define PCI_VENDOR_ID_REDHAT 0x1b36
|
||||
#define PCI_DEVICE_ID_REDHAT_ROCKER 0x0006
|
||||
|
||||
#define ROCKER_PCI_BAR0_SIZE 0x2000
|
||||
|
@ -405,7 +405,7 @@ int pcie_capability_read_word(struct pci_dev *dev, int pos, u16 *val)
|
||||
|
||||
*val = 0;
|
||||
if (pos & 1)
|
||||
return -EINVAL;
|
||||
return PCIBIOS_BAD_REGISTER_NUMBER;
|
||||
|
||||
if (pcie_capability_reg_implemented(dev, pos)) {
|
||||
ret = pci_read_config_word(dev, pci_pcie_cap(dev) + pos, val);
|
||||
@ -440,7 +440,7 @@ int pcie_capability_read_dword(struct pci_dev *dev, int pos, u32 *val)
|
||||
|
||||
*val = 0;
|
||||
if (pos & 3)
|
||||
return -EINVAL;
|
||||
return PCIBIOS_BAD_REGISTER_NUMBER;
|
||||
|
||||
if (pcie_capability_reg_implemented(dev, pos)) {
|
||||
ret = pci_read_config_dword(dev, pci_pcie_cap(dev) + pos, val);
|
||||
@ -465,7 +465,7 @@ EXPORT_SYMBOL(pcie_capability_read_dword);
|
||||
int pcie_capability_write_word(struct pci_dev *dev, int pos, u16 val)
|
||||
{
|
||||
if (pos & 1)
|
||||
return -EINVAL;
|
||||
return PCIBIOS_BAD_REGISTER_NUMBER;
|
||||
|
||||
if (!pcie_capability_reg_implemented(dev, pos))
|
||||
return 0;
|
||||
@ -477,7 +477,7 @@ EXPORT_SYMBOL(pcie_capability_write_word);
|
||||
int pcie_capability_write_dword(struct pci_dev *dev, int pos, u32 val)
|
||||
{
|
||||
if (pos & 3)
|
||||
return -EINVAL;
|
||||
return PCIBIOS_BAD_REGISTER_NUMBER;
|
||||
|
||||
if (!pcie_capability_reg_implemented(dev, pos))
|
||||
return 0;
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* pcie-dra7xx - PCIe controller driver for TI DRA7xx SoCs
|
||||
*
|
||||
* Copyright (C) 2013-2014 Texas Instruments Incorporated - http://www.ti.com
|
||||
* Copyright (C) 2013-2014 Texas Instruments Incorporated - https://www.ti.com
|
||||
*
|
||||
* Authors: Kishon Vijay Abraham I <kishon@ti.com>
|
||||
*/
|
||||
|
@ -3,7 +3,7 @@
|
||||
* PCIe host controller driver for Samsung Exynos SoCs
|
||||
*
|
||||
* Copyright (C) 2013 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com
|
||||
* https://www.samsung.com
|
||||
*
|
||||
* Author: Jingoo Han <jg1.han@samsung.com>
|
||||
*/
|
||||
|
@ -3,7 +3,7 @@
|
||||
* PCIe host controller driver for Freescale i.MX6 SoCs
|
||||
*
|
||||
* Copyright (C) 2013 Kosagi
|
||||
* http://www.kosagi.com
|
||||
* https://www.kosagi.com
|
||||
*
|
||||
* Author: Sean Cross <xobs@kosagi.com>
|
||||
*/
|
||||
|
@ -3,7 +3,7 @@
|
||||
* PCIe host controller driver for Texas Instruments Keystone SoCs
|
||||
*
|
||||
* Copyright (C) 2013-2014 Texas Instruments., Ltd.
|
||||
* http://www.ti.com
|
||||
* https://www.ti.com
|
||||
*
|
||||
* Author: Murali Karicheri <m-karicheri2@ti.com>
|
||||
* Implementation based on pci-exynos.c and pcie-designware.c
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Synopsys DesignWare PCIe host controller driver
|
||||
*
|
||||
* Copyright (C) 2013 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com
|
||||
* https://www.samsung.com
|
||||
*
|
||||
* Author: Jingoo Han <jg1.han@samsung.com>
|
||||
*/
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Synopsys DesignWare PCIe host controller driver
|
||||
*
|
||||
* Copyright (C) 2013 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com
|
||||
* https://www.samsung.com
|
||||
*
|
||||
* Author: Jingoo Han <jg1.han@samsung.com>
|
||||
*/
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Synopsys DesignWare PCIe host controller driver
|
||||
*
|
||||
* Copyright (C) 2013 Samsung Electronics Co., Ltd.
|
||||
* http://www.samsung.com
|
||||
* https://www.samsung.com
|
||||
*
|
||||
* Author: Jingoo Han <jg1.han@samsung.com>
|
||||
*/
|
||||
|
@ -3,7 +3,7 @@
|
||||
* PCIe host controller driver for Kirin Phone SoCs
|
||||
*
|
||||
* Copyright (C) 2017 HiSilicon Electronics Co., Ltd.
|
||||
* http://www.huawei.com
|
||||
* https://www.huawei.com
|
||||
*
|
||||
* Author: Xiaowei Song <songxiaowei@huawei.com>
|
||||
*/
|
||||
|
@ -6,61 +6,11 @@
|
||||
* Copyright (C) 2017 Christoph Hellwig.
|
||||
*/
|
||||
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/pci.h>
|
||||
|
||||
static void pci_note_irq_problem(struct pci_dev *pdev, const char *reason)
|
||||
{
|
||||
struct pci_dev *parent = to_pci_dev(pdev->dev.parent);
|
||||
|
||||
pci_err(pdev, "Potentially misrouted IRQ (Bridge %s %04x:%04x)\n",
|
||||
dev_name(&parent->dev), parent->vendor, parent->device);
|
||||
pci_err(pdev, "%s\n", reason);
|
||||
pci_err(pdev, "Please report to linux-kernel@vger.kernel.org\n");
|
||||
WARN_ON(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* pci_lost_interrupt - reports a lost PCI interrupt
|
||||
* @pdev: device whose interrupt is lost
|
||||
*
|
||||
* The primary function of this routine is to report a lost interrupt
|
||||
* in a standard way which users can recognise (instead of blaming the
|
||||
* driver).
|
||||
*
|
||||
* Returns:
|
||||
* a suggestion for fixing it (although the driver is not required to
|
||||
* act on this).
|
||||
*/
|
||||
enum pci_lost_interrupt_reason pci_lost_interrupt(struct pci_dev *pdev)
|
||||
{
|
||||
if (pdev->msi_enabled || pdev->msix_enabled) {
|
||||
enum pci_lost_interrupt_reason ret;
|
||||
|
||||
if (pdev->msix_enabled) {
|
||||
pci_note_irq_problem(pdev, "MSIX routing failure");
|
||||
ret = PCI_LOST_IRQ_DISABLE_MSIX;
|
||||
} else {
|
||||
pci_note_irq_problem(pdev, "MSI routing failure");
|
||||
ret = PCI_LOST_IRQ_DISABLE_MSI;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#ifdef CONFIG_ACPI
|
||||
if (!(acpi_disabled || acpi_noirq)) {
|
||||
pci_note_irq_problem(pdev, "Potential ACPI misrouting please reboot with acpi=noirq");
|
||||
/* currently no way to fix acpi on the fly */
|
||||
return PCI_LOST_IRQ_DISABLE_ACPI;
|
||||
}
|
||||
#endif
|
||||
pci_note_irq_problem(pdev, "unknown cause (not MSI or ACPI)");
|
||||
return PCI_LOST_IRQ_NO_INFORMATION;
|
||||
}
|
||||
EXPORT_SYMBOL(pci_lost_interrupt);
|
||||
|
||||
/**
|
||||
* pci_request_irq - allocate an interrupt line for a PCI device
|
||||
* @dev: PCI device to operate on
|
||||
|
@ -18,7 +18,7 @@
|
||||
* the instance number and string from the type 41 record and exports
|
||||
* it to sysfs.
|
||||
*
|
||||
* Please see http://linux.dell.com/files/biosdevname/ for more
|
||||
* Please see https://linux.dell.com/files/biosdevname/ for more
|
||||
* information.
|
||||
*/
|
||||
|
||||
|
@ -5708,6 +5708,7 @@ EXPORT_SYMBOL(pcie_get_readrq);
|
||||
int pcie_set_readrq(struct pci_dev *dev, int rq)
|
||||
{
|
||||
u16 v;
|
||||
int ret;
|
||||
|
||||
if (rq < 128 || rq > 4096 || !is_power_of_2(rq))
|
||||
return -EINVAL;
|
||||
@ -5726,8 +5727,10 @@ int pcie_set_readrq(struct pci_dev *dev, int rq)
|
||||
|
||||
v = (ffs(rq) - 8) << 12;
|
||||
|
||||
return pcie_capability_clear_and_set_word(dev, PCI_EXP_DEVCTL,
|
||||
ret = pcie_capability_clear_and_set_word(dev, PCI_EXP_DEVCTL,
|
||||
PCI_EXP_DEVCTL_READRQ, v);
|
||||
|
||||
return pcibios_err_to_errno(ret);
|
||||
}
|
||||
EXPORT_SYMBOL(pcie_set_readrq);
|
||||
|
||||
@ -5758,6 +5761,7 @@ EXPORT_SYMBOL(pcie_get_mps);
|
||||
int pcie_set_mps(struct pci_dev *dev, int mps)
|
||||
{
|
||||
u16 v;
|
||||
int ret;
|
||||
|
||||
if (mps < 128 || mps > 4096 || !is_power_of_2(mps))
|
||||
return -EINVAL;
|
||||
@ -5767,8 +5771,10 @@ int pcie_set_mps(struct pci_dev *dev, int mps)
|
||||
return -EINVAL;
|
||||
v <<= 5;
|
||||
|
||||
return pcie_capability_clear_and_set_word(dev, PCI_EXP_DEVCTL,
|
||||
ret = pcie_capability_clear_and_set_word(dev, PCI_EXP_DEVCTL,
|
||||
PCI_EXP_DEVCTL_PAYLOAD, v);
|
||||
|
||||
return pcibios_err_to_errno(ret);
|
||||
}
|
||||
EXPORT_SYMBOL(pcie_set_mps);
|
||||
|
||||
|
@ -43,7 +43,7 @@ config PCIEAER_INJECT
|
||||
error injection can fake almost all kinds of errors with the
|
||||
help of a user space helper tool aer-inject, which can be
|
||||
gotten from:
|
||||
http://www.kernel.org/pub/linux/utils/pci/aer-inject/
|
||||
https://www.kernel.org/pub/linux/utils/pci/aer-inject/
|
||||
|
||||
#
|
||||
# PCI Express ECRC
|
||||
|
@ -224,20 +224,25 @@ int pcie_aer_is_native(struct pci_dev *dev)
|
||||
|
||||
int pci_enable_pcie_error_reporting(struct pci_dev *dev)
|
||||
{
|
||||
int rc;
|
||||
|
||||
if (!pcie_aer_is_native(dev))
|
||||
return -EIO;
|
||||
|
||||
return pcie_capability_set_word(dev, PCI_EXP_DEVCTL, PCI_EXP_AER_FLAGS);
|
||||
rc = pcie_capability_set_word(dev, PCI_EXP_DEVCTL, PCI_EXP_AER_FLAGS);
|
||||
return pcibios_err_to_errno(rc);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(pci_enable_pcie_error_reporting);
|
||||
|
||||
int pci_disable_pcie_error_reporting(struct pci_dev *dev)
|
||||
{
|
||||
int rc;
|
||||
|
||||
if (!pcie_aer_is_native(dev))
|
||||
return -EIO;
|
||||
|
||||
return pcie_capability_clear_word(dev, PCI_EXP_DEVCTL,
|
||||
PCI_EXP_AER_FLAGS);
|
||||
rc = pcie_capability_clear_word(dev, PCI_EXP_DEVCTL, PCI_EXP_AER_FLAGS);
|
||||
return pcibios_err_to_errno(rc);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(pci_disable_pcie_error_reporting);
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
* trigger various real hardware errors. Software based error
|
||||
* injection can fake almost all kinds of errors with the help of a
|
||||
* user space helper tool aer-inject, which can be gotten from:
|
||||
* http://www.kernel.org/pub/linux/utils/pci/aer-inject/
|
||||
* https://www.kernel.org/pub/linux/utils/pci/aer-inject/
|
||||
*
|
||||
* Copyright 2009 Intel Corporation.
|
||||
* Huang Ying <ying.huang@intel.com>
|
||||
|
@ -3549,7 +3549,7 @@ static void quirk_no_bus_reset(struct pci_dev *dev)
|
||||
* The device will throw a Link Down error on AER-capable systems and
|
||||
* regardless of AER, config space of the device is never accessible again
|
||||
* and typically causes the system to hang or reset when access is attempted.
|
||||
* http://www.spinics.net/lists/linux-pci/msg34797.html
|
||||
* https://lore.kernel.org/r/20140923210318.498dacbd@dualc.maya.org/
|
||||
*/
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0030, quirk_no_bus_reset);
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0032, quirk_no_bus_reset);
|
||||
@ -4378,9 +4378,9 @@ static int pci_acs_ctrl_enabled(u16 acs_ctrl_req, u16 acs_ctrl_ena)
|
||||
* redirect (CR) since all transactions are redirected to the upstream
|
||||
* root complex.
|
||||
*
|
||||
* http://permalink.gmane.org/gmane.comp.emulators.kvm.devel/94086
|
||||
* http://permalink.gmane.org/gmane.comp.emulators.kvm.devel/94102
|
||||
* http://permalink.gmane.org/gmane.comp.emulators.kvm.devel/99402
|
||||
* https://lore.kernel.org/r/201207111426.q6BEQTbh002928@mail.maya.org/
|
||||
* https://lore.kernel.org/r/20120711165854.GM25282@amd.com/
|
||||
* https://lore.kernel.org/r/20121005130857.GX4009@amd.com/
|
||||
*
|
||||
* 1002:4385 SBx00 SMBus Controller
|
||||
* 1002:439c SB7x0/SB8x0/SB9x0 IDE Controller
|
||||
@ -4620,11 +4620,11 @@ static int pci_quirk_al_acs(struct pci_dev *dev, u16 acs_flags)
|
||||
*
|
||||
* 0x9d10-0x9d1b PCI Express Root port #{1-12}
|
||||
*
|
||||
* [1] http://www.intel.com/content/www/us/en/chipsets/100-series-chipset-datasheet-vol-2.html
|
||||
* [2] http://www.intel.com/content/www/us/en/chipsets/100-series-chipset-datasheet-vol-1.html
|
||||
* [3] http://www.intel.com/content/www/us/en/chipsets/100-series-chipset-spec-update.html
|
||||
* [4] http://www.intel.com/content/www/us/en/chipsets/200-series-chipset-pch-spec-update.html
|
||||
* [5] http://www.intel.com/content/www/us/en/chipsets/200-series-chipset-pch-datasheet-vol-1.html
|
||||
* [1] https://www.intel.com/content/www/us/en/chipsets/100-series-chipset-datasheet-vol-2.html
|
||||
* [2] https://www.intel.com/content/www/us/en/chipsets/100-series-chipset-datasheet-vol-1.html
|
||||
* [3] https://www.intel.com/content/www/us/en/chipsets/100-series-chipset-spec-update.html
|
||||
* [4] https://www.intel.com/content/www/us/en/chipsets/200-series-chipset-pch-spec-update.html
|
||||
* [5] https://www.intel.com/content/www/us/en/chipsets/200-series-chipset-pch-datasheet-vol-1.html
|
||||
* [6] https://www.intel.com/content/www/us/en/processors/core/7th-gen-core-family-mobile-u-y-processor-lines-i-o-spec-update.html
|
||||
* [7] https://www.intel.com/content/www/us/en/processors/core/7th-gen-core-family-mobile-u-y-processor-lines-i-o-datasheet-vol-1.html
|
||||
*/
|
||||
|
@ -152,7 +152,7 @@ static void pdev_sort_resources(struct pci_dev *dev, struct list_head *head)
|
||||
|
||||
tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
|
||||
if (!tmp)
|
||||
panic("pdev_sort_resources(): kmalloc() failed!\n");
|
||||
panic("%s: kzalloc() failed!\n", __func__);
|
||||
tmp->res = r;
|
||||
tmp->dev = dev;
|
||||
|
||||
|
@ -73,7 +73,8 @@ static void pci_std_update_resource(struct pci_dev *dev, int resno)
|
||||
/*
|
||||
* Apparently some Matrox devices have ROM BARs that read
|
||||
* as zero when disabled, so don't update ROM BARs unless
|
||||
* they're enabled. See https://lkml.org/lkml/2005/8/30/138.
|
||||
* they're enabled. See
|
||||
* https://lore.kernel.org/r/43147B3D.1030309@vc.cvut.cz/
|
||||
*/
|
||||
if (!(res->flags & IORESOURCE_ROM_ENABLE))
|
||||
return;
|
||||
|
@ -7423,8 +7423,12 @@ static int pqi_ctrl_init_resume(struct pqi_ctrl_info *ctrl_info)
|
||||
static inline int pqi_set_pcie_completion_timeout(struct pci_dev *pci_dev,
|
||||
u16 timeout)
|
||||
{
|
||||
return pcie_capability_clear_and_set_word(pci_dev, PCI_EXP_DEVCTL2,
|
||||
int rc;
|
||||
|
||||
rc = pcie_capability_clear_and_set_word(pci_dev, PCI_EXP_DEVCTL2,
|
||||
PCI_EXP_DEVCTL2_COMP_TIMEOUT, timeout);
|
||||
|
||||
return pcibios_err_to_errno(rc);
|
||||
}
|
||||
|
||||
static int pqi_pci_init(struct pqi_ctrl_info *ctrl_info)
|
||||
|
@ -1060,13 +1060,6 @@ void pci_sort_breadthfirst(void);
|
||||
|
||||
/* Generic PCI functions exported to card drivers */
|
||||
|
||||
enum pci_lost_interrupt_reason {
|
||||
PCI_LOST_IRQ_NO_INFORMATION = 0,
|
||||
PCI_LOST_IRQ_DISABLE_MSI,
|
||||
PCI_LOST_IRQ_DISABLE_MSIX,
|
||||
PCI_LOST_IRQ_DISABLE_ACPI,
|
||||
};
|
||||
enum pci_lost_interrupt_reason pci_lost_interrupt(struct pci_dev *dev);
|
||||
int pci_find_capability(struct pci_dev *dev, int cap);
|
||||
int pci_find_next_capability(struct pci_dev *dev, u8 pos, int cap);
|
||||
int pci_find_ext_capability(struct pci_dev *dev, int cap);
|
||||
|
@ -2585,6 +2585,8 @@
|
||||
|
||||
#define PCI_VENDOR_ID_ASMEDIA 0x1b21
|
||||
|
||||
#define PCI_VENDOR_ID_REDHAT 0x1b36
|
||||
|
||||
#define PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS 0x1c36
|
||||
|
||||
#define PCI_VENDOR_ID_CIRCUITCO 0x1cc8
|
||||
|
@ -9,7 +9,7 @@
|
||||
*/
|
||||
|
||||
/* pci ids */
|
||||
#define MDPY_PCI_VENDOR_ID 0x1b36 /* redhat */
|
||||
#define MDPY_PCI_VENDOR_ID PCI_VENDOR_ID_REDHAT
|
||||
#define MDPY_PCI_DEVICE_ID 0x000f
|
||||
#define MDPY_PCI_SUBVENDOR_ID PCI_SUBVENDOR_ID_REDHAT_QUMRANET
|
||||
#define MDPY_PCI_SUBDEVICE_ID PCI_SUBDEVICE_ID_QEMU
|
||||
|
Loading…
Reference in New Issue
Block a user