hppa: pa8800 and gcc-4.1

svn path=/dists/sid/linux-2.6/; revision=7264
This commit is contained in:
Kyle McMartin 2006-08-29 13:09:56 +00:00
parent 48fceb1785
commit 8b1410a4af
4 changed files with 55 additions and 37 deletions

View File

@ -1,5 +1,4 @@
[base]
compiler: gcc-4.0
flavours:
parisc
parisc-smp
@ -22,8 +21,3 @@ class: 64-bit PA-RISC
[parisc64-smp]
class: multi-processor 64-bit PA-RISC
[relations]
gcc-4.0: gcc-4.0, binutils-hppa64, gcc-4.0-hppa64
gcc-4.0: gcc-4.0, binutils-hppa64, gcc-4.0-hppa64

8
debian/changelog vendored
View File

@ -9,7 +9,13 @@ linux-2.6 (2.6.17-8) UNRELEASED; urgency=low
Updates to patch_sigmatel.c to add x86 mac-mini sound support
Thanks to Matt Kraai. (closes: #384972)
-- dann frazier <dannf@debian.org> Tue, 29 Aug 2006 00:06:48 -0600
[ Kyle McMartin ]
* hppa: Re-enable pa8800 fixing patches from James Bottomley.
Pulled fresh from parisc-linux git tree.
* hppa: Use gcc-4.1, bugs which caused extremely long optimization
times have been fixed upstream.
-- Kyle McMartin <kyle@debian.org> Tue, 29 Aug 2006 09:07:57 -0400
linux-2.6 (2.6.17-7) unstable; urgency=low

View File

@ -1,3 +1,9 @@
From: James Bottomley <jejb@ioz.(none)>
Date: Wed, 23 Aug 2006 16:00:04 +0000 (-0700)
Subject: [PATCH] parisc specific kmap API implementation for pa8800
X-Git-Tag: v2.6.18-rc4-pa4
X-Git-Url: http://git.parisc-linux.org/?p=linux-2.6.git;a=commitdiff;h=f73678a89e79be6e649409286bbc1b83c0b313e3
[PATCH] parisc specific kmap API implementation for pa8800
This patch fixes the pa8800 at a gross level (there are still other
@ -12,11 +18,11 @@ asm/processor.h to identify the pa8x00 processors (8800 and 8900)
which have the issue.
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Index: linux-2.6/arch/parisc/kernel/cache.c
===================================================================
--- linux-2.6.orig/arch/parisc/kernel/cache.c 2006-08-02 06:28:46.000000000 -0700
+++ linux-2.6/arch/parisc/kernel/cache.c 2006-08-02 06:35:42.000000000 -0700
@@ -91,7 +91,8 @@
---
--- a/arch/parisc/kernel/cache.c
+++ b/arch/parisc/kernel/cache.c
@@ -91,7 +91,8 @@ update_mmu_cache(struct vm_area_struct *
flush_kernel_dcache_page(page);
clear_bit(PG_dcache_dirty, &page->flags);
@ -26,7 +32,7 @@ Index: linux-2.6/arch/parisc/kernel/cache.c
}
void
@@ -370,3 +371,35 @@
@@ -370,3 +371,45 @@ void parisc_setup_cache_timing(void)
printk(KERN_INFO "Setting cache flush threshold to %x (%d CPUs online)\n", parisc_cache_flush_threshold, num_online_cpus());
}
@ -53,6 +59,16 @@ Index: linux-2.6/arch/parisc/kernel/cache.c
+}
+EXPORT_SYMBOL(flush_kernel_dcache_page_addr);
+
+void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
+ struct page *pg)
+{
+ /* no coherency needed (all in kmap/kunmap) */
+ copy_user_page_asm(vto, vfrom);
+ if (!parisc_requires_coherency())
+ flush_kernel_dcache_page_asm(vto);
+}
+EXPORT_SYMBOL(copy_user_page);
+
+#ifdef CONFIG_PA8X00
+
+void kunmap_parisc(void *addr)
@ -62,11 +78,9 @@ Index: linux-2.6/arch/parisc/kernel/cache.c
+}
+EXPORT_SYMBOL(kunmap_parisc);
+#endif
Index: linux-2.6/include/asm-parisc/cacheflush.h
===================================================================
--- linux-2.6.orig/include/asm-parisc/cacheflush.h 2006-08-02 06:28:45.000000000 -0700
+++ linux-2.6/include/asm-parisc/cacheflush.h 2006-08-02 06:37:00.000000000 -0700
@@ -191,16 +191,38 @@
--- a/include/asm-parisc/cacheflush.h
+++ b/include/asm-parisc/cacheflush.h
@@ -191,16 +191,38 @@ flush_anon_page(struct page *page, unsig
}
#define ARCH_HAS_FLUSH_ANON_PAGE
@ -109,42 +123,40 @@ Index: linux-2.6/include/asm-parisc/cacheflush.h
+
#endif /* _PARISC_CACHEFLUSH_H */
Index: linux-2.6/include/asm-parisc/page.h
===================================================================
--- linux-2.6.orig/include/asm-parisc/page.h 2006-08-02 06:29:39.000000000 -0700
+++ linux-2.6/include/asm-parisc/page.h 2006-08-02 06:29:46.000000000 -0700
@@ -34,24 +34,16 @@
--- a/include/asm-parisc/page.h
+++ b/include/asm-parisc/page.h
@@ -34,24 +34,10 @@
struct page;
-extern void purge_kernel_dcache_page(unsigned long);
extern void copy_user_page_asm(void *to, void *from);
-extern void copy_user_page_asm(void *to, void *from);
-extern void clear_user_page_asm(void *page, unsigned long vaddr);
static inline void
copy_user_page(void *vto, void *vfrom, unsigned long vaddr, struct page *pg)
{
+ /* no coherency needed (all in kmap/kunmap) */
copy_user_page_asm(vto, vfrom);
-
-static inline void
-copy_user_page(void *vto, void *vfrom, unsigned long vaddr, struct page *pg)
-{
- copy_user_page_asm(vto, vfrom);
- flush_kernel_dcache_page_asm(vto);
- /* XXX: ppc flushes icache too, should we? */
}
-}
-
-static inline void
-clear_user_page(void *page, unsigned long vaddr, struct page *pg)
-{
- purge_kernel_dcache_page((unsigned long)page);
- clear_user_page_asm(page, vaddr);
-}
+void copy_user_page_asm(void *to, void *from);
+void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
+ struct page *pg);
+void clear_user_page(void *page, unsigned long vaddr, struct page *pg);
/*
* These are used to make use of C type-checking..
Index: linux-2.6/include/asm-parisc/processor.h
===================================================================
--- linux-2.6.orig/include/asm-parisc/processor.h 2006-08-02 06:39:20.000000000 -0700
+++ linux-2.6/include/asm-parisc/processor.h 2006-08-02 06:50:34.000000000 -0700
@@ -332,6 +332,15 @@
--- a/include/asm-parisc/processor.h
+++ b/include/asm-parisc/processor.h
@@ -332,6 +332,19 @@ extern unsigned long get_wchan(struct ta
#define cpu_relax() barrier()
@ -153,8 +165,12 @@ Index: linux-2.6/include/asm-parisc/processor.h
+ * aliases with different data, whether clean or not) to operate */
+static inline int parisc_requires_coherency(void)
+{
+#ifdef CONFIG_PA8X00
+ /* FIXME: also pa8900 - when we see one */
+ return boot_cpu_data.cpu_type == mako;
+#else
+ return 0;
+#endif
+}
+
#endif /* __ASSEMBLY__ */

2
debian/patches/series/8-extra vendored Normal file
View File

@ -0,0 +1,2 @@
+ pa8800-abstract-kmap.patch hppa
+ pa8800-kmap-implementation.patch hppa