Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752133AbcCaGXq (ORCPT ); Thu, 31 Mar 2016 02:23:46 -0400 Received: from mail-oi0-f68.google.com ([209.85.218.68]:35494 "EHLO mail-oi0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751105AbcCaGXp (ORCPT ); Thu, 31 Mar 2016 02:23:45 -0400 MIME-Version: 1.0 In-Reply-To: References: <1459280515-1006-1-git-send-email-broonie@kernel.org> <1459280515-1006-2-git-send-email-broonie@kernel.org> Date: Thu, 31 Mar 2016 15:23:44 +0900 X-Google-Sender-Auth: WygIXD_VMqS0rVSN3c0z_aWRdF8 Message-ID: Subject: Re: [PATCH 2/2] regmap: mmio: Parse endianness definitions from DT From: Krzysztof Kozlowski To: Mark Brown Cc: Alexander Stein , linux-kernel@vger.kernel.org Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1375 Lines: 35 On Thu, Mar 31, 2016 at 3:09 PM, Krzysztof Kozlowski wrote: > On Wed, Mar 30, 2016 at 4:41 AM, Mark Brown wrote: >> Since we changed to do formatting in the bus we now skip all the format >> parsing that the core does for its data marshalling code. This means >> that we skip the DT parsing it does which breaks some systems, we need >> to add an explict call in the MMIO code to do this. >> >> Reported-by: Alexander Stein >> Signed-off-by: Mark Brown > > This breaks my syscon reboot handler (Exynos4412, Trats2): > ############### > -sh-4.1# reboot > Rebooting. > [ 37.056210] reboot: Restarting system > [ 38.058649] Unable to restart system > [ 39.060987] Reboot failed -- System halted > ############### > > I added a printk before switch and: > config->val_format_endian: REGMAP_ENDIAN_DEFAULT > regmap_get_val_endian(): REGMAP_ENDIAN_BIG, > ... and the big-endian is coming from the last return in regmap_get_val_endian() (/* Use this if no other value was found */). I don't have endian property in DTS for the syscon device so it always ended with default which in the regmap_mmio_gen_context() was mapped to little endian. Now default is big endian. I guess the big/little endian property should be required in that case. Best regards, Krzysztof