diff --git a/drivers/spi/spi-msm-geni.c b/drivers/spi/spi-msm-geni.c index ecccac3c5738..7a5a7e31b1d5 100644 --- a/drivers/spi/spi-msm-geni.c +++ b/drivers/spi/spi-msm-geni.c @@ -166,6 +166,7 @@ struct spi_geni_master { bool shared_ee; /* Dual EE use case */ bool shared_se; /* True Multi EE use case */ bool is_le_vm; /* LE VM usecase */ + bool is_la_vm; /* LA VM property */ bool dis_autosuspend; bool cmd_done; bool set_miso_sampling; @@ -1358,6 +1359,10 @@ static int spi_geni_unprepare_transfer_hardware(struct spi_master *spi) if (mas->shared_ee || mas->is_le_vm) return 0; + if (mas->is_la_vm) + /* Client on LA VM to controls resources, hence return */ + return 0; + if (mas->gsi_mode) { struct se_geni_rsc *rsc; int ret = 0; @@ -1929,6 +1934,11 @@ static int spi_geni_probe(struct platform_device *pdev) dev_info(&pdev->dev, "LE-VM usecase\n"); } + if (of_property_read_bool(pdev->dev.of_node, "qcom,la-vm")) { + geni_mas->is_la_vm = true; + dev_info(&pdev->dev, "LA-VM usecase\n"); + } + /* * For LE, clocks, gpio and icb voting will be provided by * by LA. The SPI operates in GSI mode only for LE usecase,