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:
parent
e94350ea7b
commit
fa645b9c77
1 changed files with 10 additions and 1 deletions
|
|
@ -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 = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue