Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp978178pxp; Wed, 16 Mar 2022 23:16:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwfWGiwP8xmSZqWbzW5YyjmB0LxFAksE15RyhhdhmBERpn6gxZaA2XMjGEHohT64H+mqB7S X-Received: by 2002:a17:903:188:b0:151:ec83:4a88 with SMTP id z8-20020a170903018800b00151ec834a88mr3181943plg.89.1647497762105; Wed, 16 Mar 2022 23:16:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647497762; cv=none; d=google.com; s=arc-20160816; b=hcBtLCw2kGlslnIrK9e25jQYmWXWAYCvd0gJqL8UJoLVyLwGKwhuf1rZOslIAGt7ms tEKvmBcqZ5mBreDpJLJ3YTh7SKRPw+gDToK5Loh2imKg/wCj0RREXUZA87vEwpPn0iFf hvxR8+fo//5AhtjwDSbO9V67y7ANWQ6yhCd0qBETmE5NHkUkdk0JLVmKEbJyo3w2zwSs sQRZ7re9S+A60vQqCYJC5ub0MlGqna+His4IamkBAMhaxQWr/kgtTaDHvn0ULWrAfT/J hdojb9q1wSx7f69Jjzb/ZomNe44wi3lIzI18Mi/jRWgQtvJ+EfsSUj/9grR7H5HcVvNh f7xg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=AZaBOHHPLNjvfmElpKvHnRzsqHkOS0kCz5AlxDf27Y0=; b=l9zcvWqKJn+7YzgYxfkz+t+CTAmA3n6can5rG/LP3LtFW3gZUsff8jeL+8KjTFgD/D AQaphssXlNQtbVIqoGt+JJ1ujvLUuSrFK6RuEtvX1p9YT81CMyVnyJoMYgVYs0AOcLfv Cncb17Ne5lEWBfIbUuI0jjD01/m+GZ/n4e5QGhYzfr9CABaj+aA50QMUr6KKlN9u7KmQ TUExii+PWjBPKfemUsdVDwHIA+hZqvoYAhqMvdoUAMB3PMWCFLoUaXKRaD9vINT72obE x36wPE+1TUjlatPIDb3f/nV2pypxWPXZUyM4tiB7qalkuwOjTnsNT1jGulObmc7prQev mX1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=AgUy5px7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id h6-20020a056a00218600b004f3f63e2281si3817820pfi.367.2022.03.16.23.16.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Mar 2022 23:16:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=AgUy5px7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2C5B72128FA; Wed, 16 Mar 2022 21:59:43 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243858AbiCPOjO (ORCPT + 99 others); Wed, 16 Mar 2022 10:39:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37374 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1352078AbiCPOjI (ORCPT ); Wed, 16 Mar 2022 10:39:08 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 340CC1153 for ; Wed, 16 Mar 2022 07:37:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1647441470; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AZaBOHHPLNjvfmElpKvHnRzsqHkOS0kCz5AlxDf27Y0=; b=AgUy5px7iuBosQ6mnMzRa3xE2wp/T9V/VtFqnpa/6fDXykEHjJ5gUFIWutmJap3ILSFgeF l680IHaiQBvma1X2c6Si0IODk0R1iUHwdYMEjBSjkqHVD8LUq2C0a+PuqZBHFAQ0teN5xQ Sf4NiIAPZySkj1e46wNNr1JQm1pS2wo= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-83-6djy7wGgOFS_AAbKSifDNg-1; Wed, 16 Mar 2022 10:37:46 -0400 X-MC-Unique: 6djy7wGgOFS_AAbKSifDNg-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id D3A2529DD9A7; Wed, 16 Mar 2022 14:37:45 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.22.19.38]) by smtp.corp.redhat.com (Postfix) with ESMTP id A1BB6400F73E; Wed, 16 Mar 2022 14:37:42 +0000 (UTC) From: Wander Lairson Costa To: Greg Kroah-Hartman , Jiri Slaby , Wander Lairson Costa , Johan Hovold , "Maciej W. Rozycki" , Serge Semin , Lukas Wunner , =?UTF-8?q?Pali=20Roh=C3=A1r?= , linux-serial@vger.kernel.org (open list:SERIAL DRIVERS), linux-kernel@vger.kernel.org (open list) Cc: rostedt@goodmis.org, senozhatsky@chromium.org, andre.goddard@gmail.com, sudipm.mukherjee@gmail.com, andy.shevchenko@gmail.com, David.Laight@aculab.com, jonathanh@nvidia.com, phil@raspberrypi.com Subject: [PATCH v4 4/5] serial/8250: exclude BCM283x from console_fifo_write Date: Wed, 16 Mar 2022 11:36:43 -0300 Message-Id: <20220316143646.13301-5-wander@redhat.com> In-Reply-To: <20220316143646.13301-1-wander@redhat.com> References: <20220316143646.13301-1-wander@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From Phil's original patch: """ The mini-UART on BCM283x is doubly crippled - it has 8-byte FIFOs and the THRE bit indicates that the TX FIFO is not-full rather than empty. The optimisation to enable the use of the FIFO assumes that it is safe to write fifosize bytes whenever THRE is set, but the BCM283x quirk (indicated by the presence of UART_CAP_MINI) makes it necessary to check the FIFO state after each byte. See: https://github.com/raspberrypi/linux/issues/4849 """ Thanks to Phil Elwell for reporting the issue and providing the original patch. Reported-by: Phil Elwell Co-author: Phil Elwell Signed-off-by: Wander Lairson Costa --- drivers/tty/serial/8250/8250_port.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index d3a93e5d55f7..4acf620be241 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -3409,6 +3409,11 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, } use_fifo = (up->capabilities & UART_CAP_FIFO) && + /* + * BCM283x requires to check the fifo + * after each byte. + */ + !(up->capabilities & UART_CAP_MINI) && up->tx_loadsz > 1 && (up->fcr & UART_FCR_ENABLE_FIFO) && /* -- 2.35.1