linux/drivers
Marcin Wojtas a75edc7c2e net: mvpp2: enable ACPI support in the driver
This patch introduces an alternative way of obtaining resources - via
ACPI tables provided by firmware. Enabling coexistence with the DT
support, in addition to the OF_*->device_*/fwnode_* API replacement,
required following steps to be taken:

* Add mvpp2_acpi_match table
* Omit clock configuration and obtain tclk from the property - in ACPI
  world, the firmware is responsible for clock maintenance.
* Disable comphy and syscon handling as they are not available for ACPI.
* Modify way of obtaining interrupts - use newly introduced
  fwnode_irq_get() routine
* Until proper MDIO bus and PHY handling with ACPI is established in the
  kernel, use only link interrupts feature in the driver. For the RGMII
  port it results in depending on GMAC settings done during firmware
  stage.
* When booting with ACPI MVPP2_QDIST_MULTI_MODE is picked by
  default, as there is no need to keep any kind of the backward
  compatibility.

Moreover, a memory region used by mvmdio driver is usually placed in
the middle of the address space of the PP2 network controller.
The MDIO base address is obtained without requesting memory region
(by devm_ioremap() call) in mvmdio.c, later overlapping resources are
requested by the network driver, which is responsible for avoiding
a concurrent access.

In case the MDIO memory region is declared in the ACPI, it can
already appear as 'in-use' in the OS. Because it is overlapped by second
region of the network controller, make sure it is released, before
requesting it again. The care is taken by mvpp2 driver to avoid
concurrent access to this memory region.

Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-01-22 10:57:04 -05:00
..
accessibility
acpi Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm 2017-12-23 13:47:22 -08:00
amba
android binder: fix proc->files use-after-free 2017-12-18 15:47:12 +01:00
ata libata: apply MAX_SEC_1024 to all LITEON EP1 series devices 2017-12-19 05:30:38 -08:00
atm
auxdisplay
base device property: Allow iterating over available child fwnodes 2018-01-22 10:57:04 -05:00
bcma Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-19 22:59:33 -05:00
block Two rbd fixes for 4.12 and 4.2 issues respectively, marked for stable. 2018-01-11 16:57:32 -08:00
bluetooth Bluetooth: btbcm: Fix sleep mode struct ordering 2018-01-10 19:00:14 +01:00
bus Allwinner fixes for 4.15 2018-01-04 17:06:25 +01:00
cdrom
char The big changes for IPMI that just went in had a few problems. These 2017-12-11 17:01:59 -08:00
clk clk: use atomic runtime pm api in clk_core_is_enabled 2017-12-26 17:34:03 -08:00
clocksource
connector
cpufreq cpufreq: governor: Ensure sufficiently large sampling intervals 2017-12-18 12:09:39 +01:00
cpuidle
crypto crypto: inside-secure - do not use areq->result for partial results 2017-12-22 19:48:01 +11:00
dax
dca
devfreq
dio
dma dmaengine: fsl-edma: disable clks on all error paths 2017-12-15 09:53:04 +05:30
dma-buf
edac
eisa
extcon
firewire
firmware efi/capsule-loader: Reinstate virtual capsule mapping 2018-01-03 13:54:31 +01:00
fmc
fpga
fsi
gpio gpio: mmio: Also read bits that are zero 2018-01-16 23:42:36 +01:00
gpu Display corruption regression bugfix with both a prep patch and a 2018-01-19 12:40:07 +10:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2017-12-30 10:16:51 -08:00
hsi
hv Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-09 10:37:00 -05:00
hwmon hwmon: Deal with errors from the thermal subsystem 2017-12-26 11:53:24 -08:00
hwspinlock
hwtracing
i2c i2c: core-smbus: prevent stack corruption on read I2C_BLOCK_DATA 2018-01-17 15:35:21 +01:00
ide
idle
iio
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-17 00:10:42 -05:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2018-01-19 11:36:09 -08:00
iommu iommu/arm-smmu-v3: Cope with duplicated Stream IDs 2018-01-02 16:45:51 +00:00
ipack
irqchip genirq/irqdomain: Rename early argument of irq_domain_activate_irq() 2017-12-29 21:13:04 +01:00
isdn
leds leds: core: Fix regression caused by commit 2b83ff96f5 2018-01-07 13:27:07 +01:00
lightnvm
macintosh
mailbox
mcb
md locking/barriers: Convert users of lockless_dereference() to READ_ONCE() 2017-12-17 13:57:15 +01:00
media media fixes for v4.15-rc3 2017-12-08 13:18:47 -08:00
memory
memstick
message
mfd mfd: rtsx: Release IRQ during shutdown 2018-01-05 11:14:57 +00:00
misc Merge branch 'WIP.x86-pti.base.prep-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-12-17 13:54:31 -08:00
mmc mmc: sdhci-esdhc-imx: Fix i.MX53 eSDHCv3 clock 2018-01-15 13:50:19 +01:00
mtd mtd: nand: pxa3xx: Fix READOOB implementation 2018-01-06 23:06:58 +01:00
mux mux: core: fix double get_device() 2018-01-09 14:19:41 +01:00
net net: mvpp2: enable ACPI support in the driver 2018-01-22 10:57:04 -05:00
nfc
ntb
nubus
nvdimm libnvdimm, btt: Fix an incompatibility in the log layout 2017-12-21 14:59:27 -08:00
nvme nvme-pci: take sglist coalescing in dma_map_sg into account 2018-01-17 14:05:35 -07:00
nvmem nvmem: meson-mx-efuse: fix reading from an offset other than 0 2017-12-23 16:46:23 +01:00
of Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-11 22:13:42 -05:00
opp
oprofile
parisc parisc: Show unhashed EISA EEPROM address 2018-01-02 21:01:02 +01:00
parport
pci Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-09 10:37:00 -05:00
pcmcia
perf
phy phy: work around 'phys' references to usb-nop-xceiv devices 2018-01-19 16:12:37 +01:00
pinctrl genirq/irqdomain: Rename early argument of irq_domain_activate_irq() 2017-12-29 21:13:04 +01:00
platform platform/x86: wmi: Call acpi_wmi_init() later 2018-01-08 10:47:48 -08:00
pnp
power
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-09 10:37:00 -05:00
sbus
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-09 10:37:00 -05:00
sfi
sh
sn
soc
spi Merge remote-tracking branches 'spi/fix/armada', 'spi/fix/atmel', 'spi/fix/doc', 'spi/fix/imx', 'spi/fix/rspi', 'spi/fix/sun4i' and 'spi/fix/xilinx' into spi-linus 2017-12-19 11:07:00 +00:00
spmi
ssb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-19 22:59:33 -05:00
staging staging: android: ashmem: fix a race condition in ASHMEM_SET_SIZE ioctl 2018-01-09 15:32:11 +01:00
target block: fix blk_rq_append_bio 2017-12-18 13:55:43 -07:00
tc
tee
thermal
thunderbolt thunderbolt: Mask ring interrupt properly when polling starts 2017-12-16 16:37:51 +01:00
tty n_tty: fix EXTPROC vs ICANON interaction with TIOCINQ (aka FIONREAD) 2017-12-21 11:19:22 +01:00
uio
usb usb: misc: usb3503: make sure reset is low for at least 100us 2018-01-11 18:39:52 +01:00
uwb
vfio
vhost vhost_net: batch used ring update in rx 2018-01-10 15:04:30 -05:00
video
virt
virtio virtio_mmio: fix devm cleanup 2017-12-14 21:01:40 +02:00
vlynq
vme
w1
watchdog
xen xen: fixes for 4.15-rc8 2018-01-12 10:00:15 -08:00
zorro
Kconfig
Makefile