From patchwork Fri Oct 13 16:49:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Martin_Povi=C5=A1er?= X-Patchwork-Id: 15346 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2908:b0:403:3b70:6f57 with SMTP id ib8csp2023405vqb; Fri, 13 Oct 2023 09:50:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHrHs479HOmvVQC3q74ZLiEKPtXf+BE0E7mD4dBBMGYxMIlz7EfbQO8Dnb3k+3gAmB9e8ud X-Received: by 2002:a05:6a00:1d8f:b0:692:afaf:32b4 with SMTP id z15-20020a056a001d8f00b00692afaf32b4mr29529157pfw.0.1697215836949; Fri, 13 Oct 2023 09:50:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697215836; cv=none; d=google.com; s=arc-20160816; b=DPl6T/IEEtVpi2qds7Tzbf+vTzbNWgI8CONu3j+n7QrP68/iQuJ5jmRqPWYbiJla/8 4eNmAUyP87SrHNzxn81f0mqC03lBw/r0hLoP6H02+Nf46vEdAlQVFfUHShunIfZFtmQS MzORR6PXDI6VqZjG8r9h/7P3rAlbu4+NDU8lhZTfpfu02A3ysOBRTDC/U8Q01h3Q3Y9m H2e4//dPydCECdbsvHjoDxMljmipipeL+wweODDjXKs2KsG/EVVKY+0cJoO3u/4Vkvhg ePr/Yey4V4PbTlcpWvsJFmIMRKdH4jtsPfZ9OJkvQTkc12QO4yr/p+r1vEm/6B7zbd61 mlmg== 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=Zz8k/vmZ3NGYYQQPdxfPH4QZU0TH/TxEf+ATJmTjL7A=; fh=7dACLXR9mdMIjtNlRBCr+tv+Nin+ltyqXZWYNjnsbmU=; b=ON9vVJ9h8hDXVNSI71r+ObJFy3VPakvkZrwcBa1pDi892s/6Ia03Ny94SQ6likoAzZ h7GKs5C7Mmbpyc8a/6hEw4Vh+KnCGAXyNC95PAlH1/0GCj6TtkWuedF4uUQzmopQL2O0 7wYpMuJUXWozmSIDX4bWUFYx0ghcRKFXWi+U/od+5EXqcpn7BaJAJMbuP5qAM+X3o91E 8iKSql3j8OwMC2Cq48FEYVRX2zOdacTUOQ0fMq0wUFBzEoPmcRwKRC368sRP64A8TxCR 6+NJhgfZJXJRepwSjSO2KkTzk8UYJCrH4lXNmfME3TV5rd3j5phmtp+iq9l8aDraTQw2 QD1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cutebit.org header.s=mail header.b=hAdic2C8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 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 howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id w186-20020a6382c3000000b005a9fde46fa1si2269836pgd.343.2023.10.13.09.50.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Oct 2023 09:50:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@cutebit.org header.s=mail header.b=hAdic2C8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 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 howler.vger.email (Postfix) with ESMTP id 9EDAC8026BBB; Fri, 13 Oct 2023 09:50:34 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230260AbjJMQuU (ORCPT + 19 others); Fri, 13 Oct 2023 12:50:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60616 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229958AbjJMQuS (ORCPT ); Fri, 13 Oct 2023 12:50:18 -0400 Received: from hutie.ust.cz (hutie.ust.cz [IPv6:2a03:3b40:fe:f0::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 005C6B7; Fri, 13 Oct 2023 09:50:15 -0700 (PDT) From: =?utf-8?q?Martin_Povi=C5=A1er?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cutebit.org; s=mail; t=1697215810; bh=Zz8k/vmZ3NGYYQQPdxfPH4QZU0TH/TxEf+ATJmTjL7A=; h=From:To:Cc:Subject:Date; b=hAdic2C8HcMkOI+fxprcLO8c4u0x8x+m8k8xEjpvFolJB+VM3EIaZmVyTakYQDNas D0LOl7xZ3qK+kq3272moX0ZlXHjv3QegAKrkltDToL8igO5+iPwnqMi0VhFn2TntVi 1wJwVJ0jJw6dGlkVTsBv9wEiLyOxICu+YW0Ns50w= To: =?utf-8?q?Martin_Povi=C5=A1er?= , Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: asahi@lists.linux.dev, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 0/2] Apple SIO driver Date: Fri, 13 Oct 2023 18:49:34 +0200 Message-Id: <20231013164936.60718-1-povik+lin@cutebit.org> MIME-Version: 1.0 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 howler.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 (howler.vger.email [0.0.0.0]); Fri, 13 Oct 2023 09:50:34 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779659793532736715 X-GMAIL-MSGID: 1779659793532736715 Hi, on v2 of this driver we had discussion over the device_config op not following the dmaengine spec. I came up with a lazy solution I am happy with. See sio_device_config for details. Changes since v2: https://lore.kernel.org/asahi/CAEg-Je8_f_hZ3VyBg+8tK8uobWNaEqCwp==2JhV6jVpPYXj_Pg@mail.gmail.com/T/#t - do requested formatting fixes - fix device_config up to spec in a lazy way Changes since v1: https://lore.kernel.org/asahi/20230712133806.4450-1-povik+lin@cutebit.org/T/#t - move to using virt-dma - drop redundant cookie field from `sio_tx` - use DECLARE_BITMAP for `allocated` in sio_tagdata Original cover letter from v1 follows. --- Hi all, see attached a driver for the SIO coprocessor found on recent Apple SoCs. This coprocessor provides general DMA services, it can feed many peripherals but so far it seems it will only be useful for audio output over HDMI/DisplayPort. So the driver here only supports the DMA_CYCLIC mode of transactions with the focus being on audio. There's a downstream prototype ALSA driver the DMA driver is being tested against. Some of the boilerplate code in implementing the dmaengine interface was lifted from apple-admac.c. Among other things these two drivers have in common that they implement the DMA_CYCLIC regime on top of hardware/coprocessor layer supporting linear transactions only. The binding schema saw two RFC rounds before and has a reviewed-by from Rob. https://lore.kernel.org/asahi/167693643966.613996.10372170526471864080.robh@kernel.org Best regards, Martin Martin PoviĊĦer (2): dt-bindings: dma: apple,sio: Add schema dmaengine: apple-sio: Add Apple SIO driver .../devicetree/bindings/dma/apple,sio.yaml | 111 +++ MAINTAINERS | 2 + drivers/dma/Kconfig | 11 + drivers/dma/Makefile | 1 + drivers/dma/apple-sio.c | 907 ++++++++++++++++++ 5 files changed, 1032 insertions(+) create mode 100644 Documentation/devicetree/bindings/dma/apple,sio.yaml create mode 100644 drivers/dma/apple-sio.c