linux/drivers/misc
Ian Munsie 292841b096 cxl: Update process element after allocating interrupts
In the kernel API, it is possible to attempt to allocate AFU interrupts
after already starting a context. Since the process element structure
used by the hardware is only filled out at the time the context is
started, it will not be updated with the interrupt numbers that have
just been allocated and therefore AFU interrupts will not work unless
they were allocated prior to starting the context.

This can present some difficulties as each CAPI enabled PCI device in
the kernel API has a default context, which may need to be started very
early to enable translations, potentially before interrupts can easily
be set up.

This patch makes the API more flexible to allow interrupts to be
allocated after a context has already been started and takes care of
updating the PE structure used by the hardware and notifying it to
discard any cached copy it may have.

The update is currently performed via a terminate/remove/add sequence.
This is necessary on some hardware such as the XSL that does not
properly support the update LLCMD.

Note that this is only supported on powernv at present - attempting to
perform this ordering on PowerVM will raise a warning.

Signed-off-by: Ian Munsie <imunsie@au1.ibm.com>
Reviewed-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-06-16 23:08:49 +10:00
..
altera-stapl
c2port
cb710
cxl cxl: Update process element after allocating interrupts 2016-06-16 23:08:49 +10:00
echo
eeprom Char / Misc driver update for 4.7-rc1 2016-05-20 21:20:31 -07:00
genwqe
ibmasm mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
lis3lv02d
mei mei: bus: call mei_cl_read_start under device lock 2016-05-03 15:07:35 -07:00
mic misc: mic: Remove return statements from void functions 2016-04-30 13:53:19 -07:00
sgi-gru x86/platform/UV: Remove Obsolete GRU MMR address translation 2016-05-04 08:48:51 +02:00
sgi-xp
ti-st ti-st: Fix complete_all() wrong usage 2016-05-01 14:20:04 -07:00
vmw_vmci mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
ad525x_dpot-i2c.c
ad525x_dpot-spi.c
ad525x_dpot.c misc: ad525x_dpot: Fix the enabling of the "otpXen" attributes 2016-03-01 16:55:13 -08:00
ad525x_dpot.h
apds990x.c
apds9802als.c
arm-charlcd.c
atmel_tclib.c
atmel-ssc.c ASoC: atmel_ssc_dai: distinguish the different SSC 2016-03-02 23:43:11 +09:00
bh1770glc.c
bh1780gli.c
bmp085-i2c.c
bmp085-spi.c
bmp085.c
bmp085.h
cs5535-mfgpt.c
ds1682.c
dummy-irq.c
enclosure.c
fsa9480.c
hmc6352.c
hpilo.c
hpilo.h
ics932s401.c
ioc4.c
isl29003.c
isl29020.c
Kconfig Merge char-misc-next into staging-next 2016-02-22 14:46:24 -08:00
kgdbts.c
lattice-ecp3-config.c
lkdtm.c lkdtm: do not leak free page on kmalloc failure 2016-04-06 16:22:25 -07:00
Makefile
panel.c
pch_phub.c pch_phub: return -ENODATA if ROM can't be mapped 2016-03-05 12:19:39 -08:00
phantom.c
pti.c
qcom-coincell.c ARM: qcom: silence an uninitialized variable warning 2016-05-01 14:20:04 -07:00
spear13xx_pcie_gadget.c
sram.c misc: sram: fix check of devm_ioremap*() return value 2016-04-30 14:15:56 -07:00
ti_dac7512.c
tifm_7xx1.c
tifm_core.c
tsl2550.c
vexpress-syscfg.c
vmw_balloon.c