sor.c (ad2139cb80a7a9afbfe428d0448d351a84e22ee6) | sor.c (c472a0b0a1fd1688157b4ad6efc1c3fb8e571a53) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (C) 2013 NVIDIA Corporation 4 */ 5 6#include <linux/clk.h> 7#include <linux/clk-provider.h> 8#include <linux/debugfs.h> --- 3900 unchanged lines hidden (view full) --- 3909 if (err < 0) { 3910 dev_err(&pdev->dev, "failed to use safe clock: %d\n", err); 3911 goto remove; 3912 } 3913 3914 platform_set_drvdata(pdev, sor); 3915 pm_runtime_enable(&pdev->dev); 3916 | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (C) 2013 NVIDIA Corporation 4 */ 5 6#include <linux/clk.h> 7#include <linux/clk-provider.h> 8#include <linux/debugfs.h> --- 3900 unchanged lines hidden (view full) --- 3909 if (err < 0) { 3910 dev_err(&pdev->dev, "failed to use safe clock: %d\n", err); 3911 goto remove; 3912 } 3913 3914 platform_set_drvdata(pdev, sor); 3915 pm_runtime_enable(&pdev->dev); 3916 |
3917 INIT_LIST_HEAD(&sor->client.list); 3918 sor->client.ops = &sor_client_ops; 3919 sor->client.dev = &pdev->dev; 3920 3921 err = host1x_client_register(&sor->client); 3922 if (err < 0) { 3923 dev_err(&pdev->dev, "failed to register host1x client: %d\n", 3924 err); 3925 goto rpm_disable; 3926 } 3927 |
|
3917 /* 3918 * On Tegra210 and earlier, provide our own implementation for the 3919 * pad output clock. 3920 */ 3921 if (!sor->clk_pad) { 3922 char *name; 3923 3924 name = devm_kasprintf(sor->dev, GFP_KERNEL, "sor%u_pad_clkout", 3925 sor->index); 3926 if (!name) { 3927 err = -ENOMEM; | 3928 /* 3929 * On Tegra210 and earlier, provide our own implementation for the 3930 * pad output clock. 3931 */ 3932 if (!sor->clk_pad) { 3933 char *name; 3934 3935 name = devm_kasprintf(sor->dev, GFP_KERNEL, "sor%u_pad_clkout", 3936 sor->index); 3937 if (!name) { 3938 err = -ENOMEM; |
3928 goto rpm_disable; | 3939 goto unregister; |
3929 } 3930 3931 err = host1x_client_resume(&sor->client); 3932 if (err < 0) { 3933 dev_err(sor->dev, "failed to resume: %d\n", err); | 3940 } 3941 3942 err = host1x_client_resume(&sor->client); 3943 if (err < 0) { 3944 dev_err(sor->dev, "failed to resume: %d\n", err); |
3934 goto rpm_disable; | 3945 goto unregister; |
3935 } 3936 3937 sor->clk_pad = tegra_clk_sor_pad_register(sor, name); 3938 host1x_client_suspend(&sor->client); 3939 } 3940 3941 if (IS_ERR(sor->clk_pad)) { 3942 err = PTR_ERR(sor->clk_pad); | 3946 } 3947 3948 sor->clk_pad = tegra_clk_sor_pad_register(sor, name); 3949 host1x_client_suspend(&sor->client); 3950 } 3951 3952 if (IS_ERR(sor->clk_pad)) { 3953 err = PTR_ERR(sor->clk_pad); |
3943 dev_err(&pdev->dev, "failed to register SOR pad clock: %d\n", | 3954 dev_err(sor->dev, "failed to register SOR pad clock: %d\n", |
3944 err); | 3955 err); |
3945 goto rpm_disable; | 3956 goto unregister; |
3946 } 3947 | 3957 } 3958 |
3948 INIT_LIST_HEAD(&sor->client.list); 3949 sor->client.ops = &sor_client_ops; 3950 sor->client.dev = &pdev->dev; 3951 3952 err = host1x_client_register(&sor->client); 3953 if (err < 0) { 3954 dev_err(&pdev->dev, "failed to register host1x client: %d\n", 3955 err); 3956 goto rpm_disable; 3957 } 3958 | |
3959 return 0; 3960 | 3959 return 0; 3960 |
3961unregister: 3962 host1x_client_unregister(&sor->client); |
|
3961rpm_disable: 3962 pm_runtime_disable(&pdev->dev); 3963remove: 3964 if (sor->ops && sor->ops->remove) 3965 sor->ops->remove(sor); 3966output: 3967 tegra_output_remove(&sor->output); 3968 return err; --- 86 unchanged lines hidden --- | 3963rpm_disable: 3964 pm_runtime_disable(&pdev->dev); 3965remove: 3966 if (sor->ops && sor->ops->remove) 3967 sor->ops->remove(sor); 3968output: 3969 tegra_output_remove(&sor->output); 3970 return err; --- 86 unchanged lines hidden --- |