Pali Rohár
1bba735ddf
powerpc/fsl-pci: Fix Class Code of PCIe Root Port
...
commit 0c551abfa004ce154d487d91777bf221c808a64f upstream.
By default old pre-3.0 Freescale PCIe controllers reports invalid PCI Class
Code 0x0b20 for PCIe Root Port. It can be seen by lspci -b output on P2020
board which has this pre-3.0 controller:
$ lspci -bvnn
00:00.0 Power PC [0b20]: Freescale Semiconductor Inc P2020E [1957:0070] (rev 21)
!!! Invalid class 0b20 for header type 01
Capabilities: [4c] Express Root Port (Slot-), MSI 00
Fix this issue by programming correct PCI Class Code 0x0604 for PCIe Root
Port to the Freescale specific PCIe register 0x474.
With this change lspci -b output is:
$ lspci -bvnn
00:00.0 PCI bridge [0604]: Freescale Semiconductor Inc P2020E [1957:0070] (rev 21) (prog-if 00 [Normal decode])
Capabilities: [4c] Express Root Port (Slot-), MSI 00
Without any "Invalid class" error. So class code was properly reflected
into standard (read-only) PCI register 0x08.
Same fix is already implemented in U-Boot pcie_fsl.c driver in commit:
d18d06ac35
Fix activated by U-Boot stay active also after booting Linux kernel.
But boards which use older U-Boot version without that fix are affected and
still require this fix.
So implement this class code fix also in kernel fsl_pci.c driver.
Cc: stable@vger.kernel.org
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220706101043.4867-1-pali@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-08-25 11:09:25 +02:00
..
ge
powerpc: Remove all usages of NO_IRQ
2016-09-20 20:57:12 +10:00
xics
powerpc/xics: fix refcount leak in icp_opal_init()
2022-06-14 16:52:30 +02:00
6xx-suspend.S
axonram.c
axonram: Fix gendisk handling
2017-12-14 09:28:21 +01:00
cpm1.c
powerpc/8xx: export 'cpm_setbrg' for modules
2022-06-14 16:52:33 +02:00
cpm2.c
soc/fsl/qe: fix Oops on CPM1 (and likely CPM2)
2016-09-25 02:38:52 -05:00
cpm2_pic.c
powerpc/cpm2: Use irq_set_handler_locked()
2015-09-16 15:43:10 +02:00
cpm2_pic.h
cpm_common.c
soc/fsl/qe: fix Oops on CPM1 (and likely CPM2)
2016-09-25 02:38:52 -05:00
dart.h
dart_iommu.c
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
dcr-low.S
powerpc/dcr: Use cmplwi instead of 3-argument cmpli
2021-11-26 11:48:41 +01:00
dcr.c
powerpc: Use bool function return values of true/false not 1/0
2015-03-31 14:19:47 +11:00
ehv_pic.c
powerpc: Remove all usages of NO_IRQ
2016-09-20 20:57:12 +10:00
fsl_85xx_cache_ctlr.h
fsl_85xx_cache_sram.c
fsl_85xx_l2ctlr.c
powerpc/85xx: Don't report SRAM to L2 cache fallback as error
2016-07-08 19:55:34 -05:00
fsl_gtm.c
powerpc/sysdev: fix incorrect use to determine if list is empty
2022-04-20 09:06:35 +02:00
fsl_lbc.c
powerpc/fsl-lbc: Modify suspend/resume entry sequence
2016-03-09 10:44:17 -06:00
fsl_mpic_err.c
powerpc: Remove all usages of NO_IRQ
2016-09-20 20:57:12 +10:00
fsl_mpic_timer_wakeup.c
fsl_msi.c
powerpc: Remove all usages of NO_IRQ
2016-09-20 20:57:12 +10:00
fsl_msi.h
powerpc/85xx: workaround for chips with MSI hardware errata
2015-03-23 19:51:18 -05:00
fsl_pci.c
powerpc/fsl-pci: Fix Class Code of PCIe Root Port
2022-08-25 11:09:25 +02:00
fsl_pci.h
powerpc/fsl-pci: Fix Class Code of PCIe Root Port
2022-08-25 11:09:25 +02:00
fsl_pmc.c
powerpc: sysdev: drop owner assignment from platform_drivers
2014-10-20 16:20:13 +02:00
fsl_rcpm.c
powerpc/rcpm: Fix build break when SMP=n
2016-03-16 15:22:32 +11:00
fsl_rio.c
powerpc: migrate exception table users off module.h and onto extable.h
2016-08-22 11:09:33 +10:00
fsl_rio.h
rapidio: add global inbound port write interfaces
2016-03-22 15:36:02 -07:00
fsl_rmu.c
rapidio: add global inbound port write interfaces
2016-03-22 15:36:02 -07:00
fsl_soc.c
powerpc: Convert fsl_rstcr_restart to a reset handler
2016-09-25 02:38:50 -05:00
fsl_soc.h
powerpc: Convert fsl_rstcr_restart to a reset handler
2016-09-25 02:38:50 -05:00
grackle.c
i8259.c
powerpc: Remove all usages of NO_IRQ
2016-09-20 20:57:12 +10:00
indirect_pci.c
powerpc/fsl_pci: Fix pci stack build bug with FRAME_WARN
2015-01-29 19:56:15 -06:00
ipic.c
powerpc/ipic: Fix status get and status clear
2017-12-20 10:07:28 +01:00
ipic.h
Kconfig
powerpc/rcpm: add RCPM driver
2016-03-04 23:50:27 -06:00
Makefile
powerpc/rcpm: add RCPM driver
2016-03-04 23:50:27 -06:00
micropatch.c
powerpc/8xx: Remove empty asm/mpc8xx.h
2014-06-25 18:49:40 -05:00
mmio_nvram.c
powerpc/sparse: Make a bunch of things static
2016-09-13 17:35:47 +10:00
mpc5xxx_clocks.c
powerpc/mpc5xxx: Use of_get_next_parent to simplify code
2015-10-15 20:32:01 +11:00
mpc8xx_pic.c
powerpc/8xx: fix mpc8xx_get_irq() return on no irq
2018-04-13 19:48:18 +02:00
mpc8xx_pic.h
mpic.c
powerpc/mpic: Check if cpu_possible() in mpic_physmask()
2018-05-30 07:50:43 +02:00
mpic.h
powerpc/pasemi: Only the build the pasemi MSI code for PASEMI=y
2015-05-11 19:55:25 +10:00
mpic_msgr.c
powerpc: sysdev: add missing iounmap() on error in mpic_msgr_probe()
2021-01-09 13:35:50 +01:00
mpic_msi.c
irqdomain: Use irq_domain_get_of_node() instead of direct field access
2015-10-13 19:01:23 +02:00
mpic_timer.c
powerpc/mpic_timer: fix convert ticks to time subtraction overflow
2014-01-09 17:52:14 -06:00
mpic_u3msi.c
powerpc: Remove all usages of NO_IRQ
2016-09-20 20:57:12 +10:00
msi_bitmap.c
treewide: replace obsolete _refok by __ref
2016-08-02 17:31:41 -04:00
mv64x60.h
mv64x60_dev.c
powerpc: make of_device_ids const
2014-09-25 23:14:46 +10:00
mv64x60_pci.c
mv64x60_pic.c
powerpc: Remove all usages of NO_IRQ
2016-09-20 20:57:12 +10:00
mv64x60_udbg.c
dt/bindings: Remove device_type "serial" from marvell,mv64360-mpsc
2014-01-16 16:31:31 +00:00
of_rtc.c
powerpc: add explicit OF includes
2013-10-09 20:04:11 -05:00
pmi.c
powerpc: Remove all usages of NO_IRQ
2016-09-20 20:57:12 +10:00
ppc4xx_cpm.c
powerpc/4xx/cpm: Fix return value of __setup() handler
2022-06-14 16:52:33 +02:00
ppc4xx_gpio.c
powerpc: ppc4xx: drop unused variable
2016-03-31 09:14:22 +02:00
ppc4xx_hsta_msi.c
powerpc: Remove all usages of NO_IRQ
2016-09-20 20:57:12 +10:00
ppc4xx_msi.c
powerpc: Remove all usages of NO_IRQ
2016-09-20 20:57:12 +10:00
ppc4xx_ocm.c
powerpc/44x: Fix ocm_block allocation
2013-12-10 11:25:04 +11:00
ppc4xx_pci.c
powerpc: Remove superfluous bootmem includes
2014-11-10 09:59:26 +11:00
ppc4xx_pci.h
ppc4xx_soc.c
powerpc: Remove all usages of NO_IRQ
2016-09-20 20:57:12 +10:00
rtc_cmos_setup.c
scom.c
powerpc/scom: Improve debugfs interface
2013-11-06 14:13:50 +11:00
simple_gpio.c
powerpc/sysdev/simple_gpio: Fix oops in gpio save_regs function
2017-06-14 15:06:03 +02:00
simple_gpio.h
tsi108_dev.c
tsi108_pci.c
powerpc: Remove all usages of NO_IRQ
2016-09-20 20:57:12 +10:00
udbg_memcons.c
powerpc: Delete non-required instances of include <linux/init.h>
2014-01-15 13:46:44 +11:00
uic.c
powerpc/4xx/uic: clear pending interrupt after irq type/pol change
2019-08-04 09:33:39 +02:00
xilinx_intc.c
genirq: Remove irq argument from irq flow handlers
2015-09-16 15:47:51 +02:00
xilinx_pci.c
powerpc: make of_device_ids const
2014-09-25 23:14:46 +10:00