All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrey Skvortsov <andrej.skvortzov@gmail.com>
To: "Zheng, Lv" <lv.zheng@intel.com>
Cc: "Moore, Robert" <robert.moore@intel.com>,
	"Wysocki, Rafael J" <rafael.j.wysocki@intel.com>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"devel@acpica.org" <devel@acpica.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: acpi: broken suspend to RAM with v4.7-rc1
Date: Sat, 25 Jun 2016 00:32:35 +0300	[thread overview]
Message-ID: <20160624213235.GA8304@nest> (raw)
In-Reply-To: <1AE640813FDE7649BE1B193DEA596E883BBF7E94@SHSMSX101.ccr.corp.intel.com>

[-- Attachment #1: Type: text/plain, Size: 5427 bytes --]

On 24 Jun, Zheng, Lv wrote:
> Hi,
> 
> > From: Andrey Skvortsov [mailto:andrej.skvortzov@gmail.com]
> > Subject: Re: acpi: broken suspend to RAM with v4.7-rc1
> > 
> > Hi Lv,
> > 
> > On 13 Jun, Zheng, Lv wrote:
> > > > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> > > > owner@vger.kernel.org] On Behalf Of Rafael J. Wysocki
> > > > Subject: Re: acpi: broken suspend to RAM with v4.7-rc1
> > > >
> > > > On Saturday, June 11, 2016 01:49:22 PM Andrey Skvortsov wrote:
> > > > > On 10 Jun, Rafael J. Wysocki wrote:
> > > > > > On Friday, June 10, 2016 11:32:10 PM Andrey Skvortsov wrote:
> > > > > > > Hi,
> > > > > > >
> > > > > > > On my laptop (DELL Vostro 1500) in v4.7-rc1 is broken suspend
> > to RAM.
> > > > > > > Laptop doesn't finish suspend to RAM process (disks are off, but
> > > > > > > WiFi and Power LEDs are still on). The only way to get it out of
> > > > > > > this state, is to turn the power off.
> > > > > > >
> > > > > > > I've bisected the issue to commit 66b1ed5aa8dd25
> > > > > > > [ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset
> > support
> > > > > > > for acpi_hw_write()].
> > > > > > >
> > > > > > > If I revert this commit in v4.7-rc1 (or v4.7-rc2), suspend to RAM
> > > > > > > is working again.
> > > > > > >
> > > > > > > The cause of this problem is that after this commit write to
> > PM1A
> > > > > > > Control Block (16-bit register) is done using two 8-bit writes.
> > > > > > > If I force this write to be 16-bit, then all is working as before.
> > > > > > >
> > > > > > > To get it working 'access_width' for PM1A Control Block needs to
> > > > > > > be 2 (16-bit), but it's 1 (8-bit).
> > > [Lv Zheng]
> > > Could you send me the acpidump of the machine?
> > Here it is
> > https://dl.dropboxusercontent.com/u/24023626/dell_vostro_1500.acpid
> > ump.bin
> [Lv Zheng] 
> I've been trying to download it these days but all failed.
> Could you send an off-list email to me with this attached?
Strange. I've check now. The link above is working, but I see that
part of the link above is moved to the next line.
Anyway I resend you all files off-list.


