linux_dsm_epyc7002/arch/powerpc/platforms/pseries
Alexey Kardashevskiy da004c3600 powerpc/iommu: Move tce_xxx callbacks from ppc_md to iommu_table
This adds a iommu_table_ops struct and puts pointer to it into
the iommu_table struct. This moves tce_build/tce_free/tce_get/tce_flush
callbacks from ppc_md to the new struct where they really belong to.

This adds the requirement for @it_ops to be initialized before calling
iommu_init_table() to make sure that we do not leave any IOMMU table
with iommu_table_ops uninitialized. This is not a parameter of
iommu_init_table() though as there will be cases when iommu_init_table()
will not be called on TCE tables, for example - VFIO.

This does s/tce_build/set/, s/tce_free/clear/ and removes "tce_"
redundant prefixes.

This removes tce_xxx_rm handlers from ppc_md but does not add
them to iommu_table_ops as this will be done later if we decide to
support TCE hypercalls in real mode. This removes _vm callbacks as
only virtual mode is supported by now so this also removes @rm parameter.

For pSeries, this always uses tce_buildmulti_pSeriesLP/
tce_buildmulti_pSeriesLP. This changes multi callback to fall back to
tce_build_pSeriesLP/tce_free_pSeriesLP if FW_FEATURE_MULTITCE is not
present. The reason for this is we still have to support "multitce=off"
boot parameter in disable_multitce() and we do not want to walk through
all IOMMU tables in the system and replace "multi" callbacks with single
ones.

For powernv, this defines _ops per PHB type which are P5IOC2/IODA1/IODA2.
This makes the callbacks for them public. Later patches will extend
callbacks for IODA1/2.

No change in behaviour is expected.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-06-11 15:14:56 +10:00
..
cmm.c powerpc/pseries: Drop unnecessary continue 2014-09-23 11:00:40 +10:00
dlpar.c powerpc/pseries: Fix possible leaked device node reference 2015-05-11 16:58:20 +10:00
dtl.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
eeh_pseries.c powerpc/eeh: fix comment for wait_state() 2015-05-13 14:00:07 +10:00
event_sources.c of/irq: simplify args to irq_create_of_mapping 2013-10-24 11:42:57 +01:00
firmware.c powerpc/pseries: Update CPU maps when device tree is updated 2013-04-26 16:08:23 +10:00
hotplug-cpu.c powerpc: Replace cpumask_weight(cpu_possible_mask) with num_possible_cpus() 2015-01-23 14:02:51 +11:00
hotplug-memory.c powerpc/pseries: Fix compile of memory hotplug without CONFIG_MEMORY_HOTREMOVE 2015-04-15 11:55:28 +10:00
hvCall_inst.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
hvCall.S powerpc, jump_label: Include linux/jump_label.h to get HAVE_JUMP_LABEL define 2015-04-09 09:40:29 +02:00
hvconsole.c pseries: Move plpar_wrapper.h to powerpc common include/asm location. 2013-08-27 14:43:05 +10:00
hvcserver.c powerpc/pseries/hvcserver: Fix endian issue in hvcs_get_partner_info 2014-08-13 15:14:04 +10:00
io_event_irq.c powerpc/le: Enable RTAS events support 2014-04-07 10:33:12 +10:00
iommu.c powerpc/iommu: Move tce_xxx callbacks from ppc_md to iommu_table 2015-06-11 15:14:56 +10:00
Kconfig powerpc/nvram: Move generic code for nvram and pstore 2015-03-23 14:05:49 +11:00
kexec.c pseries: Move plpar_wrapper.h to powerpc common include/asm location. 2013-08-27 14:43:05 +10:00
lpar.c powerpc, jump_label: Include linux/jump_label.h to get HAVE_JUMP_LABEL define 2015-04-09 09:40:29 +02:00
lparcfg.c powerpc/pseries: Fix endian issues in /proc/ppc64/lparcfg 2013-12-13 15:48:35 +11:00
Makefile powerpc/pseries/cpuidle: Move processor_idle.c to drivers/cpuidle. 2014-01-29 17:02:22 +11:00
mobility.c powerpc updates for 4.1 2015-04-16 13:53:32 -05:00
msi.c powerpc/pseries: Move MSI-related ops to pci_controller_ops 2015-06-02 11:47:10 +10:00
nvram.c powerpc/rtas: Make timestamp related code y2038-safe 2015-03-23 14:06:11 +11:00
offline_states.h powerpc/smp: soft-replugged CPUs must go back to start_secondary 2011-04-01 15:37:09 +11:00
pci_dlpar.c powerpc/pseries: Move controller ops from ppc_md to controller_ops 2015-04-11 20:49:15 +10:00
pci.c powerpc/pseries: Quieten ibm,pcie-link-speed-stats warning 2014-11-10 09:59:33 +11:00
power.c powerpc/pseries: Switch pseries drivers to use machine_xxx_initcall() 2014-07-28 14:11:26 +10:00
pseries_energy.c powerpc: Fix a number of sparse warnings 2013-08-14 11:50:24 +10:00
pseries.h Merge branch 'next-dlpar' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc into next 2015-04-13 15:30:21 +10:00
ras.c powerpc/pseries: All events of EPOW_SYSTEM_SHUTDOWN must initiate shutdown 2015-01-23 11:17:30 +11:00
reconfig.c powerpc/pseries: Switch pseries drivers to use machine_xxx_initcall() 2014-07-28 14:11:26 +10:00
rng.c powerpc/pseries: Switch pseries drivers to use machine_xxx_initcall() 2014-07-28 14:11:26 +10:00
scanlog.c ppc: Clean up scanlog 2013-05-01 17:29:45 -04:00
setup.c powerpc: Remove PPC32 code from pseries specific find_and_init_phbs() 2015-04-14 17:14:22 +10:00
smp.c powerpc: Drop return value of smp_ops->probe() 2015-04-10 20:02:49 +10:00
suspend.c powerpc/pseries: Switch pseries drivers to use machine_xxx_initcall() 2014-07-28 14:11:26 +10:00