From patchwork Thu Mar 7 14:01:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 10842951 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6905D1575 for ; Thu, 7 Mar 2019 14:02:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 544202F0A9 for ; Thu, 7 Mar 2019 14:02:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 529B42F0DD; Thu, 7 Mar 2019 14:02:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id DB6BF2F0F4 for ; Thu, 7 Mar 2019 14:02:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=GR1dEZRKolzjKeJyzlXCOttiuSxpn6GsGvFrkvNd73g=; b=TorMTc88d/QIuB W21vTnyG+PXn/9Kx/Dp9v50mejkjTpQOa4NsQN2JKomP8ohOMbNZt8zWcyrPbag9+tO56WbjoiP7T Rno4o/XIp6ozkNFE1lH7Mcp8cmNH/tyXOKh+k+0h6gPI2UJHnJHO0a7oIC2u/6RM2DY0PiGZ++QI3 mDJ/BG+467PlCpntaJ4nj0UNxpbA9mJW8PcJoorUBrLTtrQWWyWaKHVm0RaAoht+yqCAelki3nUoB xl7Wt5I/dRA+L8DfeIEF/A4nidBseytcBv7JDHC2Sm5s1erAlVIlTrwmjSKME98C/4kMpwd42iswW LmqV5J/l3JI1kF7WjJ6w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h1tb5-0004xO-LE; Thu, 07 Mar 2019 14:02:07 +0000 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h1tas-0004iU-6y for linux-arm-kernel@lists.infradead.org; Thu, 07 Mar 2019 14:01:56 +0000 Received: by mail-wm1-x343.google.com with SMTP id f65so9364849wma.2 for ; Thu, 07 Mar 2019 06:01:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=g3rdNZIUpTTqTQJmw0LRepuQplSBP1o3fYoThoCVA3M=; b=rxa6bD5c6GFjEdLxNCwqYuY9O4NG6H+mN7M+a2w8/tGIlq5TKqeCH8mXuEdLXZImdl Nhl7W13NZliJ53EJ6PSn4qZASZln+GrOGBRfGaS0ZaCV3TQ44meqNQRkOMF4iSi8dr83 UYST3ydvZjCQTXo3JcqimBDvV/2MvQWtH7Ykoq7de9WM+/x5F/Q6Q6vnbMD4Px1CFOV5 aTfmmstRM6UmZOFdI57YC1+7EflZBaPhJWHBqxoq342ceo1hY0BoDf4Sjff2W7ZeuaI+ cvTnsTNA+bYaf5vJYA8itX23+o41/a0hA4yTTG/uZV/uFm6ly2Z2Qd48Pe3l1ivKJdTv W+jg== 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:mime-version:content-transfer-encoding; bh=g3rdNZIUpTTqTQJmw0LRepuQplSBP1o3fYoThoCVA3M=; b=B94YDShjxCA2qHcprUJrvl73o6bm3rnBgthH5JR8vEUfaUB3ChKoPQz7/PtDzSq3nC Bqdgelx1zllWwytPJFrUf8IX2tHOcje+r6fbKut4ChJQH1YbHeuLBFW9prJxlz/pTvfR jrKfEFyxTKmAQkBdD0+eDLJOok8TAMklkPBjm20N/k5FLTlSApsnvWpRxaFX1246URKI BZ2c6A37/zT9B2eSjkFTUCz6SE/W+nQNp4ensxh8TqoyqVxA0nSWcboORd6OQ/gNCf1w 0c8eH4X0OnObOEPBujZWb002hiIsooyOrzSoR1M+xLoCziTON8U40iunU+2qFgONCBKK 3GtA== X-Gm-Message-State: APjAAAU2WT0mGydFeXqBXrUgnJ22LHzNmCpwxgk9lazrNgeCaUwAXfU2 0rCmk+0lpCzfvlZbtbqVHlRvOg== X-Google-Smtp-Source: APXvYqwRpHCIfpy2qJgoYVP7dQg+PL/MgGagjqmeJAQOcGP7JdgMqTH2B0dMt/lRHi+DoI90rHPykA== X-Received: by 2002:a1c:f707:: with SMTP id v7mr5848642wmh.109.1551967312309; Thu, 07 Mar 2019 06:01:52 -0800 (PST) Received: from bender.baylibre.local (lmontsouris-657-1-212-31.w90-63.abo.wanadoo.fr. [90.63.244.31]) by smtp.gmail.com with ESMTPSA id h137sm9892098wmg.41.2019.03.07.06.01.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 07 Mar 2019 06:01:51 -0800 (PST) From: Neil Armstrong To: khilman@baylibre.com Subject: [PATCH v2 1/3] soc: amlogic: gx-socinfo: Add mask for each SoC packages Date: Thu, 7 Mar 2019 15:01:45 +0100 Message-Id: <20190307140147.22047-2-narmstrong@baylibre.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190307140147.22047-1-narmstrong@baylibre.com> References: <20190307140147.22047-1-narmstrong@baylibre.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190307_060154_259670_70403280 X-CRM114-Status: GOOD ( 16.31 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Neil Armstrong Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP When updated IDs on f842c41adc04 ("amlogic: meson-gx-socinfo: Update soc ids") we introduced packages ids using the full 8bit value, but in the function socinfo_to_package_id() the id was filtered with the 0xf0 mask. While the 0xf0 mask is valid for most board, it filters out the lower 4 bits which encodes some characteristics of the chip. This patch moves the mask into the meson_gx_package_id table to be applied on each package name independently and add the correct mask for some specific entries. An example is the S905, in the vendor code the S905 is package_id different from 0x20, and S905M is exactly 0x20. Another example are the The Wetek Hub & Play2 boards using a S905-H variant, which is the S905 SoC with some licence bits enabled. These licence bits are encoded in the lower 4bits, so to detect the -H variant, we must detect the id == 0x3 with the 0xf mask. Fixes: f842c41adc04 ("amlogic: meson-gx-socinfo: Update soc ids") Signed-off-by: Neil Armstrong --- drivers/soc/amlogic/meson-gx-socinfo.c | 32 ++++++++++++++------------ 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/drivers/soc/amlogic/meson-gx-socinfo.c b/drivers/soc/amlogic/meson-gx-socinfo.c index 37ea0a1c24c8..1ae339f5eadb 100644 --- a/drivers/soc/amlogic/meson-gx-socinfo.c +++ b/drivers/soc/amlogic/meson-gx-socinfo.c @@ -43,20 +43,21 @@ static const struct meson_gx_package_id { const char *name; unsigned int major_id; unsigned int pack_id; + unsigned int pack_mask; } soc_packages[] = { - { "S905", 0x1f, 0 }, - { "S905H", 0x1f, 0x13 }, - { "S905M", 0x1f, 0x20 }, - { "S905D", 0x21, 0 }, - { "S905X", 0x21, 0x80 }, - { "S905W", 0x21, 0xa0 }, - { "S905L", 0x21, 0xc0 }, - { "S905M2", 0x21, 0xe0 }, - { "S912", 0x22, 0 }, - { "962X", 0x24, 0x10 }, - { "962E", 0x24, 0x20 }, - { "A113X", 0x25, 0x37 }, - { "A113D", 0x25, 0x22 }, + { "S905", 0x1f, 0, 0x20 }, /* pack_id != 0x20 */ + { "S905H", 0x1f, 0x3, 0xf }, /* pack_id & 0xf == 0x3 */ + { "S905M", 0x1f, 0x20, 0xf0 }, /* pack_id == 0x20 */ + { "S905D", 0x21, 0, 0xf0 }, + { "S905X", 0x21, 0x80, 0xf0 }, + { "S905W", 0x21, 0xa0, 0xf0 }, + { "S905L", 0x21, 0xc0, 0xf0 }, + { "S905M2", 0x21, 0xe0, 0xf0 }, + { "S912", 0x22, 0, 0x0 }, /* Only S912 is known for GXM */ + { "962X", 0x24, 0x10, 0xf0 }, + { "962E", 0x24, 0x20, 0xf0 }, + { "A113X", 0x25, 0x37, 0xff }, + { "A113D", 0x25, 0x22, 0xff }, }; static inline unsigned int socinfo_to_major(u32 socinfo) @@ -81,13 +82,14 @@ static inline unsigned int socinfo_to_misc(u32 socinfo) static const char *socinfo_to_package_id(u32 socinfo) { - unsigned int pack = socinfo_to_pack(socinfo) & 0xf0; + unsigned int pack = socinfo_to_pack(socinfo); unsigned int major = socinfo_to_major(socinfo); int i; for (i = 0 ; i < ARRAY_SIZE(soc_packages) ; ++i) { if (soc_packages[i].major_id == major && - soc_packages[i].pack_id == pack) + soc_packages[i].pack_id == + (pack & soc_packages[i].pack_mask)) return soc_packages[i].name; }