text: static void spd_set_memclk(void)
  {
  	unsigned min_cycle_time, min_latency;
  	unsigned device;
  	int new_cycle_time, new_latency;
  	int index;
  	int latency;
  
  	min_cycle_time = 0x50;
  	min_latency = 2;
  	device = 0x50;
  	new_latency = 5;
  	new_cycle_time = 0xa0;
  	latency = 23;
  
  	for(index = 0; index < 3; index++, latency++) {
  		unsigned long loops;
  		unsigned address = index;
  
  		loops = 1000000;
  		do {
  		} while(--loops);
  		if (loops) {
  			continue;
  		}
  
  		__builtin_outb(device, 0x10e4);
  
  		__builtin_outb(address & 0xFF, 0x10e8);
  
  		loops = 1000000;
  		while(--loops)
  			;
  	}
  
  	if (new_cycle_time > min_cycle_time) {
  		min_cycle_time = new_cycle_time;
  	}
  	if (new_latency > min_latency) {
  		min_latency = new_latency;
  	}
  }
  
  