Received: by 2002:a05:7412:b101:b0:e2:908c:2ebd with SMTP id az1csp2677752rdb; Wed, 15 Nov 2023 07:38:21 -0800 (PST) X-Google-Smtp-Source: AGHT+IFDkStp9cuPlRHyTF9CTFfJAQhpcfn84FyfJNWpHEjpBGfOA0H6CaMeteIt7IW8fLjjsbvi X-Received: by 2002:a17:90b:3b52:b0:280:c576:31bc with SMTP id ot18-20020a17090b3b5200b00280c57631bcmr11554358pjb.32.1700062701024; Wed, 15 Nov 2023 07:38:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700062701; cv=none; d=google.com; s=arc-20160816; b=F3hna7xaPFU5xG38NIUQ2KDOzOCaIAIesfzJm/A86kUPyod9YNMp9XlbGW4xTSPjKx CsroHIaTpONpBrppSUe8AixnjIxop1lVtEX+XY2cIdDmxgpzWHPsfeH2O2uLpucRFsRH FLxSF/EJvxuJC8i/Me6hgiXMaKyu/O+N6sjYlbTO1bPxvOuZMgrG0CBBHLU9iQdaA5EO wHVWjEO7X3e0sp2A1rC+eNrHrpzHgGNDV1neTOFMJ+G7+T2kPcvw5xRRdSKyDpWtAngQ Fkhba3gXlUD6zUU/iqYMWZSz6OFYJHan0gmAdc3AJoRk5sYRBPJ4aDiXR+naCaNXxNrq dnbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=HS3BubLztulqaSwAcrkoXNqBUyjr0LpcwHo3nzA/Vq0=; fh=nDYK0jER3/5rY4lFsoCAdXuf4pyu4bHffvW176Fr6To=; b=T3xSF330gaPhlWdqyqV4CP2ng+E8dgoxapgFa3HXOoEYUSqdINMW+FJ7z8sCC4fZ+c VEmOdo2uAFn2NXzqAu1TSt3P3/jmRlaXqIKq4/euk/2YVaD8qX6wd47Qt5C/6lCvh12A s/fO2ogrzGGdEd8KoUtMfITXyepq5exppoktWPZ0Jpfx3PmoJ/lXaffiZxzBUMtFROSR XA/tDeRdrS0oCjI/x/DIDyc639fQEw+gX7stuyiNpCw5yLdHoypNePeeOkLETSQ3y1ov IYLsgqFaudsxb70rcnIFnz3VdXJY49h8+hha8DR9u/qgCOUJa/XNogwHenJZI53dvw6K /mBA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id pl15-20020a17090b268f00b00274c5572179si16943pjb.2.2023.11.15.07.38.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Nov 2023 07:38:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 75BE081D6A96; Wed, 15 Nov 2023 07:38:12 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231132AbjKOPiH (ORCPT + 99 others); Wed, 15 Nov 2023 10:38:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46030 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229457AbjKOPiG (ORCPT ); Wed, 15 Nov 2023 10:38:06 -0500 Received: from mail.bugwerft.de (mail.bugwerft.de [IPv6:2a03:6000:1011::59]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 34639109; Wed, 15 Nov 2023 07:38:03 -0800 (PST) Received: from [192.168.178.97] (pd95ef485.dip0.t-ipconnect.de [217.94.244.133]) by mail.bugwerft.de (Postfix) with ESMTPSA id 15C9A28157A; Wed, 15 Nov 2023 15:38:02 +0000 (UTC) Message-ID: <938c06e4-ce48-49af-ac3a-61f524796e26@zonque.org> Date: Wed, 15 Nov 2023 16:38:01 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] serial: sc16is7xx: address RX timeout interrupt errata Content-Language: en-US To: Hugo Villeneuve Cc: gregkh@linuxfoundation.org, jirislaby@kernel.org, lech.perczak@camlingroup.com, u.kleine-koenig@pengutronix.de, linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, Maxim Popov , stable@vger.kernel.org References: <20231114074904.239458-1-daniel@zonque.org> <20231114102025.d48c0a6ec6c413f274b7680b@hugovil.com> <140280a6-1948-4630-b10c-8e6a2afec2de@zonque.org> <20231115094717.7541b01ec0c8a7f4006fcae6@hugovil.com> <549319d4-5da9-4eb0-abeb-6e63b3e26e3f@zonque.org> <20231115103126.d1cb1168c32c264fe443347b@hugovil.com> From: Daniel Mack In-Reply-To: <20231115103126.d1cb1168c32c264fe443347b@hugovil.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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 X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Wed, 15 Nov 2023 07:38:12 -0800 (PST) Hi Hugo, On 11/15/23 16:31, Hugo Villeneuve wrote: > On Wed, 15 Nov 2023 15:57:38 +0100 > Daniel Mack wrote: > >> On 11/15/23 15:47, Hugo Villeneuve wrote: >>> On Tue, 14 Nov 2023 16:55:33 +0100 >>> Daniel Mack wrote: >>> >>>> Hi Hugo, >>>> >>>> On 11/14/23 16:20, Hugo Villeneuve wrote: >>>>> On Tue, 14 Nov 2023 08:49:04 +0100 >>>>> Daniel Mack wrote: >>>>>> This devices has a silicon bug that makes it report a timeout interrupt >>>>>> but no data in FIFO. >>>>>> >>>>>> The datasheet states the following in the errata section 18.1.4: >>>>>> >>>>>> "If the host reads the receive FIFO at the at the same time as a >>>>>> time-out interrupt condition happens, the host might read 0xCC >>>>>> (time-out) in the Interrupt Indication Register (IIR), but bit 0 >>>>>> of the Line Status Register (LSR) is not set (means there is not >>>>>> data in the receive FIFO)." >>>>>> >>>>>> When this happens, the loop in sc16is7xx_irq() will run forever, >>>>>> which effectively blocks the i2c bus and breaks the functionality >>>>>> of the UART. >>>>>> >>>>>> From the information above, it is assumed that when the bug is >>>>>> triggered, the FIFO does in fact have payload in its buffer, but the >>>>>> fill level reporting is off-by-one. Hence this patch fixes the issue >>>>>> by reading one byte from the FIFO when that condition is detected. >>>>> >>>>> From what I understand from the errata, when the problem occurs, it >>>>> affects bit 0 of the LSR register. I see no mention that it >>>>> also affects the RX FIFO level register (SC16IS7XX_RXLVL_REG)? >>>> >>>> True, the errata doesn't explicitly mention that, but tests have shown >>>> that the RXLVL register is equally affected. >>> >>> Hi Daniel, >>> ok, now it makes more sense if RXLVL is affected. >>> >>> Have you contacted NXP about this? If not, I suggest you do open a >>> support case and let them know about your findings, because it is very >>> strange that it is not mentioned in the errata. And doing so may led to >>> an updated and better documentation on their side about this errata. >> > > Hi Daniel, > >> The errata is also wrong in other regards - the IIR register cannot >> yield 0xcc according to their own documentation. It also makes no >> suggestion on how to recover from that situation, which is common >> practice usually. > > 0xcc is valid according to the datasheet. Bits 7:6 are a mirror copy of > FCR[0], so bits 5:0 are 0x0c, which is documented in table 14? Ah, right. I was looking at the masked value. > But you are right about the recovery procedure, it should be documented > in the errata. > > >> We'll let them know through our FAE channels, but the latest datasheet >> for this chip was released over a decade ago, and I don't expect any >> update to the errata wording. > > You cannot assume they would not update the datasheet, especially with > your findings about RXLVL which add a whole new dimension to this > errata. The fact that the latest release was long ago is irrelevant. Yes, we will give them a note. Let's see what happens. >>> And incorporate this new info into your commit log for an eventual >>> patch V2. >> >> It makes no sense IMO to have all users of this chip suffer from an >> issue that was clearly identified to be present and which has an evident >> fix. Why would we do that? > > I don't know what you mean by that... > > My suggestion was simply to incorporate your findings about RXLVL > register into your commit log for patch V2... My apologies, I misread your message then. I thought you suggested to wait for a new errata statement from NXP so we can quote from that in the commit. The RXLVL detail is part of the the commit log in the v2 submission. Thanks, Daniel