The conflict resolved in 2023.1_update branch is basically merging xilinx and upstream resume implementation. In cqspi_resume() I see that below code sequence[1] is called twice which can be optimized but is functionally working as reported by the internal regression team.
[1] cqspi_controller_init(cqspi); cqspi->current_cs = -1; cqspi->sclk = 0; I had also discussed this merge conflict with the driver owner and he confirmed that the merge commit published to 2023.1_update should functionally work as we are calling _init with the same values so should not have any side effects. Now there are two choices - a) Continue to use merge resolution published to the 2023.1_update branch. b) Use the below optimize fix for cqspi_resume. static int cqspi_resume(struct device *dev) { struct cqspi_st *cqspi = dev_get_drvdata(dev); struct spi_master *master = dev_get_drvdata(dev); u32 ret; clk_prepare_enable(cqspi->clk); cqspi_wait_idle(cqspi); cqspi_controller_init(cqspi); cqspi->current_cs = -1; cqspi->sclk = 0; cqspi->extra_dummy = false; cqspi->clk_tuned = false; ret = cqspi_setup_flash(cqspi); if (ret) { dev_err(dev, "failed to setup flash parameters %d\n", ret); return ret; } ret = zynqmp_pm_ospi_mux_select(cqspi->pd_dev_id, PM_OSPI_MUX_SEL_LINEAR); if (ret) return ret; /* Set the direction as output and enable the output */ gpio_direction_output(cqspi->gpio, 1); udelay(1); /* Set value 0 to pin */ gpio_set_value(cqspi->gpio, 0); udelay(10); /* Set value 1 to pin */ gpio_set_value(cqspi->gpio, 1); udelay(35); return spi_master_resume(master); } -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux-xilinx-zynqmp in Ubuntu. https://bugs.launchpad.net/bugs/2041782 Title: spi: spi-cadence-quadspi: Fix ospi resume failures conflicts Status in linux-xilinx-zynqmp package in Ubuntu: New Status in linux-xilinx-zynqmp source package in Jammy: New Bug description: jammy:xilinx-zynqmp is carrying a patch subject "spi: spi-cadence- quadspi: Fix ospi resume failure" from the Xilinx tree , branch xlnx_rebase_v5.15_LTS_2022.1_update . This commit hasn't been upstreamed and completely rewrites the function cqspi_resume(). A change has landed in the v5.15.111 upstream stable release which conflicts with this Xilinx patch in such a way that we don't know how to resolve the conflicts and keep the functionality intact. We have found where Xlinx resolved the merge on the XIlinx 6.1 branch but it doesn't seem correct. In the original commit: (https://github.com/Xilinx/linux- xlnx/commit/6edac18033db445439ca57c23b8cee29a6bbdf0f) in the function cqspi_resume() , the call to cqspi_controller_enable() is removed and ZynqMP specific controls are added. Upstream fixed an issue with suspend-resume (https://github.com/torvalds/linux/commit/2087e85bb66ee3652dafe732bb9b9b896229eafc). The upstream fix replaces the cqspi_controller_enable() with some clock initializations and a call to cqspi_controller_init() which does some register writes before calling cqspi_controller_enable(). Xilinx resolve the conflict by concatenating the two commit's changes to cqspi_resume() (https://github.com/Xilinx/linux-xlnx/blob/xlnx_rebase_v6.1_LTS_2023.1_update/drivers/spi/spi-cadence-quadspi.c#L2271), the end result is that cqspi_resume() consists of ZynqMP specific controls followed by a (nested) call to cqspi_controller_enable(), the exact function call that was removed in XIlinx's original commit. This bug is to track how this merge conflict is resolved. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux-xilinx-zynqmp/+bug/2041782/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp