From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ducrot Bruno Subject: Re: S5 Powerdown problem on TX150 servers Date: Tue, 16 Sep 2003 15:19:22 +0200 Sender: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Message-ID: <20030916131922.GT11391@poupinou.org> References: <200309160912.15060.adq_dvb@lidskialf.net> <20030916093032.GP11391@poupinou.org> <200309161209.35760.adq_dvb@lidskialf.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <200309161209.35760.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org> Errors-To: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Help: List-Post: List-Subscribe: , List-Unsubscribe: , List-Archive: To: Andrew de Quincey Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: linux-acpi@vger.kernel.org On Tue, Sep 16, 2003 at 12:09:35PM +0100, Andrew de Quincey wrote: > On Tuesday 16 September 2003 10:30, Ducrot Bruno wrote: > > On Tue, Sep 16, 2003 at 09:12:15AM +0100, Andrew de Quincey wrote: > > > Hi, I have an issue with TX150 servers. Basically, they don't power down > > > in ACPI. I press the power button, and I can see the system shutting > > > down, but, although it clears the screen and kinda makes a clunking noise > > > as if the HDDs are being stopped, the fans stay running, and the power > > > light stays on. > > > > > > I want the system to enter S5 when I press the power button. > > > > > > I added some debug to the hwsleep.c/acpi_enter_sleep_state() function. > > > The last thing it executes is: > > > > > > status = acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK, > > > ACPI_REGISTER_PM1B_CONTROL, PM1Bcontrol); > > > > > > <-- DOES NOT GET HERE on button press. > > > > > > if (ACPI_FAILURE (status)) { > > > return_ACPI_STATUS (status); > > > } > > > > > > Which kinda makes sense as this is the write of the PM1B value that > > > completes powerdown. > > > > No. The real stuff that will complete the powerdown is when you set > > SLP_EN. Try to remove the write to the PM1b. Anyway, we already clear > > ARB_DIS early. > > Ah, I realise I did not include enough context, sorry. > > This _is_ in the code which sets SLP_EN: > > /* Insert SLP_ENABLE bit */ > > PM1Acontrol |= sleep_enable_reg_info->access_bit_mask; > PM1Bcontrol |= sleep_enable_reg_info->access_bit_mask; > > /* Write #2: SLP_TYP + SLP_EN */ > > ACPI_FLUSH_CPU_CACHE (); > > status = acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK, > ACPI_REGISTER_PM1A_CONTROL, PM1Acontrol); > if (ACPI_FAILURE (status)) { > return_ACPI_STATUS (status); > } > > status = acpi_hw_register_write (ACPI_MTX_DO_NOT_LOCK, > ACPI_REGISTER_PM1B_CONTROL, PM1Bcontrol); > > <-- this is the point I highlighted before > > if (ACPI_FAILURE (status)) { > ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "X6failed\n")); > return_ACPI_STATUS (status); > } > > > In the light of this, is there anything you would like me to try? > > Ok. But trouble: you have at first write the desired sleep type, then set SLP_EN. Not the two at the same time. -- 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