ide: merge <asm-sparc/ide_64.h> with <asm-sparc/ide_32.h>

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Bartlomiej Zolnierkiewicz and committed by David S. Miller 6662327e edc83d4f

+97 -190
+97 -5
include/asm-sparc/ide.h
··· 1 - #ifndef ___ASM_SPARC_IDE_H 2 - #define ___ASM_SPARC_IDE_H 3 - #if defined(__sparc__) && defined(__arch64__) 4 - #include <asm-sparc/ide_64.h> 1 + /* ide.h: SPARC PCI specific IDE glue. 2 + * 3 + * Copyright (C) 1997 David S. Miller (davem@davemloft.net) 4 + * Copyright (C) 1998 Eddie C. Dost (ecd@skynet.be) 5 + * Adaptation from sparc64 version to sparc by Pete Zaitcev. 6 + */ 7 + 8 + #ifndef _SPARC_IDE_H 9 + #define _SPARC_IDE_H 10 + 11 + #ifdef __KERNEL__ 12 + 13 + #include <asm/io.h> 14 + #ifdef CONFIG_SPARC64 15 + #include <asm/pgalloc.h> 16 + #include <asm/spitfire.h> 17 + #include <asm/cacheflush.h> 18 + #include <asm/page.h> 5 19 #else 6 - #include <asm-sparc/ide_32.h> 20 + #include <asm/pgtable.h> 21 + #include <asm/psr.h> 7 22 #endif 23 + 24 + #undef MAX_HWIFS 25 + #define MAX_HWIFS 2 26 + 27 + #define __ide_insl(data_reg, buffer, wcount) \ 28 + __ide_insw(data_reg, buffer, (wcount)<<1) 29 + #define __ide_outsl(data_reg, buffer, wcount) \ 30 + __ide_outsw(data_reg, buffer, (wcount)<<1) 31 + 32 + /* On sparc, I/O ports and MMIO registers are accessed identically. */ 33 + #define __ide_mm_insw __ide_insw 34 + #define __ide_mm_insl __ide_insl 35 + #define __ide_mm_outsw __ide_outsw 36 + #define __ide_mm_outsl __ide_outsl 37 + 38 + static inline void __ide_insw(void __iomem *port, void *dst, u32 count) 39 + { 40 + #if defined(CONFIG_SPARC64) && defined(DCACHE_ALIASING_POSSIBLE) 41 + unsigned long end = (unsigned long)dst + (count << 1); 8 42 #endif 43 + u16 *ps = dst; 44 + u32 *pi; 45 + 46 + if(((unsigned long)ps) & 0x2) { 47 + *ps++ = __raw_readw(port); 48 + count--; 49 + } 50 + pi = (u32 *)ps; 51 + while(count >= 2) { 52 + u32 w; 53 + 54 + w = __raw_readw(port) << 16; 55 + w |= __raw_readw(port); 56 + *pi++ = w; 57 + count -= 2; 58 + } 59 + ps = (u16 *)pi; 60 + if(count) 61 + *ps++ = __raw_readw(port); 62 + 63 + #if defined(CONFIG_SPARC64) && defined(DCACHE_ALIASING_POSSIBLE) 64 + __flush_dcache_range((unsigned long)dst, end); 65 + #endif 66 + } 67 + 68 + static inline void __ide_outsw(void __iomem *port, const void *src, u32 count) 69 + { 70 + #if defined(CONFIG_SPARC64) && defined(DCACHE_ALIASING_POSSIBLE) 71 + unsigned long end = (unsigned long)src + (count << 1); 72 + #endif 73 + const u16 *ps = src; 74 + const u32 *pi; 75 + 76 + if(((unsigned long)src) & 0x2) { 77 + __raw_writew(*ps++, port); 78 + count--; 79 + } 80 + pi = (const u32 *)ps; 81 + while(count >= 2) { 82 + u32 w; 83 + 84 + w = *pi++; 85 + __raw_writew((w >> 16), port); 86 + __raw_writew(w, port); 87 + count -= 2; 88 + } 89 + ps = (const u16 *)pi; 90 + if(count) 91 + __raw_writew(*ps, port); 92 + 93 + #if defined(CONFIG_SPARC64) && defined(DCACHE_ALIASING_POSSIBLE) 94 + __flush_dcache_range((unsigned long)src, end); 95 + #endif 96 + } 97 + 98 + #endif /* __KERNEL__ */ 99 + 100 + #endif /* _SPARC_IDE_H */
-85
include/asm-sparc/ide_32.h
··· 1 - /* ide.h: SPARC PCI specific IDE glue. 2 - * 3 - * Copyright (C) 1997 David S. Miller (davem@davemloft.net) 4 - * Copyright (C) 1998 Eddie C. Dost (ecd@skynet.be) 5 - * Adaptation from sparc64 version to sparc by Pete Zaitcev. 6 - */ 7 - 8 - #ifndef _SPARC_IDE_H 9 - #define _SPARC_IDE_H 10 - 11 - #ifdef __KERNEL__ 12 - 13 - #include <asm/pgtable.h> 14 - #include <asm/io.h> 15 - #include <asm/psr.h> 16 - 17 - #undef MAX_HWIFS 18 - #define MAX_HWIFS 2 19 - 20 - #define __ide_insl(data_reg, buffer, wcount) \ 21 - __ide_insw(data_reg, buffer, (wcount)<<1) 22 - #define __ide_outsl(data_reg, buffer, wcount) \ 23 - __ide_outsw(data_reg, buffer, (wcount)<<1) 24 - 25 - /* On sparc, I/O ports and MMIO registers are accessed identically. */ 26 - #define __ide_mm_insw __ide_insw 27 - #define __ide_mm_insl __ide_insl 28 - #define __ide_mm_outsw __ide_outsw 29 - #define __ide_mm_outsl __ide_outsl 30 - 31 - static inline void __ide_insw(void __iomem *port, void *dst, u32 count) 32 - { 33 - /* unsigned long end = (unsigned long)dst + (count << 1); */ /* P3 */ 34 - u16 *ps = dst; 35 - u32 *pi; 36 - 37 - if(((unsigned long)ps) & 0x2) { 38 - *ps++ = __raw_readw(port); 39 - count--; 40 - } 41 - pi = (u32 *)ps; 42 - while(count >= 2) { 43 - u32 w; 44 - 45 - w = __raw_readw(port) << 16; 46 - w |= __raw_readw(port); 47 - *pi++ = w; 48 - count -= 2; 49 - } 50 - ps = (u16 *)pi; 51 - if(count) 52 - *ps++ = __raw_readw(port); 53 - 54 - /* __flush_dcache_range((unsigned long)dst, end); */ /* P3 see hme */ 55 - } 56 - 57 - static inline void __ide_outsw(void __iomem *port, const void *src, u32 count) 58 - { 59 - /* unsigned long end = (unsigned long)src + (count << 1); */ 60 - const u16 *ps = src; 61 - const u32 *pi; 62 - 63 - if(((unsigned long)src) & 0x2) { 64 - __raw_writew(*ps++, port); 65 - count--; 66 - } 67 - pi = (const u32 *)ps; 68 - while(count >= 2) { 69 - u32 w; 70 - 71 - w = *pi++; 72 - __raw_writew((w >> 16), port); 73 - __raw_writew(w, port); 74 - count -= 2; 75 - } 76 - ps = (const u16 *)pi; 77 - if(count) 78 - __raw_writew(*ps, port); 79 - 80 - /* __flush_dcache_range((unsigned long)src, end); */ /* P3 see hme */ 81 - } 82 - 83 - #endif /* __KERNEL__ */ 84 - 85 - #endif /* _SPARC_IDE_H */
-100
include/asm-sparc/ide_64.h
··· 1 - /* 2 - * ide.h: Ultra/PCI specific IDE glue. 3 - * 4 - * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) 5 - * Copyright (C) 1998 Eddie C. Dost (ecd@skynet.be) 6 - */ 7 - 8 - #ifndef _SPARC64_IDE_H 9 - #define _SPARC64_IDE_H 10 - 11 - #ifdef __KERNEL__ 12 - 13 - #include <asm/pgalloc.h> 14 - #include <asm/io.h> 15 - #include <asm/spitfire.h> 16 - #include <asm/cacheflush.h> 17 - #include <asm/page.h> 18 - 19 - #ifndef MAX_HWIFS 20 - # ifdef CONFIG_BLK_DEV_IDEPCI 21 - #define MAX_HWIFS 10 22 - # else 23 - #define MAX_HWIFS 2 24 - # endif 25 - #endif 26 - 27 - #define __ide_insl(data_reg, buffer, wcount) \ 28 - __ide_insw(data_reg, buffer, (wcount)<<1) 29 - #define __ide_outsl(data_reg, buffer, wcount) \ 30 - __ide_outsw(data_reg, buffer, (wcount)<<1) 31 - 32 - /* On sparc64, I/O ports and MMIO registers are accessed identically. */ 33 - #define __ide_mm_insw __ide_insw 34 - #define __ide_mm_insl __ide_insl 35 - #define __ide_mm_outsw __ide_outsw 36 - #define __ide_mm_outsl __ide_outsl 37 - 38 - static inline void __ide_insw(void __iomem *port, void *dst, u32 count) 39 - { 40 - #ifdef DCACHE_ALIASING_POSSIBLE 41 - unsigned long end = (unsigned long)dst + (count << 1); 42 - #endif 43 - u16 *ps = dst; 44 - u32 *pi; 45 - 46 - if(((u64)ps) & 0x2) { 47 - *ps++ = __raw_readw(port); 48 - count--; 49 - } 50 - pi = (u32 *)ps; 51 - while(count >= 2) { 52 - u32 w; 53 - 54 - w = __raw_readw(port) << 16; 55 - w |= __raw_readw(port); 56 - *pi++ = w; 57 - count -= 2; 58 - } 59 - ps = (u16 *)pi; 60 - if(count) 61 - *ps++ = __raw_readw(port); 62 - 63 - #ifdef DCACHE_ALIASING_POSSIBLE 64 - __flush_dcache_range((unsigned long)dst, end); 65 - #endif 66 - } 67 - 68 - static inline void __ide_outsw(void __iomem *port, void *src, u32 count) 69 - { 70 - #ifdef DCACHE_ALIASING_POSSIBLE 71 - unsigned long end = (unsigned long)src + (count << 1); 72 - #endif 73 - const u16 *ps = src; 74 - const u32 *pi; 75 - 76 - if(((u64)src) & 0x2) { 77 - __raw_writew(*ps++, port); 78 - count--; 79 - } 80 - pi = (const u32 *)ps; 81 - while(count >= 2) { 82 - u32 w; 83 - 84 - w = *pi++; 85 - __raw_writew((w >> 16), port); 86 - __raw_writew(w, port); 87 - count -= 2; 88 - } 89 - ps = (const u16 *)pi; 90 - if(count) 91 - __raw_writew(*ps, port); 92 - 93 - #ifdef DCACHE_ALIASING_POSSIBLE 94 - __flush_dcache_range((unsigned long)src, end); 95 - #endif 96 - } 97 - 98 - #endif /* __KERNEL__ */ 99 - 100 - #endif /* _SPARC64_IDE_H */