39 lines
		
	
	
	
		
			752 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
	
		
			752 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/* Generic I/O and MEMIO string operations.  */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define __ide_insw	insw
							 | 
						||
| 
								 | 
							
								#define __ide_insl	insl
							 | 
						||
| 
								 | 
							
								#define __ide_outsw	outsw
							 | 
						||
| 
								 | 
							
								#define __ide_outsl	outsl
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								static __inline__ void __ide_mm_insw(void __iomem *port, void *addr, u32 count)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									while (count--) {
							 | 
						||
| 
								 | 
							
										*(u16 *)addr = readw(port);
							 | 
						||
| 
								 | 
							
										addr += 2;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								static __inline__ void __ide_mm_insl(void __iomem *port, void *addr, u32 count)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									while (count--) {
							 | 
						||
| 
								 | 
							
										*(u32 *)addr = readl(port);
							 | 
						||
| 
								 | 
							
										addr += 4;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								static __inline__ void __ide_mm_outsw(void __iomem *port, void *addr, u32 count)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									while (count--) {
							 | 
						||
| 
								 | 
							
										writew(*(u16 *)addr, port);
							 | 
						||
| 
								 | 
							
										addr += 2;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								static __inline__ void __ide_mm_outsl(void __iomem * port, void *addr, u32 count)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									while (count--) {
							 | 
						||
| 
								 | 
							
										writel(*(u32 *)addr, port);
							 | 
						||
| 
								 | 
							
										addr += 4;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |