cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); 
for_each_cpu_mask(i, cpu_core_map[data->cpu]) { freqs.cpu = i; cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); } 
static int transition_frequency(struct powernow_k8_data *data, unsigned int index){	u32 fid;	u32 vid;	int res;	struct cpufreq_freqs freqs;	dprintk("cpu %d transition to index %u\n", smp_processor_id(), index);	/* fid are the lower 8 bits of the index we stored into	 * the cpufreq frequency table in find_psb_table, vid are 	 * the upper 8 bits.	 */	fid = data->powernow_table[index].index & 0xFF;	vid = (data->powernow_table[index].index & 0xFF00) >> 8;	dprintk("table matched fid 0x%x, giving vid 0x%x\n", fid, vid);	if (query_current_values_with_pending_wait(data))		return 1;	if ((data->currvid == vid) && (data->currfid == fid)) {		dprintk("target matches current values (fid 0x%x, vid 0x%x)\n",			fid, vid);		return 0;	}	if ((fid < HI_FID_TABLE_BOTTOM) && (data->currfid < HI_FID_TABLE_BOTTOM)) {		printk("ignoring illegal change in lo freq table-%x to 0x%x\n",		       data->currfid, fid);		return 1;	}	dprintk("cpu %d, changing to fid 0x%x, vid 0x%x\n",		smp_processor_id(), fid, vid);	freqs.cpu = data->cpu;	freqs.old = find_khz_freq_from_fid(data->currfid);	freqs.new = find_khz_freq_from_fid(fid);	cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);	down(&fidvid_sem);	res = transition_fid_vid(data, fid, vid);	up(&fidvid_sem);	freqs.new = find_khz_freq_from_fid(data->currfid);	cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);	return res;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/065b807ca1f5bdbeb081e3cf75ac8de9be8ac212/powernow-k8.c/clean/arch/i386/kernel/cpu/cpufreq/powernow-k8.c