> > > > > > > The root of the problem seems to be not the commit
> > > > 66b1ed5aa8dd25
> > > > > > > itself, but the ACPI tables in BIOS where wrong access_width
> > > > > > > comes from. I fixed problem in FACP  table, put it in initrd to
> > > > > > > override FACP table from BIOS. This fixed the issue, suspend to
> > > > > > > RAM is working now again.
> > > > > > >
> > > > > > > But I'm not sure whether is this proper fix for this problem.
> > > > > > > Is there any place in the kernel, where such ACPI quirks are placed?
> > > [Lv Zheng]
> > > My question would be:
> > > Does Windows behave correctly for this table?
> > Yes, suspend to RAM is working under Windows Vista.
> > IIRC it worked under Windows XP too.
> > 
> > > However there is a real case showing that there are real tables need us to
> > correctly support BitWidth/BitOffset.
> > > Here is the information for you to refer:
> > > http://permalink.gmane.org/gmane.linux.kernel.commits.head/313870
> > >
> > > > > >
> > > > > > Well, if the commit in question caused a problem to happen for
> > you,
> > > > > > it also might cause similar problems to happen elsewhere.
> > > > > >
> > > > > > It looks like we'll need to revert that commit.
> > > > > Hi,
> > > > >
> > > > > or maybe to reset access_width AnyAcc from FACP table only for
> > PM1A
> > > > > control register or even for all registers? This will fix the issue too.
> > > >
> > > > That's a good idea actually.
> > > >
> > > > > diff --git a/drivers/acpi/acpica/tbfadt.c
> > > > > b/drivers/acpi/acpica/tbfadt.c index 6208069..a476e94 100644
> > > > > --- a/drivers/acpi/acpica/tbfadt.c
> > > > > +++ b/drivers/acpi/acpica/tbfadt.c
> > > > > @@ -714,7 +714,14 @@ static void
> > acpi_tb_setup_fadt_registers(void)
> > > > >                         }
> > > > >                 }
> > > > >         }
> > > > >
> > > > > +       /*
> > > > > +        * Reset access_width in the GAS for PM1A control register to
> > > > > +        * undefined value. Because in some cases this field contains
> > > > > +        * wrong value.
> > > > > +        */
> > > > > +       acpi_gbl_FADT.xpm1a_control_block.access_width = 0;
> > > >
> > > > OK, let's see what Bob and Lv think about that.
> > > [Lv Zheng]
> > > There is a commit in 4.7-rc2:
> > >
> > https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=
> > 7f9bef9d
> > > Have you tried if the problem still exists in 4.7-rc2?
> > I've just tried v4.7-rc3. It contains commit 7f9bef9d and the problem
> > exists there too.
> [Lv Zheng] 
> IMO, for the time being, you can use quirks.
> Booting your kernel with the following parameters:
> 
> acpi=rsdt
> Or
> acpi_force_32bit_fadt_addr
> Or
> Both

Rafael reverted commit, so I'm ok now.

Actually acpi_force_32bit_fadt_addr will not help here, because it's take
effect only if address64 != address32. But here these addresses are
the same, therefore access_width is taken from extended address.

http://lxr.free-electrons.com/source/drivers/acpi/acpica/tbfadt.c#L576


acpi=rsdt helps. Thanks for the information about this option. I
missed it, when I read documentation.



-- 
Best regards,
Andrey Skvortsov



[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

  reply	other threads:[~2016-06-24 21:32 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-10 20:32 acpi: broken suspend to RAM with v4.7-rc1 Andrey Skvortsov
2016-06-10 21:24 ` Rafael J. Wysocki
2016-06-11 10:49   ` Andrey Skvortsov
2016-06-11 11:56     ` Rafael J. Wysocki
2016-06-11 11:56       ` Rafael J. Wysocki
     [not found]       ` <744357E9AAD1214791ACBA4B0B9092633AA54819@SHSMSX101.ccr.corp.intel.com>
2016-06-13  8:50         ` Zheng, Lv
2016-06-13  8:50           ` [Devel] " Zheng, Lv
2016-06-13 10:07           ` Andrey Skvortsov
2016-06-15  0:24             ` Rafael J. Wysocki
2016-06-15  6:05               ` Zheng, Lv
2016-06-15  6:05                 ` [Devel] " Zheng, Lv
2016-06-15 20:02                 ` Andrey Skvortsov
2016-06-24  1:02             ` Zheng, Lv
2016-06-24  1:02               ` [Devel] " Zheng, Lv
2016-06-24 21:32               ` Andrey Skvortsov [this message]
2016-06-27  1:17                 ` Zheng, Lv
2016-06-27  1:17                   ` [Devel] " Zheng, Lv
2016-06-27  8:49                   ` Andrey Skvortsov
2016-06-28  5:10                     ` Zheng, Lv
2016-06-28  5:10                       ` [Devel] " Zheng, Lv
2016-08-05  1:06                 ` Zheng, Lv
2016-08-05  1:06                   ` [Devel] " Zheng, Lv
2016-08-10 17:51                   ` Andrey Skvortsov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160624213235.GA8304@nest \
    --to=andrej.skvortzov@gmail.com \
    --cc=devel@acpica.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lv.zheng@intel.com \
    --cc=rafael.j.wysocki@intel.com \
    --cc=robert.moore@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.