policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL; 
policy->cpuinfo.transition_latency = 200000;	/* nsec */ 
static int __init longhaul_cpu_init(struct cpufreq_policy *policy){	struct cpuinfo_x86 *c = cpu_data;	char *cpuname=NULL;	int ret;	switch (c->x86_model) {	case 6:		cpu_model = CPU_SAMUEL;		cpuname = "C3 'Samuel' [C5A]";		longhaul_version = TYPE_LONGHAUL_V1;		memcpy (clock_ratio, samuel1_clock_ratio, sizeof(samuel1_clock_ratio));		memcpy (eblcr_table, samuel1_eblcr, sizeof(samuel1_eblcr));		break;	case 7:		longhaul_version = TYPE_LONGHAUL_V1;		switch (c->x86_mask) {		case 0:			cpu_model = CPU_SAMUEL2;			cpuname = "C3 'Samuel 2' [C5B]";			/* Note, this is not a typo, early Samuel2's had Samuel1 ratios. */			memcpy (clock_ratio, samuel1_clock_ratio, sizeof(samuel1_clock_ratio));			memcpy (eblcr_table, samuel2_eblcr, sizeof(samuel2_eblcr));			break;		case 1 ... 15:			if (c->x86_mask < 8) {				cpu_model = CPU_SAMUEL2;				cpuname = "C3 'Samuel 2' [C5B]";			} else {				cpu_model = CPU_EZRA;				cpuname = "C3 'Ezra' [C5C]";			}			memcpy (clock_ratio, ezra_clock_ratio, sizeof(ezra_clock_ratio));			memcpy (eblcr_table, ezra_eblcr, sizeof(ezra_eblcr));			break;		}		break;	case 8:		cpu_model = CPU_EZRA_T;		cpuname = "C3 'Ezra-T' [C5M]";		longhaul_version = TYPE_POWERSAVER;		numscales=32;		memcpy (clock_ratio, ezrat_clock_ratio, sizeof(ezrat_clock_ratio));		memcpy (eblcr_table, ezrat_eblcr, sizeof(ezrat_eblcr));		break;	case 9:		cpu_model = CPU_NEHEMIAH;		longhaul_version = TYPE_POWERSAVER;		numscales=32;		switch (c->x86_mask) {		case 0 ... 1:			cpuname = "C3 'Nehemiah A' [C5N]";			memcpy (clock_ratio, nehemiah_a_clock_ratio, sizeof(nehemiah_a_clock_ratio));			memcpy (eblcr_table, nehemiah_a_eblcr, sizeof(nehemiah_a_eblcr));			break;		case 2 ... 4:			cpuname = "C3 'Nehemiah B' [C5N]";			memcpy (clock_ratio, nehemiah_b_clock_ratio, sizeof(nehemiah_b_clock_ratio));			memcpy (eblcr_table, nehemiah_b_eblcr, sizeof(nehemiah_b_eblcr));			break;		case 5 ... 15:			cpuname = "C3 'Nehemiah C' [C5N]";			memcpy (clock_ratio, nehemiah_c_clock_ratio, sizeof(nehemiah_c_clock_ratio));			memcpy (eblcr_table, nehemiah_c_eblcr, sizeof(nehemiah_c_eblcr));			break;		}		break;	default:		cpuname = "Unknown";		break;	}	printk (KERN_INFO PFX "VIA %s CPU detected.  ", cpuname);	switch (longhaul_version) {	case TYPE_LONGHAUL_V1:	case TYPE_LONGHAUL_V2:		printk ("Longhaul v%d supported.\n", longhaul_version);		break;	case TYPE_POWERSAVER:		printk ("Powersaver supported.\n");		break;	};	ret = longhaul_get_ranges();	if (ret != 0)		return ret;	if ((longhaul_version==TYPE_LONGHAUL_V2 || longhaul_version==TYPE_POWERSAVER) &&		 (dont_scale_voltage==0))		longhaul_setup_voltagescaling();	policy->governor = CPUFREQ_DEFAULT_GOVERNOR;	policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;	policy->cur = calc_speed(longhaul_get_cpu_mult());	ret = cpufreq_frequency_table_cpuinfo(policy, longhaul_table);	if (ret)		return ret;	cpufreq_frequency_table_get_attr(longhaul_table, policy->cpu);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/6778bae0f2f1d4af1b8bb876c992ea094ee958b4/longhaul.c/buggy/arch/i386/kernel/cpu/cpufreq/longhaul.c