cvs commit: src/sys/dev/acpica acpi_perf.c
Vladimir Grebenschikov
vova at fbsd.ru
Tue Mar 29 22:43:18 PST 2005
В вс, 27/03/2005 в 22:49 -0800, Nate Lawson пишет:
> Vladimir Grebenschikov wrote:
> > В вс, 27/03/2005 в 14:46 -0800, Nate Lawson пишет:
> >
> >>Vladimir Grebenschikov wrote:
> >>
> >>>В вс, 20/03/2005 в 03:51 +0000, Nate Lawson пишет:
> >>>
> >>>
> >>>>njl 2005-03-20 03:51:18 UTC
> >>>>
> >>>>FreeBSD src repository
> >>>>
> >>>>Modified files:
> >>>> sys/dev/acpica acpi_perf.c
> >>>>Log:
> >>>>Attach acpi_perf early. Especially when it is being used to provide info
> >>>>to other devices, it needs to be attached first. (Multi-pass newbus
> >>>>probes would be a better solution.)
> >>>>
> >>>>Revision Changes Path
> >>>>1.16 +6 -1 src/sys/dev/acpica/acpi_perf.c
> >>>
> >>>
> >>>I guess this patch makes panic on my notebook:
> >>>
> >>>cpu0: <ACPI CPU (2 Cx states)> on acpi0
> >>>acpi_perf0: <ACPI CPU Frequency Control> on cpu0
> >>>acpi_perf0: failed in PERF_STATUS attach
> >>>device_attach: acpi_perf0 attach returned 6
> >>>panic: resource_list_add: resource entry is busy
> >>
> >>I believe the patch I just committed fully cleans up resources for the
> >>error case correctly. This should fix your panic. The other question
> >>is why your status register fails to attach but the control register
> >>succeeds. Can you send me your acpidump:
> >
> >
> > Thank you, will try fresh kernel later today.
> >
> >
> > Attached
> >
> >
> > Method (_PCT, 0, NotSerialized)
> > {
> > If (LEqual (And (PDC0, One), One))
> > {
> > ...
> > }
> > Else
> > {
> > Return (Package (0x02)
> > {
> > ResourceTemplate ()
> > {
> > Register (SystemIO, 0x10, 0x00, 0x00000000000000B2)
> > },
> >
> > ResourceTemplate ()
> > {
> > Register (SystemIO, 0x08, 0x00, 0x00000000000000B3)
> > }
> > })
> > }
> > }
>
> I've moved this to the acpi@ list now...
>
> Are you sure there isn't a BIOS update for your system available? It
> appears this is a Dell since a number of them have the same problem.
It is SONY, and they have no BIOS update for this series.
> The issue is that the control and status registers overlap. To fix,
> change this line:
>
> Register (SystemIO, 0x10, 0x00, 0x00000000000000B2)
>
> to this:
>
> Register (SystemIO, 0x08, 0x00, 0x00000000000000B2)
>
> Then, recompile your asl as described in the handbook and load it at
> boot. I'll try to figure out a way to work around this but it looks
> difficult to detect since 16 bits is a valid register width. I seem to
> remember imp@ had a means for detecting that a resource alloc failed due
> to an overlapping register and then split the previous resource (since
> this driver owns both). I'll ask.
It helps, thank you.
% dmesg
...
acpi0: <SONY> on motherboard
acpi_ec0: <Embedded Controller: GPE 0x1c> port 0x62,0x66 on acpi0
Timecounter "ACPI-safe" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
cpu0: <ACPI CPU (2 Cx states)> on acpi0
acpi_perf0: <ACPI CPU Frequency Control> on cpu0
acpi_throttle0: <ACPI CPU Throttling> on cpu0
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_button0: <Power Button> on acpi0
...
% sysctl dev.cpu
dev.cpu.0.%desc: ACPI CPU (2 Cx states)
dev.cpu.0.%driver: cpu
dev.cpu.0.%location: handle=\_PR_.CPU0
dev.cpu.0.%pnpinfo: _HID=none _UID=0
dev.cpu.0.%parent: acpi0
dev.cpu.0.freq: 1700
dev.cpu.0.freq_levels: 1700/24500 1487/21437 1400/19500 1275/18375
1225/17062 1200/16000 1062/15312 1000/13000 900/12000 875/12187
850/12250 800/9500 750/10000 700/9750 637/9187 600/6000 525/7312
500/6500 450/6000 425/6125 400/4750 375/4875 350/4875 300/4000 250/3250
212/3062 175/2437 150/2000 125/1625 100/1187 75/750
% sysctl dev.acpi_perf
dev.acpi_perf.0.%desc: ACPI CPU Frequency Control
dev.acpi_perf.0.%driver: acpi_perf
dev.acpi_perf.0.%parent: cpu0
dev.acpi_perf.0.freq_settings: 1700/24500 1400/19500 1200/16000
1000/13000 800/9500 600/6000
%
I have also problem with suspend/resume - on resume notebook does not
show anything on screen, can't be accessed via network or firewire.
Recent VESA patches does not helps.
So question is - can this ASL patch help for suspend/resume or it is
unrelated ?
--
Vladimir B. Grebenchikov
vova at fbsd.ru
More information about the freebsd-acpi
mailing list