Re: [PATCH] Enable C3 Power State on Dell Inspiron 8200

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Does this system have a _CST in its DSDT?

Can you attach the output of acpidump to a bugzilla.kernel.org entry?
Also, the complete output from dmesg -s64000

thanks,
-Len

On Monday 25 June 2007 16:25, Dag Bakke wrote:
> The attached patch makes the kernel ignore the fact that P_LVL3_LAT is
> set to 2000 in the relevant ACPI table, and enforces the C3 power state
> anyway. I have not observed any ill effects with this patch on my
> P4m-equipped Inspiron 8200, and would like to see this patch applied
> upstream.
> 
> It saves ~2.5 watts on an idle system, so should be well worth it.
> 
> The patch was written by Arjan van de Ven based on my initial tests, and
>  the patch has been tested by myself.
> It applies to 2.6.22-rc5 and likely also -rc6.
> 
> 
> Dag Bakke
> 
> 
> Tested-by: Dag Bakke <dag@xxxxxxxxx>
> 
> --- linux/drivers/acpi/processor_idle.c.org	2007-06-10
> 14:18:27.000000000 -0700
> +++ linux/drivers/acpi/processor_idle.c	2007-06-10 14:27:45.000000000 -0700
> @@ -67,6 +67,8 @@ ACPI_MODULE_NAME("processor_idle");
>  #define C2_OVERHEAD			1	/* 1us */
>  #define C3_OVERHEAD			1	/* 1us */
> 
> +static int forced_c3;
> +
>  void acpi_max_cstate_changed(void)
>  {
>  	/* Driver will reset devices' max cstate limit */
> @@ -115,6 +117,20 @@ static int set_max_cstate(struct dmi_sys
>  	return 0;
>  }
> 
> +/*
> + * Some (Dell) machines have a too large C3 latency set, but it still
> works completely.
> + * Dell provides a driver for other operating systems to hack around
> this bug, so we know
> + * it's safe.
> + */
> +static int dmi_force_c3(struct dmi_system_id *id)
> +{
> +	forced_c3 = 1;
> +
> +	printk(KERN_NOTICE PREFIX "%s detected - Force enabling C3.", id->ident);
> +
> +	return 0;
> +}
> +
>  /* Actually this shouldn't be __cpuinitdata, would be better to fix the
>     callers to only run once -AK */
>  static struct dmi_system_id __cpuinitdata processor_power_dmi_table[] = {
> @@ -173,6 +189,9 @@ static struct dmi_system_id __cpuinitdat
>  	  DMI_MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"),
>  	  DMI_MATCH(DMI_BIOS_VERSION,"SHE845M0.86C.0013.D.0302131307")},
>  	 (void *)2},
> +	{ dmi_force_c3, "Dell Inspiron 8200", {
> +	  DMI_MATCH(DMI_SYS_VENDOR,"Dell Computer Corporation"),
> +	  DMI_MATCH(DMI_PRODUCT_NAME,"Inspiron 8200") }, NULL},
>  	{},
>  };
> 
> @@ -474,11 +493,12 @@ static void acpi_processor_power_verify_
>  	 * C3 latency must be less than or equal to 1000
>  	 * microseconds.
>  	 */
> -	else if (cx->latency > ACPI_PROCESSOR_MAX_C3_LATENCY) {
> +	if (cx->latency > ACPI_PROCESSOR_MAX_C3_LATENCY && !forced_c3) {
>  		ACPI_DEBUG_PRINT((ACPI_DB_INFO,
>  				  "latency too large [%d]\n", cx->latency));
>  		return;
> -	}
> +	} else if (forced_c3)
> +		cx->latency = ACPI_PROCESSOR_MAX_C3_LATENCY;
> 
>  	/*
>  	 * PIIX4 Erratum #18: We don't support C3 when Type-F (fast)
> -
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux