kernel_optimize_test/drivers
Thomas Petazzoni 23a5fba4d9 PCI: Introduce PCI bridge emulated config space common logic
Some PCI host controllers do not expose a configuration space for the
root port PCI bridge. Due to this, the Marvell Armada 370/38x/XP PCI
controller driver (pci-mvebu) emulates a root port PCI bridge
configuration space, and uses that to (among other things) dynamically
create the memory windows that correspond to the PCI MEM and I/O
regions.

Since we now need to add a very similar logic for the Marvell Armada
37xx PCI controller driver (pci-aardvark), instead of duplicating the
code, we create in this commit a common logic called pci-bridge-emul.

The idea of this logic is to emulate a root port PCI bridge
configuration space by providing configuration space read/write
operations, and faking behind the scenes the configuration space of a
PCI bridge. A PCI host controller driver simply has to call
pci_bridge_emul_conf_read() and pci_bridge_emul_conf_write() to
read/write the configuration space of the bridge.

By default, the PCI bridge configuration space is simply emulated by a
chunk of memory, but the PCI host controller can override the behavior
of the read and write operations on a per-register basis to do
additional actions if needed. We take care of complying with the
behavior of the PCI configuration space registers in terms of bits
that are read-write, read-only, reserved and write-1-to-clear.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Russell King <rmk+kernel@armlinux.org.uk>
2018-10-18 17:50:19 +01:00
..
accessibility
acpi Merge branch 'acpi-bus' 2018-09-07 10:05:20 +02:00
amba
android android: binder: fix the race mmap and alloc_new_buf_locked 2018-09-12 09:18:29 +02:00
ata SCSI fixes on 20180905 2018-09-05 09:17:20 -07:00
atm
auxdisplay
base firmware: Fix security issue with request_firmware_into_buf() 2018-09-12 09:31:00 +02:00
bcma
block for-linus-20180913 2018-09-13 19:16:11 -10:00
bluetooth
bus Merge branch 'perm-fix' into omap-for-v4.19/fixes-v2 2018-08-28 09:58:03 -07:00
cdrom cdrom: Fix info leak/OOB read in cdrom_ioctl_drive_status 2018-08-29 08:09:20 -06:00
char A few fixes that came around or after the merge window, except 2018-09-12 19:33:56 -10:00
clk clk: x86: Set default parent to 48Mhz 2018-08-30 14:47:41 -07:00
clocksource
connector
cpufreq ARM: SoC driver updates 2018-08-23 13:52:46 -07:00
cpuidle cpuidle: menu: Retain tick when shallow state is selected 2018-08-25 13:16:08 +02:00
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2018-08-29 13:38:39 -07:00
dax drivers/dax/device.c: convert variable to vm_fault_t type 2018-09-04 16:45:02 -07:00
dca
devfreq
dio
dma dmaengine: mic_x100_dma: use devm_kzalloc to fix an issue 2018-08-27 11:16:04 +05:30
dma-buf
edac
eisa
extcon
firewire
firmware firmware: arm_scmi: fix divide by zero when sustained_perf_level is zero 2018-09-06 09:59:40 -07:00
fmc
fpga fpga: dfl: fme: fix return value check in in pr_mgmt_init() 2018-09-12 09:31:00 +02:00
fsi
gnss
gpio gpio: Fix crash due to registration race 2018-08-31 11:30:45 +02:00
gpu Merge branch 'linux-4.19' of git://github.com/skeggsb/linux into drm-fixes 2018-09-14 09:38:42 +10:00
hid HID: i2c-hid: Don't reset device upon system resume 2018-09-06 16:30:53 +02:00
hsi
hv vmbus: don't return values for uninitalized channels 2018-09-12 09:31:00 +02:00
hwmon ARM: SoC fixes 2018-09-08 15:38:57 -07:00
hwspinlock
hwtracing drivers/hwtracing/intel_th/msu.c: change return type to vm_fault_t 2018-08-23 18:48:43 -07:00
i2c i2c: xiic: Make the start and the byte count write atomic 2018-09-06 20:49:09 +02:00
ide Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide 2018-08-22 07:40:33 -07:00
idle
iio First set of IIO fixes for the 4.19 cycle. 2018-09-09 09:33:29 +02:00
infiniband pci-v4.19-fixes-1 2018-09-12 19:39:56 -10:00
input ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
iommu ARM: SoC: late updates 2018-08-25 14:12:36 -07:00
ipack
irqchip irqchip/gic-v3-its: Cap lpi_id_bits to reduce memory footprint 2018-09-06 20:31:59 +02:00
isdn
leds
lightnvm
macintosh macintosh: therm_windtunnel: drop using attach_adapter 2018-08-24 14:42:42 +02:00
mailbox
mcb
md - DM verity fix for crash due to using vmalloc'd buffers with the 2018-09-13 19:12:55 -10:00
media Merge branch 'ida-4.19' of git://git.infradead.org/users/willy/linux-dax 2018-08-26 11:48:42 -07:00
memory memory: ti-aemif: fix a potential NULL-pointer dereference 2018-09-06 10:04:07 -07:00
memstick
message
mfd Merge branch 'i2c/for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-08-21 17:40:46 -07:00
misc misc: hmc6352: fix potential Spectre v1 2018-09-12 09:31:00 +02:00
mmc mmc: meson-mx-sdio: fix OF child-node lookup 2018-09-05 08:28:45 +02:00
mtd mtd: rawnand: denali: do not pass zero maxchips to nand_scan() 2018-08-27 20:41:46 +02:00
mux
net nfp: flower: reject tunnel encap with ipv6 outer headers for offloading 2018-09-12 13:18:30 -07:00
nfc
ntb
nubus
nvdimm libnvdimm-for-4.19_dax-memory-failure 2018-08-25 18:43:59 -07:00
nvme nvmet-rdma: fix possible bogus dereference under heavy load 2018-09-05 12:18:01 -07:00
nvmem
of Devicetree fixes for 4.19, part 2: 2018-09-14 13:03:17 -10:00
opp
oprofile
parisc
parport
pci PCI: Introduce PCI bridge emulated config space common logic 2018-10-18 17:50:19 +01:00
pcmcia
perf
phy
pinctrl pinctrl: madera: Fix possible NULL pointer with pdata config 2018-08-29 14:02:47 +02:00
platform platform-drivers-x86 for v4.19-1 2018-08-22 14:14:15 -07:00
pnp
power treewide: convert ISO_8859-1 text comments to utf-8 2018-08-23 18:48:43 -07:00
powercap
pps
ps3
ptp
pwm
rapidio drivers/rapidio/devices/rio_mport_cdev.c: remove redundant pointer md 2018-08-22 10:52:51 -07:00
ras
regulator
remoteproc
reset ARM: SoC: late updates 2018-08-25 14:12:36 -07:00
rpmsg
rtc
s390 s390 fixes for 4.19-rc4 2018-09-13 16:22:24 -10:00
sbus
scsi scsi: qedi: Add the CRC size within iSCSI NVM image 2018-08-30 07:15:22 -04:00
sfi
sh
siox
slimbus
sn
soc ARM: Device-tree updates 2018-08-23 14:02:22 -07:00
soundwire
spi
spmi
ssb
staging staging: vboxvideo: Change address of scanout buffer on page-flip 2018-09-11 18:39:54 +02:00
target scsi: iscsi: target: Fix conn_ops double free 2018-08-30 07:07:12 -04:00
tc
tee ARM: SoC driver updates 2018-08-23 13:52:46 -07:00
thermal Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal 2018-08-28 16:11:34 -07:00
thunderbolt
tty tty: hvc: hvc_write() fix break condition 2018-09-10 18:04:31 +02:00
uio
usb Revert "cdc-acm: implement put_char() and flush_chars()" 2018-09-10 20:40:29 +02:00
uwb
vfio
vhost Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-08-27 11:59:39 -07:00
video fbdev changes for v4.19: 2018-08-23 15:44:58 -07:00
virt
virtio virtio, vhost: fixes, tweaks 2018-08-24 08:45:19 -07:00
visorbus
vlynq
vme
w1 power supply and reset changes for the v4.19 series 2018-08-21 18:06:27 -07:00
watchdog include/linux/compiler*.h: make compiler-*.h mutually exclusive 2018-08-22 17:31:34 -07:00
xen xen/gntdev: fix up blockable calls to mn_invl_range_start 2018-09-14 08:52:30 -04:00
zorro
Kconfig
Makefile