From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 549DE4219EE for ; Wed, 3 Jun 2026 09:08:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.11 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780477710; cv=none; b=sqsgK+OED374RUOHEFUO+WjWlcrYgo7Zz7mJp8J2nTFDrF06kI1isR5Z0P22Si3C86Pxn82ZrnfwBYncOpkxNqa4cTV2nJ/g7pd5eGAfJr9WipentPTYbc2gZjGgRJjx2HIirsLPMJBof+kgiUVJ3vqOvUpVF3QsBKUiZHClrrw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780477710; c=relaxed/simple; bh=wqsMxiAfOYox2X6r1Ef7yW3f1xoqVnM8R4Hb1do8JT8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FeU/oFAy7x3Z6pQoXKNIE0yso4/FNCGrZ+6ErSOGVP8R3jVyKC1qox1lKzDA/dOpD4RR9uYKja4NsJLDmlezSuy+M7nRDG0VtiOa8EjQJdev+YxLWGaLFSWX30e/pJ0VXSCVnrEJuLUp2ZfC5f9STkD1GmXJpp6hOXqZKJkqF3g= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=SzbPWstO; arc=none smtp.client-ip=192.198.163.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="SzbPWstO" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1780477709; x=1812013709; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=wqsMxiAfOYox2X6r1Ef7yW3f1xoqVnM8R4Hb1do8JT8=; b=SzbPWstOqhP6nb8NRBg5V1xUdPRs1Xq9IE2zwcGY/hhdjbex5uxTyVUW zets+oClBEbbnaA5VkA7BUOnRLgPb2yfpXtP6EX+D0p1HZrFDYydJnPmf tUdmiqeMXX8GF8cG+T+1mRowXN8QNtQbgQH86YHIDt4+dGNz6GCFVDCRa gCKi8OgPbE0H0Hdn/cSmDWIXAPAe8AvSR5dKAJoDO16KotYTHaGd7Wxt2 OZ7YwxvGfbTxYTNkxVaGH3dJrfQ9/6/iwbfwMBQLm9LCNhcwJPR+RcKUB e5J0ctXFH2bxhWBHakSBsy0D1S54JvADr0XLwwEpucElodNLiFaUQvjME A==; X-CSE-ConnectionGUID: Br0pC1v2RjK5gG0r1rDHOA== X-CSE-MsgGUID: Azkp2mLNSKak8E4pOzE7HA== X-IronPort-AV: E=McAfee;i="6800,10657,11805"; a="91852644" X-IronPort-AV: E=Sophos;i="6.24,184,1774335600"; d="scan'208";a="91852644" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Jun 2026 02:08:29 -0700 X-CSE-ConnectionGUID: EVULlwJ9Smauroet5/UUgw== X-CSE-MsgGUID: Kt9hRJkmS8OtXx5CNHIrEA== X-ExtLoop1: 1 Received: from ijarvine-mobl1.ger.corp.intel.com (HELO ahunter6-desk) ([10.245.244.137]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Jun 2026 02:08:27 -0700 From: Adrian Hunter To: alexandre.belloni@bootlin.com Cc: Frank.Li@nxp.com, linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH V5 10/17] i3c: mipi-i3c-hci: Factor out hci_dma_abort() Date: Wed, 3 Jun 2026 12:07:47 +0300 Message-ID: <20260603090754.16252-11-adrian.hunter@intel.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260603090754.16252-1-adrian.hunter@intel.com> References: <20260603090754.16252-1-adrian.hunter@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Finland Oy, Registered Address: c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Content-Transfer-Encoding: 8bit Factor out hci_dma_abort() from hci_dma_dequeue_xfer() in preparation for further changes. Signed-off-by: Adrian Hunter Reviewed-by: Frank Li --- Changes in V5: Added Frank's Rev'ed-by Changes in V4: New patch drivers/i3c/master/mipi-i3c-hci/dma.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/i3c/master/mipi-i3c-hci/dma.c b/drivers/i3c/master/mipi-i3c-hci/dma.c index 906de7dbfdb5..f2d33068b8df 100644 --- a/drivers/i3c/master/mipi-i3c-hci/dma.c +++ b/drivers/i3c/master/mipi-i3c-hci/dma.c @@ -597,6 +597,13 @@ static void hci_dma_xfer_done(struct i3c_hci *hci, struct hci_rh_data *rh) rh_reg_write(RING_OPERATION1, op1_val); } +static void hci_dma_abort(struct hci_rh_data *rh) +{ + reinit_completion(&rh->op_done); + rh_reg_write(RING_CONTROL, rh_reg_read(RING_CONTROL) | RING_CTRL_ABORT); + wait_for_completion_timeout(&rh->op_done, HZ); +} + static void hci_dma_unblock_enqueue(struct i3c_hci *hci) { if (hci->enqueue_blocked) { @@ -623,9 +630,7 @@ static bool hci_dma_dequeue_xfer(struct i3c_hci *hci, hci->enqueue_blocked = true; spin_unlock_irq(&hci->lock); /* stop the ring */ - reinit_completion(&rh->op_done); - rh_reg_write(RING_CONTROL, rh_reg_read(RING_CONTROL) | RING_CTRL_ABORT); - wait_for_completion_timeout(&rh->op_done, HZ); + hci_dma_abort(rh); spin_lock_irq(&hci->lock); ring_status = rh_reg_read(RING_STATUS); if (ring_status & RING_STATUS_RUNNING) { -- 2.51.0