From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 82499385513; Thu, 9 Apr 2026 12:05:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775736326; cv=none; b=OdYL1w3DFf1wRu5pU01z4suZkSIF6nHqCW3y8MgITz5XdT0OWU/pWzPNge1hQGerdzxS0/sg+r9FNA0o+uUjbHfCbmdVjW9XK9mRn9dtZIuQy6ngv1LTX4UeJUa3XjZghutmz/JgER9KzBKeYKZ/w6j9cDOmOL2UjyYMi+Y9z68= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775736326; c=relaxed/simple; bh=2UUcfPS4wrWwczKLD7aDbhUfuDJpVjl6srN25LJyhX4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=c+uAELKHiMghJFiaYNY1m1q0QTQeMn5gOhdgoN+KsVKrh1qDjNfXfEjBpjjZIduu54+9TyqoP5SoZQJ4er90LPs3kh3WH+ghVOwdMvoc4W6AeiQwG3lYjFkpOwSTXxvZcEHs75GoC2mhw+gmY5k6e8eKIOZ934lnWcq+i7PNUIk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hOa9ingH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hOa9ingH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4B17EC2BC9E; Thu, 9 Apr 2026 12:05:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1775736326; bh=2UUcfPS4wrWwczKLD7aDbhUfuDJpVjl6srN25LJyhX4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hOa9ingH4y4gRiKiOLn2zm66hM+NbGYRQiRjpPURT5zXW46ljnxV9CSLdOUVNAjaY MP5t39gsMiNjcoJkHocXLr7ltMC5Mp4Xe1EyXaYeLQlkd9Ogjl4n+5i8u/KDKZiXdx YHBoTAwGOZMwrCxbf+MOOvOZbgwK/f1xBp/MjIOyJqIKiDmJM0zGSFATK7hgiSm/4q 3Fu6GNuc0z0SQOvOlK8PvtW7+CdiEKQWFRDl/8ZCEc+DRVUaPqSpixKujRaeG6wYOU aXlc6DmHDrk/Jmh2rqNEJMYcuX294MLtVatoVb7LQ+4MYDXy2eujVBlLnVWQiJeeqS jk9byTTR5XS5Q== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wAo8S-00000001d6t-05hf; Thu, 09 Apr 2026 14:05:24 +0200 From: Johan Hovold To: Mark Brown Cc: Sunny Luo , Xianwei Zhao , Chin-Ting Kuo , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Radu Pirea , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 07/20] spi: bcmbca-hsspi: fix controller deregistration Date: Thu, 9 Apr 2026 14:04:06 +0200 Message-ID: <20260409120419.388546-8-johan@kernel.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260409120419.388546-1-johan@kernel.org> References: <20260409120419.388546-1-johan@kernel.org> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Make sure to deregister the controller before disabling underlying resources like interrupts during driver unbind to allow SPI drivers to do I/O during deregistration. Note that clocks were also disabled before the recent commit e532e21a246d ("spi: bcm63xx-hsspi: Simplify clock handling with devm_clk_get_enabled()"). Fixes: a38a2233f23b ("spi: bcmbca-hsspi: Add driver for newer HSSPI controller") Cc: stable@vger.kernel.org # 6.3: deb269e0394f Cc: stable@vger.kernel.org # 6.3 Cc: William Zhang Signed-off-by: Johan Hovold --- drivers/spi/spi-bcmbca-hsspi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-bcmbca-hsspi.c b/drivers/spi/spi-bcmbca-hsspi.c index 2e22345115fd..09c1472ae4fa 100644 --- a/drivers/spi/spi-bcmbca-hsspi.c +++ b/drivers/spi/spi-bcmbca-hsspi.c @@ -538,7 +538,7 @@ static int bcmbca_hsspi_probe(struct platform_device *pdev) return dev_err_probe(dev, ret, "couldn't register sysfs group\n"); /* register and we are done */ - ret = devm_spi_register_controller(dev, host); + ret = spi_register_controller(host); if (ret) goto out_sysgroup_disable; @@ -556,6 +556,8 @@ static void bcmbca_hsspi_remove(struct platform_device *pdev) struct spi_controller *host = platform_get_drvdata(pdev); struct bcmbca_hsspi *bs = spi_controller_get_devdata(host); + spi_unregister_controller(host); + /* reset the hardware and block queue progress */ __raw_writel(0, bs->regs + HSSPI_INT_MASK_REG); sysfs_remove_group(&pdev->dev.kobj, &bcmbca_hsspi_group); -- 2.52.0