Received: by 2002:a05:7412:a9a2:b0:e2:908c:2ebd with SMTP id o34csp2312592rdh; Sun, 29 Oct 2023 10:01:34 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEbyBBWXZ7mUs+E4dgc2gaLdVYqqq/g2m3UQXRCCxQEYAgEwg+D9kccFOJhCv+0YSwOaf2c X-Received: by 2002:a05:6a20:5493:b0:17a:e981:7fe4 with SMTP id i19-20020a056a20549300b0017ae9817fe4mr13662577pzk.16.1698598894367; Sun, 29 Oct 2023 10:01:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698598894; cv=none; d=google.com; s=arc-20160816; b=Uk4i09KVN72MHKCadE2S+XdVFE60jo6eEVJZUGbgbv14wl6HNhGixUt2gScv0eepBB iAGT8LyyKAFD6QiiVoKNg+K8wc+HocbaYNNTPEoiwK5YFydGH6g4jyHme3xp7H3QovzS 4IJ0He8mjriISpKBcXbZUhqXJWm2bmHVWr0R3j35xuL3tBAGKuLr8VdGdKKNDaYczlDV 9D7pLe5sakVOCM/yswE5MalPsRT+54asH1DIHYMiaMpPV3LN5PcZVy+ktBbsrgvdTbOW F4cqKfSWDTYDzIKA8pr+PWnnx+K+kN8N4ALHHjzVKKAMQrdIvoQdHsMkcH/fR3I7DJIq zMAQ== 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 :message-id:date:subject:cc:to:dkim-signature:from; bh=3obvFsIjM96yZObtxW8n9rYv9PO/4hd8o4iHKP3fPHU=; fh=tZGgrYJm28+CTwsafBkdaar2lLzKLd0wIXXkcuUOToI=; b=OnigDfXttMpvmR+uYQujh54XuGmEYwuGzV2gizQQoEZlHuXFm646ylLp2ptW5R8Iem deZuEhe5WvkV0dqyUFc/0FSttQy6fXho26jc509kq7Hp2hBi0/0OByC+vhoZaMq81HWy vo1KSRAIGgw2TnCEVYppaOybVzA7YVzmIrmJ+2t20itAjxFZnCx0stAQ1TValIdb2VUy OIvqVCwGMbe3ic5YWERI9eDtjIIY8Nluqvc3Iltcc0zxiKvfZy5exYiLUZzNjT1wNejO vfCPTuc71MJisQjtj8QGV+xlvdJFQ5IDGGV0cTnrUBMR6z2N5OkvKKo0JBjcyISc0SxH Lyww== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cutebit.org header.s=mail header.b=oy969q+1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cutebit.org Return-Path: Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id s4-20020a63d044000000b005b8edb11af3si3850513pgi.19.2023.10.29.10.01.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 10:01:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@cutebit.org header.s=mail header.b=oy969q+1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cutebit.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 0949B80859AA; Sun, 29 Oct 2023 10:01:32 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230242AbjJ2RBX (ORCPT + 99 others); Sun, 29 Oct 2023 13:01:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41020 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230207AbjJ2RBU (ORCPT ); Sun, 29 Oct 2023 13:01:20 -0400 Received: from hutie.ust.cz (hutie.ust.cz [IPv6:2a03:3b40:fe:f0::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 60517F1; Sun, 29 Oct 2023 10:01:14 -0700 (PDT) From: =?UTF-8?q?Martin=20Povi=C5=A1er?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cutebit.org; s=mail; t=1698598869; bh=3obvFsIjM96yZObtxW8n9rYv9PO/4hd8o4iHKP3fPHU=; h=From:To:Cc:Subject:Date; b=oy969q+11rxbPH9cmRXxn2HzOTPuGmb0VMsz2ddR9KK/ynvf7bXNiYZ59vwv4s2By i0bAABtuznqJQtxeSHwIhKUpL9GgtlZLi2tLJi4Es2OLo/FehsMGXHRSPmEROM6Cj2 9/C9VVpp43XUb2TQFXhnEdPFw/Geu2MCQp+l5uZE= To: Hector Martin , Sven Peter , Vinod Koul Cc: Alyssa Rosenzweig , asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, =?UTF-8?q?Martin=20Povi=C5=A1er?= Subject: [PATCH] dmaengine: apple-admac: Keep upper bits of REG_BUS_WIDTH Date: Sun, 29 Oct 2023 18:00:53 +0100 Message-Id: <20231029170053.82146-1-povik+lin@cutebit.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email 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 (fry.vger.email [0.0.0.0]); Sun, 29 Oct 2023 10:01:32 -0700 (PDT) From: Hector Martin For RX channels, REG_BUS_WIDTH seems to default to a value of 0xf00, and macOS preserves the upper bits when setting the configuration in the lower ones. If we reset the upper bits to 0, this causes framing errors on suspend/resume (the data stream "tears" and channels get swapped around). Keeping the upper bits untouched, like the macOS driver does, fixes this issue. Signed-off-by: Hector Martin Reviewed-by: Martin Povišer Signed-off-by: Martin Povišer --- drivers/dma/apple-admac.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/dma/apple-admac.c b/drivers/dma/apple-admac.c index 5b63996640d9..9588773dd2eb 100644 --- a/drivers/dma/apple-admac.c +++ b/drivers/dma/apple-admac.c @@ -57,6 +57,8 @@ #define REG_BUS_WIDTH(ch) (0x8040 + (ch) * 0x200) +#define BUS_WIDTH_WORD_SIZE GENMASK(3, 0) +#define BUS_WIDTH_FRAME_SIZE GENMASK(7, 4) #define BUS_WIDTH_8BIT 0x00 #define BUS_WIDTH_16BIT 0x01 #define BUS_WIDTH_32BIT 0x02 @@ -740,7 +742,8 @@ static int admac_device_config(struct dma_chan *chan, struct admac_data *ad = adchan->host; bool is_tx = admac_chan_direction(adchan->no) == DMA_MEM_TO_DEV; int wordsize = 0; - u32 bus_width = 0; + u32 bus_width = readl_relaxed(ad->base + REG_BUS_WIDTH(adchan->no)) & + ~(BUS_WIDTH_WORD_SIZE | BUS_WIDTH_FRAME_SIZE); switch (is_tx ? config->dst_addr_width : config->src_addr_width) { case DMA_SLAVE_BUSWIDTH_1_BYTE: -- 2.38.3