Received: by 10.213.65.68 with SMTP id h4csp673278imn; Tue, 13 Mar 2018 17:38:57 -0700 (PDT) X-Google-Smtp-Source: AG47ELs/CD0vSIkb8WxpFvp7BxCHQzd7qmsuxAPwr2gn7w7O/JcZisY/pFe06TaAOJmsHhPPqLR1 X-Received: by 10.99.168.75 with SMTP id i11mr2011644pgp.420.1520987937647; Tue, 13 Mar 2018 17:38:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1520987937; cv=none; d=google.com; s=arc-20160816; b=dHxTLYK9yBSaOEmDy30vj2pcnh5lvWwNZAiMPzARmKGq/iCRJ1wzTmHyTwegHSCfHN KqXz5gs4m+14ieRDAU/ilv5MCSDe9BB3ze2cSvYd/+0n1OckMn7YrFK5ja59mOY3Tujr rY9jB2O1FVLSbA+V6rcMhKGzhmh8jtfpmgH1ymAsksa2ahbur+EEZSmmQLfof/mIpiW1 zPA8ll6NKrQh1U+lrIKmhPX8ec+WCT0BELqDA4i/Ny7jM31WhojWekd3dIRN0cdXwHlP ZgWMKKI+yqenl1z9qehFHK6Fi95tersAFRONTI4PXDROzSXhEtQ9+G23cRA5DbmAd2Ay csfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:references:in-reply-to:message-id:date :subject:cc:from:dkim-signature:arc-authentication-results; bh=I85U+HURTmxCyh8CRn0vGmQsEPypq3VBDxZERYxAmzU=; b=b5mJVqORC3WKFC8Y0QGMDw54Lrf9PzbXvo4uhDuPBCgX59yb0YH4j3yoojMC7wAjGY DP2kbtsNZ0JuLBBZCb8jNipMy8qXKnDdfXSPdOmvO5t8G4jjfHW5lkKnSdAbRnbhbGe5 GNiEbg8kNyyBMwfL84XxhOwdlSK++t+CLBoSJIyCCyuVzCvbvdQHVNtDiLheasJnaMhv UC9Jbg6Z8cGUNzrzxK5kEngDfq+eTu3PAysYBXRyOCTbjfvQ9vRXq1SEVv7JMkSdiW7e TBGT8oSC59lXBnNTmbzfsm3nP5gVsc6m2Hastf5ETunYRGnUd3sbaEdbIoAqo6rOMGvy AaUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@chromium.org header.s=google header.b=gM8vmz6r; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f71si1077789pfe.158.2018.03.13.17.38.43; Tue, 13 Mar 2018 17:38:57 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@chromium.org header.s=google header.b=gM8vmz6r; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933111AbeCNAha (ORCPT + 99 others); Tue, 13 Mar 2018 20:37:30 -0400 Received: from mail-it0-f66.google.com ([209.85.214.66]:36350 "EHLO mail-it0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932840AbeCNAhD (ORCPT ); Tue, 13 Mar 2018 20:37:03 -0400 Received: by mail-it0-f66.google.com with SMTP id u5-v6so2528026itc.1 for ; Tue, 13 Mar 2018 17:37:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=I85U+HURTmxCyh8CRn0vGmQsEPypq3VBDxZERYxAmzU=; b=gM8vmz6rAkJuGaKw9cVUbrNfT6Yku1rw1k7Ruk8fufWXQypti1H7YWrksB+I2HlU+l BTXmfuStUb2g+OxIXfIhGv03OihTNf1e6bHGVvEXtQLKQ1YDWDsDTLJOYKusKNibFqPx +lMD2aBl9lqskf7GFjsIsv9975+wU7j3WatVQ= 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=I85U+HURTmxCyh8CRn0vGmQsEPypq3VBDxZERYxAmzU=; b=TLcVUcDQICU2nkcCsIJTSQmJCm3Ot0V4f6JNTzeh2MueVwGYxIEsKbmCXaRvzAxYEU U0bvqipv0deBWDyQgbhZhf44Tpt4nIDjb8F9E+kvNW5P9d0qNih/H50VDK9z12SGIKiJ 4H1dneONiYMkph7hBbx2nHJB9iDChp5sj7g96loRyEV/OX9t+wC+fN6ZD0zMizUAEtvG ckFv1x9eNpi2Q63oIe25mdSkdODQChZO5LrzFGGQEED4uL02AuKKRhn4ZU/hb6/tkKLT X59Powo+kBxafKxnRj9I6XSshbmKyGvaOTHnm4JJ78kZ0nVlxhGn+sZj/4G6N/Kjn7aG Oh+g== X-Gm-Message-State: AElRT7Gjxgb5QRMD8/AKXHVz9525R1MLE+7IjCrOCz9YtjjQRs7soaE2 OiELEHqinGX+gFkR/6LXcOMcAg== X-Received: by 2002:a24:d8c3:: with SMTP id b186-v6mr76108itg.86.1520987822475; Tue, 13 Mar 2018 17:37:02 -0700 (PDT) Received: from djkurtz2.bld.corp.google.com ([2620:15c:183:0:1cfd:61a5:7215:5f9c]) by smtp.gmail.com with ESMTPSA id c1-v6sm23441iti.20.2018.03.13.17.37.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Mar 2018 17:37:02 -0700 (PDT) From: Daniel Kurtz Cc: adurbin@chromium.org, Daniel Kurtz , "Rafael J. Wysocki" , Len Brown , linux-acpi@vger.kernel.org (open list:ACPI), linux-kernel@vger.kernel.org (open list) Subject: [PATCH 2/3] ACPI: SPCR: Add support for AMD CT/SZ Date: Tue, 13 Mar 2018 18:36:54 -0600 Message-Id: <20180314003655.12141-3-djkurtz@chromium.org> X-Mailer: git-send-email 2.16.2.804.g6dcf76e118-goog In-Reply-To: <20180314003655.12141-1-djkurtz@chromium.org> References: <20180314003655.12141-1-djkurtz@chromium.org> To: unlisted-recipients:; (no To-header on input) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org AMD Carrizo / Stoneyridge use a DesignWare 8250 UART that uses a special earlycon setup handler to configure its input clock in order to compute baud rate divisor registers. Detect them by examining the OEMID field in the SPCR header, and pass then pass uart type amdcz to earlycon. Signed-off-by: Daniel Kurtz --- drivers/acpi/spcr.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/acpi/spcr.c b/drivers/acpi/spcr.c index 9d52743080a4..52d840d0e05b 100644 --- a/drivers/acpi/spcr.c +++ b/drivers/acpi/spcr.c @@ -73,6 +73,24 @@ static bool xgene_8250_erratum_present(struct acpi_table_spcr *tb) return xgene_8250; } +/* + * AMD Carrizo / Stoneyridge use a DesignWare 8250 UART that uses a special + * earlycon setup handler to configure its input clock in order to compute + * baud rate divisor registers. + * Detect them by examining the OEM fields in the SPCR header. + */ +static bool amdcz_present(struct acpi_table_spcr *tb) +{ + if (memcmp(tb->header.oem_id, "AMDCZ ", ACPI_OEM_ID_SIZE)) + return false; + + if (memcmp(tb->header.oem_table_id, "AMDCZ ", + ACPI_OEM_TABLE_ID_SIZE)) + return false; + + return true; +} + /** * acpi_parse_spcr() - parse ACPI SPCR table and add preferred console * @@ -189,6 +207,11 @@ int __init acpi_parse_spcr(bool enable_earlycon, bool enable_console) uart = "qdf2400_e44"; } + if (amdcz_present(table)) { + if (enable_earlycon) + uart = "amdcz"; + } + if (xgene_8250_erratum_present(table)) { iotype = "mmio32"; -- 2.16.2.804.g6dcf76e118-goog