From patchwork Wed Jul 13 17:22:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 12916997 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6F0A8C433EF for ; Wed, 13 Jul 2022 17:22:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235537AbiGMRWf (ORCPT ); Wed, 13 Jul 2022 13:22:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48498 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231478AbiGMRWc (ORCPT ); Wed, 13 Jul 2022 13:22:32 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B441AC60; Wed, 13 Jul 2022 10:22:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657732951; x=1689268951; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=bkLgqKbd/VvVIGBhAMjtBA1FLyFfzcA7yQjopEHFUKY=; b=K1NaL/CMUAz3O6YdZbQ0unK3UQddBFjY9mCdFL0P3gGklRoCO8fHEmZq 2I9Xa3wMP04YUF/3PeMKMdsRPf9IwWW3vR9tfQMGbBPXwZVYzE5yQpNIK zELY5jnqRmxe7xP82A1qhjENmYFuTC68SVZSMImBXXDVl8ej/xUhpcaEj n5qE9HeAK81RwL4NDluU6wAHEL7bkevQMJK9lHsRJlJ2ssavdC11iaP8p gqKCvOZjl/9mifnanJFyAb/rPpjwqbyXM/Hck6uG5FjmXSu7C2qsx9Sol sYGp0clZOOHgCIK+yRxyEBRj2t5z/RyY+eQTWbiYrRqhat0KevxtWoDDA g==; X-IronPort-AV: E=McAfee;i="6400,9594,10407"; a="371605136" X-IronPort-AV: E=Sophos;i="5.92,267,1650956400"; d="scan'208";a="371605136" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2022 10:22:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,267,1650956400"; d="scan'208";a="922726186" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga005.fm.intel.com with ESMTP; 13 Jul 2022 10:22:30 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 32C65F1; Wed, 13 Jul 2022 20:22:37 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Vinod Koul Subject: [PATCH v1 1/4] dmaengine: hsu: Finish conversion to managed resources Date: Wed, 13 Jul 2022 20:22:32 +0300 Message-Id: <20220713172235.22611-1-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org With help of devm_add_action_or_reset() we may finish conversion the driver to use managed resources. Signed-off-by: Andy Shevchenko --- drivers/dma/hsu/pci.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/drivers/dma/hsu/pci.c b/drivers/dma/hsu/pci.c index 6a2df3dd78d0..4ed6a4ef1512 100644 --- a/drivers/dma/hsu/pci.c +++ b/drivers/dma/hsu/pci.c @@ -47,8 +47,14 @@ static irqreturn_t hsu_pci_irq(int irq, void *dev) return IRQ_RETVAL(ret); } +static void hsu_pci_dma_remove(void *chip) +{ + hsu_dma_remove(chip); +} + static int hsu_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { + struct device *dev = &pdev->dev; struct hsu_dma_chip *chip; int ret; @@ -87,9 +93,13 @@ static int hsu_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) if (ret) return ret; - ret = request_irq(chip->irq, hsu_pci_irq, 0, "hsu_dma_pci", chip); + ret = devm_add_action_or_reset(dev, hsu_pci_dma_remove, chip); if (ret) - goto err_register_irq; + return ret; + + ret = devm_request_irq(dev, chip->irq, hsu_pci_irq, 0, "hsu_dma_pci", chip); + if (ret) + return ret; /* * On Intel Tangier B0 and Anniedale the interrupt line, disregarding @@ -105,18 +115,6 @@ static int hsu_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) pci_set_drvdata(pdev, chip); return 0; - -err_register_irq: - hsu_dma_remove(chip); - return ret; -} - -static void hsu_pci_remove(struct pci_dev *pdev) -{ - struct hsu_dma_chip *chip = pci_get_drvdata(pdev); - - free_irq(chip->irq, chip); - hsu_dma_remove(chip); } static const struct pci_device_id hsu_pci_id_table[] = { @@ -130,7 +128,6 @@ static struct pci_driver hsu_pci_driver = { .name = "hsu_dma_pci", .id_table = hsu_pci_id_table, .probe = hsu_pci_probe, - .remove = hsu_pci_remove, }; module_pci_driver(hsu_pci_driver); From patchwork Wed Jul 13 17:22:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 12916995 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 78CF8C433EF for ; Wed, 13 Jul 2022 17:22:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234036AbiGMRWc (ORCPT ); Wed, 13 Jul 2022 13:22:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230215AbiGMRWc (ORCPT ); Wed, 13 Jul 2022 13:22:32 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E7FF3B2; Wed, 13 Jul 2022 10:22:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657732951; x=1689268951; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=qJ+3C/9Ncktz1eaPrbq5aFlCXzUnpfcZFwBPkdPd2uM=; b=WOvqeqSQdxhw1xMljBsuTukwvOWl/W491Z6fyWh1wYvEE7ad8QQ2iMfi 1OrjSpwuQJ0n6xiS5Etk0zl4XUAAzWXMpezpy0VdqlV/Z47UGB8U3oSZY 4hZnW19e8908miUm/9P8JHhBgi7i0T/Vy7xCCtRbray+PW57lKnLQTkk0 R/rc8MYWn+anVXSLnCIpWDp64AKsakmPGCTwCnsX+eJf+cQjrH6hSi1Jl hf8wMg20TSI9yhEt9ZkFKvVw9tdF6MfDjVxnzThIiDXHXDO6idmYcxQfo UCyfrC14R7BhLaVa0hyPl03FG4A9n6q59U3H6MGvKa+hMuBWkstxLAEaE Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10407"; a="284048068" X-IronPort-AV: E=Sophos;i="5.92,267,1650956400"; d="scan'208";a="284048068" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2022 10:22:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,267,1650956400"; d="scan'208";a="685247907" Received: from black.fi.intel.com ([10.237.72.28]) by FMSMGA003.fm.intel.com with ESMTP; 13 Jul 2022 10:22:30 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 3DD4DCE; Wed, 13 Jul 2022 20:22:38 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Vinod Koul Subject: [PATCH v1 2/4] dmaengine: hsu: using for_each_set_bit to simplify the code Date: Wed, 13 Jul 2022 20:22:33 +0300 Message-Id: <20220713172235.22611-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220713172235.22611-1-andriy.shevchenko@linux.intel.com> References: <20220713172235.22611-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org It's more cleanly to use for_each_set_bit() instead of opencoding it. Signed-off-by: Andy Shevchenko --- drivers/dma/hsu/pci.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/drivers/dma/hsu/pci.c b/drivers/dma/hsu/pci.c index 4ed6a4ef1512..8cdf715a7e9e 100644 --- a/drivers/dma/hsu/pci.c +++ b/drivers/dma/hsu/pci.c @@ -26,22 +26,19 @@ static irqreturn_t hsu_pci_irq(int irq, void *dev) { struct hsu_dma_chip *chip = dev; - u32 dmaisr; - u32 status; + unsigned long dmaisr; unsigned short i; + u32 status; int ret = 0; int err; dmaisr = readl(chip->regs + HSU_PCI_DMAISR); - for (i = 0; i < chip->hsu->nr_channels; i++) { - if (dmaisr & 0x1) { - err = hsu_dma_get_status(chip, i, &status); - if (err > 0) - ret |= 1; - else if (err == 0) - ret |= hsu_dma_do_irq(chip, i, status); - } - dmaisr >>= 1; + for_each_set_bit(i, &dmaisr, chip->hsu->nr_channels) { + err = hsu_dma_get_status(chip, i, &status); + if (err > 0) + ret |= 1; + else if (err == 0) + ret |= hsu_dma_do_irq(chip, i, status); } return IRQ_RETVAL(ret); From patchwork Wed Jul 13 17:22:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 12916996 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2C254C43334 for ; Wed, 13 Jul 2022 17:22:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234828AbiGMRWd (ORCPT ); Wed, 13 Jul 2022 13:22:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231959AbiGMRWc (ORCPT ); Wed, 13 Jul 2022 13:22:32 -0400 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1EABFF58D; Wed, 13 Jul 2022 10:22:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657732952; x=1689268952; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=BnzXUwt5+K+Mc2Kvjt3JDGXklnVAwoVYXy8cAkKNCds=; b=fJT+VaNEwJB7SJfaVqitEpotLHVSeXR7mWYaNVn5IVnOjN7p+Ty/zZbw YlfT29Engno1RsSbEayKPdu6zp7JxQP3wlK/RTjbqIp29lpUzNdXXvPvB 8vmDd6uicPRtTvbLKi4qh0l4Y47Me+6duJbsAYh9+uCkzKHETGQSRq4ye O3oX2UksRD0V3SJt3B2eFsq9IUCst+ZYcir5W8uBaaH1yLfwt0Evw0Iv6 N2p4sviY8ynSkAdXA/8W7BOhEY2JQLqePia/dvaz+iBblBJqf9tFme6H8 JcJKCfWpJ5VF9Zg21s1f/yaybzi28IlIYpVAq6RqTLf/idnAyuU6up1XM w==; X-IronPort-AV: E=McAfee;i="6400,9594,10407"; a="310933517" X-IronPort-AV: E=Sophos;i="5.92,267,1650956400"; d="scan'208";a="310933517" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2022 10:22:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,267,1650956400"; d="scan'208";a="722429515" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga004.jf.intel.com with ESMTP; 13 Jul 2022 10:22:30 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 4385316D; Wed, 13 Jul 2022 20:22:38 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Vinod Koul Subject: [PATCH v1 3/4] dmaengine: hsu: Use GENMASK() consistently Date: Wed, 13 Jul 2022 20:22:34 +0300 Message-Id: <20220713172235.22611-3-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220713172235.22611-1-andriy.shevchenko@linux.intel.com> References: <20220713172235.22611-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org For the masks replace chain of BIT() macros by GENMASK(). While at it, explicitly include bits.h. Signed-off-by: Andy Shevchenko --- drivers/dma/hsu/hsu.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/dma/hsu/hsu.h b/drivers/dma/hsu/hsu.h index 9e5956345748..1c1195709c2f 100644 --- a/drivers/dma/hsu/hsu.h +++ b/drivers/dma/hsu/hsu.h @@ -10,6 +10,7 @@ #ifndef __DMA_HSU_H__ #define __DMA_HSU_H__ +#include #include #include @@ -36,11 +37,11 @@ /* Bits in HSU_CH_SR */ #define HSU_CH_SR_DESCTO(x) BIT(8 + (x)) -#define HSU_CH_SR_DESCTO_ANY (BIT(11) | BIT(10) | BIT(9) | BIT(8)) +#define HSU_CH_SR_DESCTO_ANY GENMASK(11, 8) #define HSU_CH_SR_CHE BIT(15) #define HSU_CH_SR_DESCE(x) BIT(16 + (x)) -#define HSU_CH_SR_DESCE_ANY (BIT(19) | BIT(18) | BIT(17) | BIT(16)) -#define HSU_CH_SR_CDESC_ANY (BIT(31) | BIT(30)) +#define HSU_CH_SR_DESCE_ANY GENMASK(19, 16) +#define HSU_CH_SR_CDESC_ANY GENMASK(31, 30) /* Bits in HSU_CH_CR */ #define HSU_CH_CR_CHA BIT(0) From patchwork Wed Jul 13 17:22:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 12916998 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7FDE9CCA47C for ; Wed, 13 Jul 2022 17:22:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235854AbiGMRWf (ORCPT ); Wed, 13 Jul 2022 13:22:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234753AbiGMRWd (ORCPT ); Wed, 13 Jul 2022 13:22:33 -0400 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7B5643B2; Wed, 13 Jul 2022 10:22:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657732952; x=1689268952; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=1jAH0JC2h59ZDuy2BkbW4V+e7vzjrMyqWlxPevPebtc=; b=LQbJm1g6ie4neAru6we3O1qYFay2spjn170YbssRFxa2E36Defok7xcX NBGZWTHcz62Otr23U2ekU4pJUApDVPTXPOyNr6FqjxpXoRUjRbmXhHgF1 NQ98Dj5eyCSLwxmurbfvp6IBeuQduBK8iZwPyTuxh9gSA6XueGycBRAkc z7YjW6VklWK1NX6H4WxE9aHqYqsbCToz6xYjFObHxmeEmxCZhsFwAjblt MGDuNvhi3IQd4fmi3OH/Zoa7RPOH8/2dhJ0iWHCrkdUuadWErpZy4cqe3 SOhgivbdjiHxFkBQ0MEIVj2wjmlh7c++TVblmblmkbWEQNBkbxxCFZ6Hp A==; X-IronPort-AV: E=McAfee;i="6400,9594,10407"; a="349262519" X-IronPort-AV: E=Sophos;i="5.92,267,1650956400"; d="scan'208";a="349262519" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2022 10:22:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,267,1650956400"; d="scan'208";a="698507453" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga002.fm.intel.com with ESMTP; 13 Jul 2022 10:22:30 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 569DF366; Wed, 13 Jul 2022 20:22:38 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Vinod Koul Subject: [PATCH v1 4/4] dmaengine: hsu: Include headers we are direct user of Date: Wed, 13 Jul 2022 20:22:35 +0300 Message-Id: <20220713172235.22611-4-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220713172235.22611-1-andriy.shevchenko@linux.intel.com> References: <20220713172235.22611-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org For the sake of integrity, include headers we are direct user of. Signed-off-by: Andy Shevchenko --- drivers/dma/hsu/hsu.c | 8 ++++++++ drivers/dma/hsu/hsu.h | 5 ++++- drivers/dma/hsu/pci.c | 1 + include/linux/dma/hsu.h | 6 ++++-- include/linux/platform_data/dma-hsu.h | 2 +- 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/drivers/dma/hsu/hsu.c b/drivers/dma/hsu/hsu.c index 92caae55aece..af5a2e252c25 100644 --- a/drivers/dma/hsu/hsu.c +++ b/drivers/dma/hsu/hsu.c @@ -16,12 +16,20 @@ * port 3, and so on. */ +#include #include +#include #include #include #include +#include +#include #include +#include +#include #include +#include +#include #include "hsu.h" diff --git a/drivers/dma/hsu/hsu.h b/drivers/dma/hsu/hsu.h index 1c1195709c2f..3bca577b98a1 100644 --- a/drivers/dma/hsu/hsu.h +++ b/drivers/dma/hsu/hsu.h @@ -11,7 +11,10 @@ #define __DMA_HSU_H__ #include -#include +#include +#include +#include + #include #include "../virt-dma.h" diff --git a/drivers/dma/hsu/pci.c b/drivers/dma/hsu/pci.c index 8cdf715a7e9e..0fcc0c0c22fc 100644 --- a/drivers/dma/hsu/pci.c +++ b/drivers/dma/hsu/pci.c @@ -10,6 +10,7 @@ #include #include +#include #include #include diff --git a/include/linux/dma/hsu.h b/include/linux/dma/hsu.h index a6b7bc707356..77ea602c287c 100644 --- a/include/linux/dma/hsu.h +++ b/include/linux/dma/hsu.h @@ -8,11 +8,13 @@ #ifndef _DMA_HSU_H #define _DMA_HSU_H -#include -#include +#include +#include +#include #include +struct device; struct hsu_dma; /** diff --git a/include/linux/platform_data/dma-hsu.h b/include/linux/platform_data/dma-hsu.h index c65b412b2b33..611bae193c1c 100644 --- a/include/linux/platform_data/dma-hsu.h +++ b/include/linux/platform_data/dma-hsu.h @@ -8,7 +8,7 @@ #ifndef _PLATFORM_DATA_DMA_HSU_H #define _PLATFORM_DATA_DMA_HSU_H -#include +struct device; struct hsu_dma_slave { struct device *dma_dev;