Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1680596
| Path | csiph.com!aioe.org!bofh.it!news.nic.it!robomod |
|---|---|
| From | Loc Ho <lho@apm.com> |
| Newsgroups | linux.kernel |
| Subject | [PATCH v2 1/2] ACPI: SPCR: Use access width to determine mmio usage |
| Date | Mon, 03 Jul 2017 23:40:01 +0200 |
| Message-ID | <tZhex-7h6-9@gated-at.bofh.it> (permalink) |
| References | <tZhex-7h6-5@gated-at.bofh.it> |
| Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=apm.com; s=apm; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=MFn/hC8G60NDcCYYwObhNTu3xVviwJqXoUKPXobH+UU=; b=GhqCRS1PWshLc8rDeOYa0C1p7SWW/QaXtPyS0yxtzzi06gEaMyUypRccQvKc2FqDGL j8OgEc7iGOLaLEUPPmDAnbgKCqe0Kt5A3Tp0jF4HoQuBHb8RIl4KnSkooPtdMC0bCPFM rZBZAzYlBTr2u8JV0JCEBkRZfNEaBBNANQrIw= |
| X-Google-Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=MFn/hC8G60NDcCYYwObhNTu3xVviwJqXoUKPXobH+UU=; b=fWdmoSt0rEL1ZPUxVCA+dlP0ELSPv8KVXMLKltcZONiB62cZ3mAN5NH1fwDN7NPVAq UGafya5T9t42tno4Cm204b7f4qaqV1kWQx1XZNk7lotNVzUHpU4up5rDwdtjjIgILJLb xQLZTYmMC+dkznufz1mDU04idFOCX0Z8nqydyRsnw7e0EV1mkd0jesAb9UZHwg9UNd1X N54Nr96+PiKZhDiqgeFJThzk+MimYxosmy0IyzcUlaN05FtCbdpKCxpXppDqY6UTovgO TZMGMT9NKhURVqS1F5+yarP/H5xM2aOHEzGnTEG3iSt65GPiIDpzpXWqVDTbbfS/I7Jh hp2g== |
| X-Gm-Message-State | AIVw110EzRwePBS5+Hz5ajkgRMIqd0ZWjNoY1sADjnjYCnzGjpdQ5YQj i61kx3jZI4dSCaCE |
| X-Received | by 10.84.218.5 with SMTP id q5mr12776553pli.295.1499117592936; Mon, 03 Jul 2017 14:33:12 -0700 (PDT) |
| X-Mailer | git-send-email 1.8.3.1 |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 64 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | jcm@redhat.com, rjw@rjwysocki.net, lenb@kernel.org, robert.moore@intel.com, lv.zheng@intel.com, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, devel@acpica.org, bcm-kernel-feedback-list@broadcom.com, aleksey.makarov@linaro.org, gregkh@linuxfoundation.org, patches@apm.com, Loc Ho <lho@apm.com> |
| X-Original-Date | Mon, 3 Jul 2017 14:33:08 -0700 |
| X-Original-Message-ID | <1499117589-4829-2-git-send-email-lho@apm.com> |
| X-Original-References | <1499117589-4829-1-git-send-email-lho@apm.com> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1680596 |
Show key headers only | View raw
The current SPCR code does not check the access width of the mmio, and
uses a default of 8bit register accesses. This prevents devices that
only do 16 or 32bit register accesses from working. By simply checking
this field and setting the mmio string appropriately, this issue can be
corrected. To prevent any legacy issues, the code will default to 8bit
accesses if the value is anything but 16 or 32.
Signed-off-by: Loc Ho <lho@apm.com>
[Re-send as single patch set]
Signed-off-by: Jon Mason <jon.mason@broadcom.com>
---
drivers/acpi/spcr.c | 18 ++++++++++++++++--
include/acpi/acrestyp.h | 7 +++++++
2 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/drivers/acpi/spcr.c b/drivers/acpi/spcr.c
index 3afa8c1..2905063 100644
--- a/drivers/acpi/spcr.c
+++ b/drivers/acpi/spcr.c
@@ -74,8 +74,22 @@ int __init parse_spcr(bool earlycon)
goto done;
}
- iotype = table->serial_port.space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY ?
- "mmio" : "io";
+ if (table->serial_port.space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY) {
+ switch (table->serial_port.access_width) {
+ default:
+ pr_err("Unexpected SPCR Access Width. Defaulting to byte size\n");
+ case ACPI_ACCESS_SIZE_BYTE:
+ iotype = "mmio";
+ break;
+ case ACPI_ACCESS_SIZE_WORD:
+ iotype = "mmio16";
+ break;
+ case ACPI_ACCESS_SIZE_DWORD:
+ iotype = "mmio32";
+ break;
+ }
+ } else
+ iotype = "io";
switch (table->interface_type) {
case ACPI_DBG2_ARM_SBSA_32BIT:
diff --git a/include/acpi/acrestyp.h b/include/acpi/acrestyp.h
index f0f7403..781cb55 100644
--- a/include/acpi/acrestyp.h
+++ b/include/acpi/acrestyp.h
@@ -372,6 +372,13 @@ struct acpi_resource_generic_register {
u64 address;
};
+/* Generic Address Space Access Sizes */
+#define ACPI_ACCESS_SIZE_UNDEFINED 0
+#define ACPI_ACCESS_SIZE_BYTE 1
+#define ACPI_ACCESS_SIZE_WORD 2
+#define ACPI_ACCESS_SIZE_DWORD 3
+#define ACPI_ACCESS_SIZE_QWORD 4
+
struct acpi_resource_gpio {
u8 revision_id;
u8 connection_type;
--
1.8.3.1
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
[PATCH v2 1/2] ACPI: SPCR: Use access width to determine mmio usage Loc Ho <lho@apm.com> - 2017-07-03 23:40 +0200
Re: [PATCH v2 1/2] ACPI: SPCR: Use access width to determine mmio usage "Rafael J. Wysocki" <rafael@kernel.org> - 2017-07-03 23:50 +0200
Re: [PATCH v2 1/2] ACPI: SPCR: Use access width to determine mmio usage Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-07-04 09:30 +0200
csiph-web