FROMLIST v2 clk: qcom: gxclkctl: Remove GX/GMxC rail votes to align with IFPC

The GX GDSC control is handled through a dedicated clock controller,
and the enable/disable sequencing depends on correct rail voting.
The driver votes for the GX/GMxC rails and CX GDSC before toggling
the GX GDSC. Currently, during GMU runtime PM resume, rails remain
enabled due to upstream votes propagated via RPM-enabled devlinks
and explicit pm_runtime votes on GX GDSC.

This is not an expected behaviour of IFPC(Inter Frame Power Collapse)
requirements of GPU as GMU firmware is expected to control these rails,
except during the GPU/GMU recovery via the OS and that is where the GX
GDSC should be voting for the rails (GX/GMxC and CX GDSC) before
toggling the GX GDSC.

Thus, disable runtime PM after successfully registering the clock
controller.

Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
This commit is contained in:
Taniya Das 2026-04-27 12:08:58 +05:30 committed by Luca Weiss
commit fa645b9c77

View file

@ -7,6 +7,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>
#include <dt-bindings/clock/qcom,kaanapali-gxclkctl.h>
@ -62,7 +63,15 @@ MODULE_DEVICE_TABLE(of, gx_clkctl_kaanapali_match_table);
static int gx_clkctl_kaanapali_probe(struct platform_device *pdev)
{
return qcom_cc_probe(pdev, &gx_clkctl_kaanapali_desc);
int ret;
ret = qcom_cc_probe(pdev, &gx_clkctl_kaanapali_desc);
if (ret)
return ret;
pm_runtime_disable(&pdev->dev);
return ret;
}
static struct platform_driver gx_clkctl_kaanapali_driver = {