android_kernel_oneplus_msm8998/drivers/char/agp
Chris Wilson 7740d2fa98 agp/intel: Flush all chipset writes after updating the GGTT
[ Upstream commit 8516673a996870ea0ceb337ee4f83c33c5ec3111 ]

Before accessing the GGTT we must flush the PTE writes and make them
visible to the chipset, or else the indirect access may end up in the
wrong page. In commit 3497971a71d8 ("agp/intel: Flush chipset writes
after updating a single PTE"), we noticed corruption of the uploads for
pwrite and for capturing GPU error states, but it was presumed that the
explicit calls to intel_gtt_chipset_flush() were sufficient for the
execbuffer path. However, we have not been flushing the chipset between
the PTE writes and access via the GTT itself.

For simplicity, do the flush after any PTE update rather than try and
batch the flushes on a just-in-time basis.

References: 3497971a71d8 ("agp/intel: Flush chipset writes after updating a single PTE")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: drm-intel-fixes@lists.freedesktop.org
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171208214616.30147-1-chris@chris-wilson.co.uk
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-03-22 09:23:29 +01:00
..
agp.h agp: change agp_free_page_array to use kvfree 2015-01-29 12:37:41 +10:00
ali-agp.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00
alpha-agp.c PCI: Convert alloc_pci_dev(void) to pci_alloc_dev(bus) 2013-06-05 13:49:36 -06:00
amd-k7-agp.c agp: Use pci_resource_start() to get CPU physical address for BAR 2014-01-07 11:36:35 -07:00
amd64-agp.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00
ati-agp.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00
backend.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00
compat_ioctl.c agp: kill agp_flush_chipset and corresponding ioctl 2010-11-23 20:14:45 +00:00
compat_ioctl.h agp: kill agp_flush_chipset and corresponding ioctl 2010-11-23 20:14:45 +00:00
efficeon-agp.c agp: Support 64-bit APBASE 2014-01-06 17:49:22 -07:00
frontend.c agp: remove read/write stubs 2014-08-02 06:43:51 +10:00
generic.c agp: change agp_free_page_array to use kvfree 2015-01-29 12:37:41 +10:00
hp-agp.c [IA64] agp/hp-agp: Allow binding user memory to the AGP GART 2011-08-23 13:31:59 -07:00
i460-agp.c Drivers: char: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
intel-agp.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00
intel-agp.h agp/intel: Use pci_bus_address() to get GTTADR bus address 2014-01-07 11:37:12 -07:00
intel-gtt.c agp/intel: Flush all chipset writes after updating the GGTT 2018-03-22 09:23:29 +01:00
isoch.c agp: use dev_printk when possible 2008-08-12 10:13:38 +10:00
Kconfig drm/i915: Make AGP support optional 2013-11-08 18:37:32 +01:00
Makefile drm/i915: Make AGP support optional 2013-11-08 18:37:32 +01:00
nvidia-agp.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00
parisc-agp.c parisc: agp/parisc-agp: allow binding of user memory to the AGP GART 2013-07-31 23:42:00 +02:00
sgi-agp.c drivers/char: delete non-required instances of include <linux/init.h> 2014-02-07 15:10:19 -08:00
sis-agp.c agp: Support 64-bit APBASE 2014-01-06 17:49:22 -07:00
sworks-agp.c Drivers: char: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
uninorth-agp.c agp/uninorth: fix a memleak in create_gatt_table 2015-10-02 22:57:59 +10:00
via-agp.c agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags 2014-12-23 20:03:10 +10:00