mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
gpu: nvgpu: Init clock debugfs after clock support
Initialized GK20A clock debugfs after clock support hardware and software are ready. Bug 1450787 Change-Id: I8ec2ef303a84b9151b7ce209a1864f1729382a44 Signed-off-by: Alex Frid <afrid@nvidia.com> Reviewed-on: http://git-master/r/440973 Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
This commit is contained in:
@@ -42,6 +42,10 @@ struct pll_parms gpc_pll_params = {
|
|||||||
1, 32, /* PL */
|
1, 32, /* PL */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef CONFIG_DEBUG_FS
|
||||||
|
static int clk_gk20a_debugfs_init(struct gk20a *g);
|
||||||
|
#endif
|
||||||
|
|
||||||
static u8 pl_to_div[] = {
|
static u8 pl_to_div[] = {
|
||||||
/* PL: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 */
|
/* PL: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 */
|
||||||
/* p: */ 1, 2, 3, 4, 5, 6, 8, 10, 12, 16, 12, 16, 20, 24, 32 };
|
/* p: */ 1, 2, 3, 4, 5, 6, 8, 10, 12, 16, 12, 16, 20, 24, 32 };
|
||||||
@@ -661,6 +665,12 @@ int gk20a_init_clk_support(struct gk20a *g)
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
#ifdef CONFIG_DEBUG_FS
|
||||||
|
if (!clk->debugfs_set) {
|
||||||
|
if (!clk_gk20a_debugfs_init(g))
|
||||||
|
clk->debugfs_set = true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -800,11 +810,10 @@ static int monitor_get(void *data, u64 *val)
|
|||||||
}
|
}
|
||||||
DEFINE_SIMPLE_ATTRIBUTE(monitor_fops, monitor_get, NULL, "%llu\n");
|
DEFINE_SIMPLE_ATTRIBUTE(monitor_fops, monitor_get, NULL, "%llu\n");
|
||||||
|
|
||||||
int clk_gk20a_debugfs_init(struct platform_device *dev)
|
static int clk_gk20a_debugfs_init(struct gk20a *g)
|
||||||
{
|
{
|
||||||
struct dentry *d;
|
struct dentry *d;
|
||||||
struct gk20a_platform *platform = platform_get_drvdata(dev);
|
struct gk20a_platform *platform = platform_get_drvdata(g->dev);
|
||||||
struct gk20a *g = get_gk20a(dev);
|
|
||||||
|
|
||||||
d = debugfs_create_file(
|
d = debugfs_create_file(
|
||||||
"rate", S_IRUGO|S_IWUSR, platform->debugfs, g, &rate_fops);
|
"rate", S_IRUGO|S_IWUSR, platform->debugfs, g, &rate_fops);
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ struct clk_gk20a {
|
|||||||
struct mutex clk_mutex;
|
struct mutex clk_mutex;
|
||||||
bool sw_ready;
|
bool sw_ready;
|
||||||
bool clk_hw_on;
|
bool clk_hw_on;
|
||||||
|
bool debugfs_set;
|
||||||
};
|
};
|
||||||
|
|
||||||
int gk20a_init_clk_support(struct gk20a *g);
|
int gk20a_init_clk_support(struct gk20a *g);
|
||||||
|
|||||||
@@ -1502,8 +1502,6 @@ static int gk20a_probe(struct platform_device *dev)
|
|||||||
gk20a_create_sysfs(dev);
|
gk20a_create_sysfs(dev);
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_FS
|
#ifdef CONFIG_DEBUG_FS
|
||||||
clk_gk20a_debugfs_init(dev);
|
|
||||||
|
|
||||||
spin_lock_init(&gk20a->debugfs_lock);
|
spin_lock_init(&gk20a->debugfs_lock);
|
||||||
gk20a->mm.ltc_enabled = true;
|
gk20a->mm.ltc_enabled = true;
|
||||||
gk20a->mm.ltc_enabled_debug = true;
|
gk20a->mm.ltc_enabled_debug = true;
|
||||||
|
|||||||
@@ -591,10 +591,6 @@ static inline int support_gk20a_pmu(void){return 0;}
|
|||||||
|
|
||||||
void gk20a_create_sysfs(struct platform_device *dev);
|
void gk20a_create_sysfs(struct platform_device *dev);
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_FS
|
|
||||||
int clk_gk20a_debugfs_init(struct platform_device *dev);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define GK20A_BAR0_IORESOURCE_MEM 0
|
#define GK20A_BAR0_IORESOURCE_MEM 0
|
||||||
#define GK20A_BAR1_IORESOURCE_MEM 1
|
#define GK20A_BAR1_IORESOURCE_MEM 1
|
||||||
#define GK20A_SIM_IORESOURCE_MEM 2
|
#define GK20A_SIM_IORESOURCE_MEM 2
|
||||||
|
|||||||
Reference in New Issue
Block a user