Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e25db641 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq

* master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:
  [CPUFREQ] longhaul compile fix.
  [CPUFREQ] Advise not to use longhaul on VIA C7.
  [CPUFREQ] set policy->curfreq on initialization
  [CPUFREQ] Trivial cleanup for acpi read/write port in acpi-cpufreq.c
  [CPUFREQ] fixes typo in cpufreq.c
parents 7686fcf7 928ee513
Loading
Loading
Loading
Loading
+8 −25
Original line number Diff line number Diff line
@@ -126,27 +126,6 @@ static unsigned extract_freq(u32 val, struct acpi_cpufreq_data *data)
	}
}

static void wrport(u16 port, u8 bit_width, u32 value)
{
	if (bit_width <= 8)
		outb(value, port);
	else if (bit_width <= 16)
		outw(value, port);
	else if (bit_width <= 32)
		outl(value, port);
}

static void rdport(u16 port, u8 bit_width, u32 * ret)
{
	*ret = 0;
	if (bit_width <= 8)
		*ret = inb(port);
	else if (bit_width <= 16)
		*ret = inw(port);
	else if (bit_width <= 32)
		*ret = inl(port);
}

struct msr_addr {
	u32 reg;
};
@@ -177,7 +156,9 @@ static void do_drv_read(struct drv_cmd *cmd)
		rdmsr(cmd->addr.msr.reg, cmd->val, h);
		break;
	case SYSTEM_IO_CAPABLE:
		rdport(cmd->addr.io.port, cmd->addr.io.bit_width, &cmd->val);
		acpi_os_read_port((acpi_io_address)cmd->addr.io.port,
				&cmd->val,
				(u32)cmd->addr.io.bit_width);
		break;
	default:
		break;
@@ -193,7 +174,9 @@ static void do_drv_write(struct drv_cmd *cmd)
		wrmsr(cmd->addr.msr.reg, cmd->val, h);
		break;
	case SYSTEM_IO_CAPABLE:
		wrport(cmd->addr.io.port, cmd->addr.io.bit_width, cmd->val);
		acpi_os_write_port((acpi_io_address)cmd->addr.io.port,
				cmd->val,
				(u32)cmd->addr.io.bit_width);
		break;
	default:
		break;
@@ -699,14 +682,14 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
	if (result)
		goto err_freqfree;

	switch (data->cpu_feature) {
	switch (perf->control_register.space_id) {
	case ACPI_ADR_SPACE_SYSTEM_IO:
		/* Current speed is unknown and not detectable by IO port */
		policy->cur = acpi_cpufreq_guess_freq(data, policy->cpu);
		break;
	case ACPI_ADR_SPACE_FIXED_HARDWARE:
		acpi_cpufreq_driver.get = get_cur_freq_on_cpu;
		get_cur_freq_on_cpu(cpu);
		policy->cur = get_cur_freq_on_cpu(cpu);
		break;
	default:
		break;
+3 −1
Original line number Diff line number Diff line
@@ -787,8 +787,10 @@ static int __init longhaul_init(void)
	switch (c->x86_model) {
	case 6 ... 9:
		return cpufreq_register_driver(&longhaul_driver);
	case 10:
		printk(KERN_ERR PFX "Use acpi-cpufreq driver for VIA C7\n");
	default:
		printk (KERN_INFO PFX "Unknown VIA CPU. Contact davej@codemonkey.org.uk\n");
		;;
	}

	return -ENODEV;
+1 −1
Original line number Diff line number Diff line
@@ -959,7 +959,7 @@ static void cpufreq_out_of_sync(unsigned int cpu, unsigned int old_freq,


/**
 * cpufreq_quick_get - get the CPU frequency (in kHz) frpm policy->cur
 * cpufreq_quick_get - get the CPU frequency (in kHz) from policy->cur
 * @cpu: CPU number
 *
 * This is the last known freq, without actually getting it from the driver.