39 lines
		
	
	
	
		
			718 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
	
		
			718 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | #include "drmP.h"
 | ||
|  | #include "drm.h"
 | ||
|  | #include "nouveau_drv.h"
 | ||
|  | #include "nouveau_drm.h"
 | ||
|  | 
 | ||
|  | int | ||
|  | nv40_mc_init(struct drm_device *dev) | ||
|  | { | ||
|  | 	struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
|  | 	uint32_t tmp; | ||
|  | 
 | ||
|  | 	/* Power up everything, resetting each individual unit will
 | ||
|  | 	 * be done later if needed. | ||
|  | 	 */ | ||
|  | 	nv_wr32(dev, NV03_PMC_ENABLE, 0xFFFFFFFF); | ||
|  | 
 | ||
|  | 	switch (dev_priv->chipset) { | ||
|  | 	case 0x44: | ||
|  | 	case 0x46: /* G72 */ | ||
|  | 	case 0x4e: | ||
|  | 	case 0x4c: /* C51_G7X */ | ||
|  | 		tmp = nv_rd32(dev, NV40_PFB_020C); | ||
|  | 		nv_wr32(dev, NV40_PMC_1700, tmp); | ||
|  | 		nv_wr32(dev, NV40_PMC_1704, 0); | ||
|  | 		nv_wr32(dev, NV40_PMC_1708, 0); | ||
|  | 		nv_wr32(dev, NV40_PMC_170C, tmp); | ||
|  | 		break; | ||
|  | 	default: | ||
|  | 		break; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	return 0; | ||
|  | } | ||
|  | 
 | ||
|  | void | ||
|  | nv40_mc_takedown(struct drm_device *dev) | ||
|  | { | ||
|  | } |