From patchwork Mon Aug 6 14:07:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geert Uytterhoeven X-Patchwork-Id: 10557213 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 B89E314E2 for ; Mon, 6 Aug 2018 14:08:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A8B75295A5 for ; Mon, 6 Aug 2018 14:08:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9D508295A8; Mon, 6 Aug 2018 14:08:07 +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=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2DE60295C8 for ; Mon, 6 Aug 2018 14:08:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729972AbeHFQRW (ORCPT ); Mon, 6 Aug 2018 12:17:22 -0400 Received: from albert.telenet-ops.be ([195.130.137.90]:32788 "EHLO albert.telenet-ops.be" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730214AbeHFQRV (ORCPT ); Mon, 6 Aug 2018 12:17:21 -0400 Received: from ramsan.of.borg ([84.194.111.163]) by albert.telenet-ops.be with bizsmtp id Kq821y0063XaVaC06q82ii; Mon, 06 Aug 2018 16:08:03 +0200 Received: from rox.of.borg ([192.168.97.57]) by ramsan.of.borg with esmtp (Exim 4.86_2) (envelope-from ) id 1fmgB0-0000Nd-1r; Mon, 06 Aug 2018 16:08:02 +0200 Received: from geert by rox.of.borg with local (Exim 4.90_1) (envelope-from ) id 1fmgAz-0006HR-Vb; Mon, 06 Aug 2018 16:08:01 +0200 From: Geert Uytterhoeven To: Chris Brandt , Laurent Pinchart , Ulrich Hecht , Yoshinori Sato Cc: Greg Kroah-Hartman , Jiri Slaby , linux-renesas-soc@vger.kernel.org, linux-sh@vger.kernel.org, linux-serial@vger.kernel.org, Geert Uytterhoeven Subject: [PATCH/RFC 0/4] sh-sci : Do not derive regshift from regsize Date: Mon, 6 Aug 2018 16:07:51 +0200 Message-Id: <20180806140755.24087-1-geert+renesas@glider.be> X-Mailer: git-send-email 2.17.1 Sender: linux-sh-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sh@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Hi all, This RFC patch series was sparked by noticing that commit 2d4dd0da45401c7a ("serial: sh-sci: Allow for compressed SCIF address") broke earlycon support on most Renesas ARM SoCs using SCIF ports, and by the fragility of deriving regshift from the register block size (which may be rounded up): 1. The first patch is an old patch from Sato-san, which I never really understood. But it turned out to be a dependency for patch 2. 2. Patch 2 makes sure regshift is initialized when using earlycon, unbreaking the serial console on e.g. R-Car Gen2 and Gen3. 3. Patch 3 reverts the patch that started deriving regshift from the register block size, and that removed the plat_sci_port.regshift field. Which is a field I needed again in patch 4. 4. Patch 4 removes the remaining regshift derivations on DT platforms. (5. I didn't bother writing patch 5, which involves adding .regshift initializations to all SH board files that need it.) However, I'm not happy with the end result, so please DO NOT apply this! As I spent almost a full day on this, and would still like to know the story about "sh-sci: Use a separate sci_port for earlycon", I decided to post it anyway. As earlycon will be broken in v4.19-rc1 on RZ/A1, RZ/G, and R-Car, assuming no other actions are taken, an alternative solution would be to: 1. Revert commit 7acece71a517cad8 ("serial: sh-sci: Remove SCIx_RZ_SCIFA_REGTYPE"), 2. Revert commit 2d4dd0da45401c7a ("serial: sh-sci: Allow for compressed SCIF address") alternative, 3. Add an OF_EARLYCON_DECLARE() for RZ/A2, to fix earlycon on RZ/A2. What do you think? Thanks for your comments! P.S. Apparently SCIx_SH4_SCIF_REGTYPE and SCIx_SH2_SCIF_FIFODATA_REGTYPE are identical? Geert Uytterhoeven (3): [RFC] sh-sci: Take into account regshift to fix earlycon breakage [RFC] Revert "serial: sh-sci: Compute the regshift value for SCI ports" [RFC] sh-sci: Derive regshift value from DT compatible value Yoshinori Sato (1): [RFC] sh-sci: Use a separate sci_port for earlycon arch/sh/kernel/cpu/sh3/setup-sh770x.c | 1 + arch/sh/kernel/cpu/sh4/setup-sh7750.c | 3 +- arch/sh/kernel/cpu/sh4/setup-sh7760.c | 10 +--- drivers/tty/serial/sh-sci.c | 68 +++++++++++++++++---------- include/linux/serial_sci.h | 1 + 5 files changed, 49 insertions(+), 34 deletions(-)