From patchwork Thu Nov 2 01:04:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 10037841 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 8B697603B5 for ; Thu, 2 Nov 2017 01:07:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 81AC228C15 for ; Thu, 2 Nov 2017 01:07:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 768BA28C63; Thu, 2 Nov 2017 01:07:53 +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=-4.2 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.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 F0D9B28C15 for ; Thu, 2 Nov 2017 01:07:52 +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:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: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=mkR6HamwTeaTrJLxYKMkv9hqYUIjpLeSfJVB1knJKfk=; b=CvthY03FikQt6D5n0z2C39XJvt VFOjBXYVIMSUDtRnL0Hh/4HoWVI8hMO/nSsp3HLZWQGOq4r2oJvf5BytshYqGpJW2J/cIEiIi0SUE xTwzRqnoeRXAddGi4AAnzDg9MevyWS7F2QdKsGqP4vX2HPwjHkmTqWSEMvE3q5v08uE0N+gWbY58Z 4qEMvmsK3CuIUgvtsCrq2y5Din9MloQH3CYS7Ac9F8ETuwjbqlvxWZcVibXa8+2zeWX3tTNWvW+Qa 7eKw9C198gtLWPelNTc+WK7RpSCzKr66EJo3G+h5PlSGRPBYF4KEZAVtbuGar8hY9QmUS/ikckBKB fioIWtpA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1eA3z5-0005qu-U1; Thu, 02 Nov 2017 01:07:51 +0000 Received: from mail-pg0-x243.google.com ([2607:f8b0:400e:c05::243]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1eA3wE-0001WA-91; Thu, 02 Nov 2017 01:05:00 +0000 Received: by mail-pg0-x243.google.com with SMTP id s2so3574174pge.10; Wed, 01 Nov 2017 18:04:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=rk07Yo72ueNJY2GwG6w5hzU7IDYkH3hDv2wQLdofgNQ=; b=eGqcH/HXndUjrBh7VltGsvp97IRQSM35ME8DntB91S6W+GUdiOjTkdmPaZFncCm/zA nK0OXOw+ZUnOWZ5HGZBVm7t+MbirF/WE69WKOAnoxf3UJzPVeMIAcY6yb3Br2Z7ZxWp9 K8EsXNL2pJYfph55YRvBpRdwL2v/K0zSRtCveknvkPypkV83bkVDORoIjqrd88ljsdpx AXReOralDE647+23RwtvFuSc7mxqhKPWqBTl0G/UGGHyRro2Imk7yt+S4KiyBwh7cyzO ub9thpsGvNWQARFfGR+LNe03fAyt/o9yc0lIFyEOVGwZIOIen7PjrW7Iz+Yso2i76YV3 tT8A== 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=rk07Yo72ueNJY2GwG6w5hzU7IDYkH3hDv2wQLdofgNQ=; b=MAHbEXPOPct2YvSlNUikXJD5MJPM7uzch4BnZjZytlNaCwqlVXQdWrAJZgKLJv4FPd MMXK7rwYTyFeiJOTqP/RHefc30LSc0lIeyj4VptbgAZXyKRKYyPZrLrNq+k5M4CAjK9u eLAE177mUR1beB3qv7++UJySNRyGce4ZmHqf/U7SW5qjmVLeUFkM3d3hYf5HBugSNt7h MDmQ1GdGpSo32BQ3lpaAerGPKyDbjGMwWP3ziyXP0Hu4Y+++nap6bFTfv8RRIZvkd9zI hueGeu9dS2KLsXXZtg0LkbrYiwi2iAg80+A2TBVHKu+I1vqkl4YN7NTPOy2DH2lBvb+e tfdg== X-Gm-Message-State: AMCzsaVpTJ2ihzpiAWPqQYMhNapH+ON17NHBIN8BFydDVH9deGVkCQu6 RQWkxRfmb6YZb/nBfWJcI/I= X-Google-Smtp-Source: ABhQp+TRpDYPXvrxA5Lp50pPnPgZzzo3blgs0lCbLcU/Bb/M+/SesUjJZBmqfcB5w8hF5TZsebUDXA== X-Received: by 10.84.132.42 with SMTP id 39mr1394431ple.382.1509584676443; Wed, 01 Nov 2017 18:04:36 -0700 (PDT) Received: from fainelli-desktop.broadcom.com ([192.19.255.250]) by smtp.gmail.com with ESMTPSA id x19sm3032339pgc.60.2017.11.01.18.04.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 01 Nov 2017 18:04:35 -0700 (PDT) From: Florian Fainelli To: linux-kernel@vger.kernel.org Subject: [PATCH 09/12] hwrng: bcm2835-rng: Add Broadcom MIPS I/O accessors Date: Wed, 1 Nov 2017 18:04:05 -0700 Message-Id: <20171102010408.27736-10-f.fainelli@gmail.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20171102010408.27736-1-f.fainelli@gmail.com> References: <20171102010408.27736-1-f.fainelli@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20171101_180454_714378_941470BD X-CRM114-Status: GOOD ( 10.77 ) 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: Mark Rutland , Stefan Wahren , Florian Fainelli , Martin Kaiser , Herbert Xu , Scott Branden , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Ray Jui , PrasannaKumar Muralidharan , Harald Freudenberger , Krzysztof Kozlowski , Eric Anholt , Russell King , Rob Herring , "maintainer:BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITE..." , "open list:HARDWARE RANDOM NUMBER GENERATOR CORE" , Sean Wang , Matt Mackall , Steffen Trumtrar , "moderated list:BROADCOM BCM2835 ARM ARCHITECTURE" , "moderated list:BROADCOM BCM2835 ARM ARCHITECTURE" MIME-Version: 1.0 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 Broadcom MIPS HW is always strapped to match the system-wide endian such that all I/O access to this RNG block is done with the native CPU endian, account for that. Signed-off-by: Florian Fainelli --- drivers/char/hw_random/bcm2835-rng.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/char/hw_random/bcm2835-rng.c b/drivers/char/hw_random/bcm2835-rng.c index 500275d55044..650e0033c273 100644 --- a/drivers/char/hw_random/bcm2835-rng.c +++ b/drivers/char/hw_random/bcm2835-rng.c @@ -44,13 +44,22 @@ static inline struct bcm2835_rng_priv *to_rng_priv(struct hwrng *rng) static inline u32 rng_readl(struct bcm2835_rng_priv *priv, u32 offset) { - return readl(priv->base + offset); + /* MIPS chips strapped for BE will automagically configure the + * peripheral registers for CPU-native byte order. + */ + if (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN)) + return __raw_readl(priv->base + offset); + else + return readl(priv->base + offset); } static inline void rng_writel(struct bcm2835_rng_priv *priv, u32 val, u32 offset) { - writel(val, priv->base + offset); + if (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN)) + __raw_writel(val, priv->base + offset); + else + writel(val, priv->base + offset); } static int bcm2835_rng_read(struct hwrng *rng, void *buf, size_t max,