Module Name: src Committed By: jmcneill Date: Sat Oct 17 21:11:56 UTC 2015
Modified Files: src/sys/external/bsd/drm2/drm: drm_cache.c Log Message: skip clflush on arm To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/drm/drm_cache.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/external/bsd/drm2/drm/drm_cache.c diff -u src/sys/external/bsd/drm2/drm/drm_cache.c:1.7 src/sys/external/bsd/drm2/drm/drm_cache.c:1.8 --- src/sys/external/bsd/drm2/drm/drm_cache.c:1.7 Sat Oct 17 15:13:19 2015 +++ src/sys/external/bsd/drm2/drm/drm_cache.c Sat Oct 17 21:11:56 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: drm_cache.c,v 1.7 2015/10/17 15:13:19 jmcneill Exp $ */ +/* $NetBSD: drm_cache.c,v 1.8 2015/10/17 21:11:56 jmcneill Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,8 +30,9 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: drm_cache.c,v 1.7 2015/10/17 15:13:19 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: drm_cache.c,v 1.8 2015/10/17 21:11:56 jmcneill Exp $"); +#include <sys/param.h> #include <sys/types.h> #include <sys/xcall.h> @@ -41,27 +42,34 @@ __KERNEL_RCSID(0, "$NetBSD: drm_cache.c, #include <drm/drmP.h> +#if !defined(__arm__) +#define DRM_CLFLUSH 1 +#endif + +#if defined(DRM_CLFLUSH) static bool drm_md_clflush_finegrained_p(void); static void drm_md_clflush_all(void); static void drm_md_clflush_page(struct page *); static void drm_md_clflush_virt_range(const void *, size_t); +#endif void drm_clflush_pages(struct page **pages, unsigned long npages) { - +#if defined(DRM_CLFLUSH) if (drm_md_clflush_finegrained_p()) { while (npages--) drm_md_clflush_page(pages[npages]); } else { drm_md_clflush_all(); } +#endif } void drm_clflush_pglist(struct pglist *list) { - +#if defined(DRM_CLFLUSH) if (drm_md_clflush_finegrained_p()) { struct vm_page *page; @@ -71,26 +79,29 @@ drm_clflush_pglist(struct pglist *list) } else { drm_md_clflush_all(); } +#endif } void drm_clflush_page(struct page *page) { - +#if defined(DRM_CLFLUSH) if (drm_md_clflush_finegrained_p()) drm_md_clflush_page(page); else drm_md_clflush_all(); +#endif } void drm_clflush_virt_range(const void *vaddr, size_t nbytes) { - +#if defined(DRM_CLFLUSH) if (drm_md_clflush_finegrained_p()) drm_md_clflush_virt_range(vaddr, nbytes); else drm_md_clflush_all(); +#endif } #if defined(__i386__) || defined(__x86_64__)