Current-Users archive

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

Re: acpicpu(4) strangeness



On Wed, Jan 26, 2011 at 11:14:56PM -0800, Dustin Marquess wrote:
> boot -x -v output is below.  acpidump(8) says it can't find ACPI
> information, which seems strange, since bootup seems to find it:
> 
> # acpidump -dt
> acpidump: Can't find ACPI information

Can you send-pr(1) a problem report for this acpidump(8) issue separately?

Unfortunately, this makes debugging quite difficult. If you have an
opportunity to boot a Linux live-CD, you should be able to get the required
tables with something like:

  # cat /sys/firmware/acpi/tables/DSDT > /dsdt.aml
  # cat /sys/firmware/acpi/tables/dynamic/SSDTx > /ssdtX.aml

You could also verify the available P-states with something like:

  # cat sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

(But things may have changed, so adjust if necessary.)

In the meanwhile, can you try if the following small diff prints anything?

- Jukka.

Index: acpi_cpu_pstate.c
===================================================================
RCS file: /cvsroot/src/sys/dev/acpi/acpi_cpu_pstate.c,v
retrieving revision 1.36
diff -u -p -r1.36 acpi_cpu_pstate.c
--- acpi_cpu_pstate.c   30 Dec 2010 12:05:02 -0000      1.36
+++ acpi_cpu_pstate.c   27 Jan 2011 18:05:40 -0000
@@ -408,12 +408,17 @@ acpicpu_pstate_pss(struct acpicpu_softc 
                goto out;
        }
 
+       aprint_normal_dev(sc->sc_dev, "number of P-states: %u\n",
+           sc->sc_pstate_count);
+
        for (count = i = 0; i < sc->sc_pstate_count; i++) {
 
                ps = &sc->sc_pstate[i];
                rv = acpicpu_pstate_pss_add(ps, &obj->Package.Elements[i]);
 
                if (ACPI_FAILURE(rv)) {
+                       aprint_error_dev(sc->sc_dev, "failed to add "
+                           "P-state: %s\n", AcpiFormatException(rv));
                        ps->ps_freq = 0;
                        continue;
                }
@@ -421,8 +426,8 @@ acpicpu_pstate_pss(struct acpicpu_softc 
                for (j = 0; j < i; j++) {
 
                        if (ps->ps_freq >= sc->sc_pstate[j].ps_freq) {
-                               ps->ps_freq = 0;
-                               break;
+                               aprint_error_dev(sc->sc_dev, "P-states "
+                                   "not ordered?\n");
                        }
                }
 


Home | Main Index | Thread Index | Old Index