* broken bm_sts on 82801CA?
@ 2003-10-07 6:38 Nate Lawson
[not found] ` <20031006233406.N4792-Y6VGUYTwhu0@public.gmane.org>
0 siblings, 1 reply; 8+ messages in thread
From: Nate Lawson @ 2003-10-07 6:38 UTC (permalink / raw)
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
My chipset claims to be: Intel 82801CA/CAM (ICH3) and it's on an IBM T23
thinkpad. While testing my Cx driver, I noticed that bm_sts is always
set, even when I clear it by writing a 1 to the register. I _know_ the
box is idle so I believe this bit to be broken. Can anyone confirm this?
I noticed the errata probe for the PIIX4 but I don't think it covers my
part.
Thanks,
Nate
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
^ permalink raw reply [flat|nested] 8+ messages in thread[parent not found: <20031006233406.N4792-Y6VGUYTwhu0@public.gmane.org>]
* Re: broken bm_sts on 82801CA? [not found] ` <20031006233406.N4792-Y6VGUYTwhu0@public.gmane.org> @ 2003-10-07 8:55 ` Ducrot Bruno [not found] ` <20031007085536.GB11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org> 0 siblings, 1 reply; 8+ messages in thread From: Ducrot Bruno @ 2003-10-07 8:55 UTC (permalink / raw) To: Nate Lawson; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Mon, Oct 06, 2003 at 11:38:07PM -0700, Nate Lawson wrote: > My chipset claims to be: Intel 82801CA/CAM (ICH3) and it's on an IBM T23 > thinkpad. While testing my Cx driver, I noticed that bm_sts is always > set, even when I clear it by writing a 1 to the register. I _know_ the > box is idle so I believe this bit to be broken. Can anyone confirm this? > I noticed the errata probe for the PIIX4 but I don't think it covers my > part. > Have you any kind of usb bus support compiled in your kernel? If yes, try without. -- Ducrot Bruno -- Which is worse: ignorance or apathy? -- Don't know. Don't care. ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <20031007085536.GB11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>]
* Re: broken bm_sts on 82801CA? [not found] ` <20031007085536.GB11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org> @ 2003-10-07 18:10 ` Nate Lawson [not found] ` <20031008123103.GG11391@poupinou.org> 0 siblings, 1 reply; 8+ messages in thread From: Nate Lawson @ 2003-10-07 18:10 UTC (permalink / raw) To: Ducrot Bruno; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Tue, 7 Oct 2003, Ducrot Bruno wrote: > On Mon, Oct 06, 2003 at 11:38:07PM -0700, Nate Lawson wrote: > > My chipset claims to be: Intel 82801CA/CAM (ICH3) and it's on an IBM T23 > > thinkpad. While testing my Cx driver, I noticed that bm_sts is always > > set, even when I clear it by writing a 1 to the register. I _know_ the > > box is idle so I believe this bit to be broken. Can anyone confirm this? > > I noticed the errata probe for the PIIX4 but I don't think it covers my > > part. > > Have you any kind of usb bus support compiled in your kernel? > If yes, try without. Ah, I'll try that. I do have USB support compiled in. This is on FreeBSD, btw. -Nate ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <20031008123103.GG11391@poupinou.org>]
[parent not found: <20031008123103.GG11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>]
* Re: broken bm_sts on 82801CA? [not found] ` <20031008123103.GG11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org> @ 2003-10-08 16:55 ` Nate Lawson [not found] ` <20031008095321.B10515-Y6VGUYTwhu0@public.gmane.org> 0 siblings, 1 reply; 8+ messages in thread From: Nate Lawson @ 2003-10-08 16:55 UTC (permalink / raw) To: Ducrot Bruno; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Wed, 8 Oct 2003, Ducrot Bruno wrote: > On Tue, Oct 07, 2003 at 11:10:37AM -0700, Nate Lawson wrote: > > On Tue, 7 Oct 2003, Ducrot Bruno wrote: > > > On Mon, Oct 06, 2003 at 11:38:07PM -0700, Nate Lawson wrote: > > > > My chipset claims to be: Intel 82801CA/CAM (ICH3) and it's on an IBM T23 > > > > thinkpad. While testing my Cx driver, I noticed that bm_sts is always > > > > set, even when I clear it by writing a 1 to the register. I _know_ the > > > > box is idle so I believe this bit to be broken. Can anyone confirm this? > > > > I noticed the errata probe for the PIIX4 but I don't think it covers my > > > > part. > > > > > > Have you any kind of usb bus support compiled in your kernel? > > > If yes, try without. > > > > Ah, I'll try that. I do have USB support compiled in. This is on > > FreeBSD, btw. > > That more an hardware design issue due to how hotplug work in usb busses > in general, and it may need to be workaround, so if anybody haven't yet worked on > C-states on FreeBSD.. Please note also that Linux do not workaround that > btw. I have implemented C-states in freebsd, that's how I ran into this problem. I'll be committing the code once it's cleaned up a little. Since Linux always demotes to "don't enter a Cx state" if bm_sts indicates activity, are you saying that if you have a USB bus configured in Linux, you don't even use C1 (HLT)? -Nate ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <20031008095321.B10515-Y6VGUYTwhu0@public.gmane.org>]
* Re: broken bm_sts on 82801CA? [not found] ` <20031008095321.B10515-Y6VGUYTwhu0@public.gmane.org> @ 2003-10-08 17:28 ` Ducrot Bruno [not found] ` <20031008172800.GI11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org> 0 siblings, 1 reply; 8+ messages in thread From: Ducrot Bruno @ 2003-10-08 17:28 UTC (permalink / raw) To: Nate Lawson; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Wed, Oct 08, 2003 at 09:55:35AM -0700, Nate Lawson wrote: > On Wed, 8 Oct 2003, Ducrot Bruno wrote: > > On Tue, Oct 07, 2003 at 11:10:37AM -0700, Nate Lawson wrote: > > > On Tue, 7 Oct 2003, Ducrot Bruno wrote: > > > > On Mon, Oct 06, 2003 at 11:38:07PM -0700, Nate Lawson wrote: > > > > > My chipset claims to be: Intel 82801CA/CAM (ICH3) and it's on an IBM T23 > > > > > thinkpad. While testing my Cx driver, I noticed that bm_sts is always > > > > > set, even when I clear it by writing a 1 to the register. I _know_ the > > > > > box is idle so I believe this bit to be broken. Can anyone confirm this? > > > > > I noticed the errata probe for the PIIX4 but I don't think it covers my > > > > > part. > > > > > > > > Have you any kind of usb bus support compiled in your kernel? > > > > If yes, try without. > > > > > > Ah, I'll try that. I do have USB support compiled in. This is on > > > FreeBSD, btw. > > > > That more an hardware design issue due to how hotplug work in usb busses > > in general, and it may need to be workaround, so if anybody haven't yet worked on > > C-states on FreeBSD.. Please note also that Linux do not workaround that > > btw. > > I have implemented C-states in freebsd, that's how I ran into this > problem. I'll be committing the code once it's cleaned up a little. > > Since Linux always demotes to "don't enter a Cx state" if bm_sts indicates > activity, are you saying that if you have a USB bus configured in Linux, > you don't even use C1 (HLT)? > What? If so, there is a bug somewhere since we should look at bm status only at C2 (only if we have to go to C3) or C3 state. Sound like you are right, btw. I have to look a little deeper. Thanks for pointing this. -- Ducrot Bruno -- Which is worse: ignorance or apathy? -- Don't know. Don't care. ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <20031008172800.GI11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>]
* Re: broken bm_sts on 82801CA? [not found] ` <20031008172800.GI11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org> @ 2003-10-08 17:40 ` Nate Lawson [not found] ` <20031008103531.B10689-Y6VGUYTwhu0@public.gmane.org> 0 siblings, 1 reply; 8+ messages in thread From: Nate Lawson @ 2003-10-08 17:40 UTC (permalink / raw) To: Ducrot Bruno; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Wed, 8 Oct 2003, Ducrot Bruno wrote: > On Wed, Oct 08, 2003 at 09:55:35AM -0700, Nate Lawson wrote: > > On Wed, 8 Oct 2003, Ducrot Bruno wrote: > > > That more an hardware design issue due to how hotplug work in usb busses > > > in general, and it may need to be workaround, so if anybody haven't yet worked on > > > C-states on FreeBSD.. Please note also that Linux do not workaround that > > > btw. > > > > I have implemented C-states in freebsd, that's how I ran into this > > problem. I'll be committing the code once it's cleaned up a little. > > > > Since Linux always demotes to "don't enter a Cx state" if bm_sts indicates > > activity, are you saying that if you have a USB bus configured in Linux, > > you don't even use C1 (HLT)? > > What? If so, there is a bug somewhere since we should look at bm status only at > C2 (only if we have to go to C3) or C3 state. > Sound like you are right, btw. I have to look a little deeper. Thanks for pointing > this. This is from 2.5.74. If C3 is supported by the platform, unconditionally set flags.bm_check: else { pr->power.states[ACPI_STATE_C3].valid = 1; pr->power.states[ACPI_STATE_C3].latency_ticks = US_TO_PM_TIMER_TICKS(acpi_fadt.plvl3_lat); pr->flags.bm_check = 1; } In acpi_processor_idle(), if bm_check, read the bm_sts register and if it is non-zero, set next_state to be the demotion state but don't sleep this quantum. Instead, enable IRQs and stay active: if (pr->power.bm_activity & cx->demotion.threshold.bm) { local_irq_enable(); next_state = cx->demotion.state; goto end; } However, since this code is run every time acpi_processor_idle() is called, it will never enter even C2 if you have a bm_sts bit that is always 1. -Nate ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <20031008103531.B10689-Y6VGUYTwhu0@public.gmane.org>]
* Re: broken bm_sts on 82801CA? [not found] ` <20031008103531.B10689-Y6VGUYTwhu0@public.gmane.org> @ 2003-10-10 10:58 ` Ducrot Bruno [not found] ` <20031010105834.GM11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org> 0 siblings, 1 reply; 8+ messages in thread From: Ducrot Bruno @ 2003-10-10 10:58 UTC (permalink / raw) To: Nate Lawson; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Wed, Oct 08, 2003 at 10:40:21AM -0700, Nate Lawson wrote: > On Wed, 8 Oct 2003, Ducrot Bruno wrote: > > On Wed, Oct 08, 2003 at 09:55:35AM -0700, Nate Lawson wrote: > > > On Wed, 8 Oct 2003, Ducrot Bruno wrote: > > > > That more an hardware design issue due to how hotplug work in usb busses > > > > in general, and it may need to be workaround, so if anybody haven't yet worked on > > > > C-states on FreeBSD.. Please note also that Linux do not workaround that > > > > btw. > > > > > > I have implemented C-states in freebsd, that's how I ran into this > > > problem. I'll be committing the code once it's cleaned up a little. > > > > > > Since Linux always demotes to "don't enter a Cx state" if bm_sts indicates > > > activity, are you saying that if you have a USB bus configured in Linux, > > > you don't even use C1 (HLT)? > > > > What? If so, there is a bug somewhere since we should look at bm status only at > > C2 (only if we have to go to C3) or C3 state. > > Sound like you are right, btw. I have to look a little deeper. Thanks for pointing > > this. > > This is from 2.5.74. If C3 is supported by the platform, unconditionally > set flags.bm_check: > > else { > pr->power.states[ACPI_STATE_C3].valid = 1; > pr->power.states[ACPI_STATE_C3].latency_ticks = > US_TO_PM_TIMER_TICKS(acpi_fadt.plvl3_lat); > pr->flags.bm_check = 1; > } > > In acpi_processor_idle(), if bm_check, read the bm_sts register and if it > is non-zero, set next_state to be the demotion state but don't sleep this > quantum. Instead, enable IRQs and stay active: > > if (pr->power.bm_activity & cx->demotion.threshold.bm) { > local_irq_enable(); > next_state = cx->demotion.state; > goto end; > } > > However, since this code is run every time acpi_processor_idle() is > called, it will never enter even C2 if you have a bm_sts bit that is > always 1. > I checked a little bit more, but I think you are wrong because acpi_processor_power_activate(pr, next_state), with next_state == ACPI_STATE_C2, will be called after the end label, and since pr->power.states[ACPI_STATE_C2].demotion.threshold.bm is always 0 we do not go to the 'then' statement at the next run if we were at C3 state. -- Ducrot Bruno -- Which is worse: ignorance or apathy? -- Don't know. Don't care. ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <20031010105834.GM11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>]
* Re: broken bm_sts on 82801CA? [not found] ` <20031010105834.GM11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org> @ 2003-10-10 19:35 ` Nate Lawson 0 siblings, 0 replies; 8+ messages in thread From: Nate Lawson @ 2003-10-10 19:35 UTC (permalink / raw) To: Ducrot Bruno; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Fri, 10 Oct 2003, Ducrot Bruno wrote: > On Wed, Oct 08, 2003 at 10:40:21AM -0700, Nate Lawson wrote: > > However, since this code is run every time acpi_processor_idle() is > > called, it will never enter even C2 if you have a bm_sts bit that is > > always 1. > > I checked a little bit more, but I think you are wrong because > acpi_processor_power_activate(pr, next_state), with next_state == ACPI_STATE_C2, > will be called after the end label, > and since pr->power.states[ACPI_STATE_C2].demotion.threshold.bm > is always 0 we do not go to the 'then' statement at the next run if we > were at C3 state. Yes, I was incorrect. It should always go to C2. -Nate ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2003-10-10 19:35 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-10-07 6:38 broken bm_sts on 82801CA? Nate Lawson
[not found] ` <20031006233406.N4792-Y6VGUYTwhu0@public.gmane.org>
2003-10-07 8:55 ` Ducrot Bruno
[not found] ` <20031007085536.GB11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-10-07 18:10 ` Nate Lawson
[not found] ` <20031008123103.GG11391@poupinou.org>
[not found] ` <20031008123103.GG11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-10-08 16:55 ` Nate Lawson
[not found] ` <20031008095321.B10515-Y6VGUYTwhu0@public.gmane.org>
2003-10-08 17:28 ` Ducrot Bruno
[not found] ` <20031008172800.GI11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-10-08 17:40 ` Nate Lawson
[not found] ` <20031008103531.B10689-Y6VGUYTwhu0@public.gmane.org>
2003-10-10 10:58 ` Ducrot Bruno
[not found] ` <20031010105834.GM11391-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-10-10 19:35 ` Nate Lawson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox