diff options
| -rw-r--r-- | drivers/gpu/host1x/dev.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/host1x/dev.h | 2 | ||||
| -rw-r--r-- | drivers/gpu/host1x/drm/hdmi.c | 7 | ||||
| -rw-r--r-- | drivers/gpu/host1x/drm/rgb.c | 14 | ||||
| -rw-r--r-- | drivers/gpu/host1x/job.c | 15 |
5 files changed, 23 insertions, 17 deletions
diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c index 28e28a23d444..471630299878 100644 --- a/drivers/gpu/host1x/dev.c +++ b/drivers/gpu/host1x/dev.c | |||
| @@ -43,7 +43,7 @@ void host1x_set_drm_data(struct device *dev, void *data) | |||
| 43 | void *host1x_get_drm_data(struct device *dev) | 43 | void *host1x_get_drm_data(struct device *dev) |
| 44 | { | 44 | { |
| 45 | struct host1x *host1x = dev_get_drvdata(dev); | 45 | struct host1x *host1x = dev_get_drvdata(dev); |
| 46 | return host1x->drm_data; | 46 | return host1x ? host1x->drm_data : NULL; |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | void host1x_sync_writel(struct host1x *host1x, u32 v, u32 r) | 49 | void host1x_sync_writel(struct host1x *host1x, u32 v, u32 r) |
diff --git a/drivers/gpu/host1x/dev.h b/drivers/gpu/host1x/dev.h index 790ddf114e58..bed90a8131be 100644 --- a/drivers/gpu/host1x/dev.h +++ b/drivers/gpu/host1x/dev.h | |||
| @@ -301,8 +301,8 @@ static inline void host1x_hw_show_mlocks(struct host1x *host, struct output *o) | |||
| 301 | host->debug_op->show_mlocks(host, o); | 301 | host->debug_op->show_mlocks(host, o); |
| 302 | } | 302 | } |
| 303 | 303 | ||
| 304 | extern struct platform_driver tegra_hdmi_driver; | ||
| 305 | extern struct platform_driver tegra_dc_driver; | 304 | extern struct platform_driver tegra_dc_driver; |
| 305 | extern struct platform_driver tegra_hdmi_driver; | ||
| 306 | extern struct platform_driver tegra_gr2d_driver; | 306 | extern struct platform_driver tegra_gr2d_driver; |
| 307 | 307 | ||
| 308 | #endif | 308 | #endif |
diff --git a/drivers/gpu/host1x/drm/hdmi.c b/drivers/gpu/host1x/drm/hdmi.c index 52e3c9641a0f..644d95c7d489 100644 --- a/drivers/gpu/host1x/drm/hdmi.c +++ b/drivers/gpu/host1x/drm/hdmi.c | |||
| @@ -888,6 +888,11 @@ static int tegra_hdmi_show_regs(struct seq_file *s, void *data) | |||
| 888 | { | 888 | { |
| 889 | struct drm_info_node *node = s->private; | 889 | struct drm_info_node *node = s->private; |
| 890 | struct tegra_hdmi *hdmi = node->info_ent->data; | 890 | struct tegra_hdmi *hdmi = node->info_ent->data; |
| 891 | int err; | ||
| 892 | |||
| 893 | err = clk_enable(hdmi->clk); | ||
| 894 | if (err) | ||
| 895 | return err; | ||
| 891 | 896 | ||
| 892 | #define DUMP_REG(name) \ | 897 | #define DUMP_REG(name) \ |
| 893 | seq_printf(s, "%-56s %#05x %08lx\n", #name, name, \ | 898 | seq_printf(s, "%-56s %#05x %08lx\n", #name, name, \ |
| @@ -1053,6 +1058,8 @@ static int tegra_hdmi_show_regs(struct seq_file *s, void *data) | |||
| 1053 | 1058 | ||
| 1054 | #undef DUMP_REG | 1059 | #undef DUMP_REG |
| 1055 | 1060 | ||
| 1061 | clk_disable(hdmi->clk); | ||
| 1062 | |||
| 1056 | return 0; | 1063 | return 0; |
| 1057 | } | 1064 | } |
| 1058 | 1065 | ||
diff --git a/drivers/gpu/host1x/drm/rgb.c b/drivers/gpu/host1x/drm/rgb.c index ed4416f20260..5aa66ef7a946 100644 --- a/drivers/gpu/host1x/drm/rgb.c +++ b/drivers/gpu/host1x/drm/rgb.c | |||
| @@ -147,6 +147,13 @@ int tegra_dc_rgb_probe(struct tegra_dc *dc) | |||
| 147 | if (!rgb) | 147 | if (!rgb) |
| 148 | return -ENOMEM; | 148 | return -ENOMEM; |
| 149 | 149 | ||
| 150 | rgb->output.dev = dc->dev; | ||
| 151 | rgb->output.of_node = np; | ||
| 152 | |||
| 153 | err = tegra_output_parse_dt(&rgb->output); | ||
| 154 | if (err < 0) | ||
| 155 | return err; | ||
| 156 | |||
| 150 | rgb->clk = devm_clk_get(dc->dev, NULL); | 157 | rgb->clk = devm_clk_get(dc->dev, NULL); |
| 151 | if (IS_ERR(rgb->clk)) { | 158 | if (IS_ERR(rgb->clk)) { |
| 152 | dev_err(dc->dev, "failed to get clock\n"); | 159 | dev_err(dc->dev, "failed to get clock\n"); |
| @@ -165,13 +172,6 @@ int tegra_dc_rgb_probe(struct tegra_dc *dc) | |||
| 165 | return err; | 172 | return err; |
| 166 | } | 173 | } |
| 167 | 174 | ||
| 168 | rgb->output.dev = dc->dev; | ||
| 169 | rgb->output.of_node = np; | ||
| 170 | |||
| 171 | err = tegra_output_parse_dt(&rgb->output); | ||
| 172 | if (err < 0) | ||
| 173 | return err; | ||
| 174 | |||
| 175 | dc->rgb = &rgb->output; | 175 | dc->rgb = &rgb->output; |
| 176 | 176 | ||
| 177 | return 0; | 177 | return 0; |
diff --git a/drivers/gpu/host1x/job.c b/drivers/gpu/host1x/job.c index cc807667d8f1..c4e1050f2252 100644 --- a/drivers/gpu/host1x/job.c +++ b/drivers/gpu/host1x/job.c | |||
| @@ -42,12 +42,12 @@ struct host1x_job *host1x_job_alloc(struct host1x_channel *ch, | |||
| 42 | 42 | ||
| 43 | /* Check that we're not going to overflow */ | 43 | /* Check that we're not going to overflow */ |
| 44 | total = sizeof(struct host1x_job) + | 44 | total = sizeof(struct host1x_job) + |
| 45 | num_relocs * sizeof(struct host1x_reloc) + | 45 | (u64)num_relocs * sizeof(struct host1x_reloc) + |
| 46 | num_unpins * sizeof(struct host1x_job_unpin_data) + | 46 | (u64)num_unpins * sizeof(struct host1x_job_unpin_data) + |
| 47 | num_waitchks * sizeof(struct host1x_waitchk) + | 47 | (u64)num_waitchks * sizeof(struct host1x_waitchk) + |
| 48 | num_cmdbufs * sizeof(struct host1x_job_gather) + | 48 | (u64)num_cmdbufs * sizeof(struct host1x_job_gather) + |
| 49 | num_unpins * sizeof(dma_addr_t) + | 49 | (u64)num_unpins * sizeof(dma_addr_t) + |
| 50 | num_unpins * sizeof(u32 *); | 50 | (u64)num_unpins * sizeof(u32 *); |
| 51 | if (total > ULONG_MAX) | 51 | if (total > ULONG_MAX) |
| 52 | return NULL; | 52 | return NULL; |
| 53 | 53 | ||
| @@ -466,9 +466,8 @@ static inline int copy_gathers(struct host1x_job *job, struct device *dev) | |||
| 466 | &job->gather_copy, | 466 | &job->gather_copy, |
| 467 | GFP_KERNEL); | 467 | GFP_KERNEL); |
| 468 | if (!job->gather_copy_mapped) { | 468 | if (!job->gather_copy_mapped) { |
| 469 | int err = PTR_ERR(job->gather_copy_mapped); | ||
| 470 | job->gather_copy_mapped = NULL; | 469 | job->gather_copy_mapped = NULL; |
| 471 | return err; | 470 | return -ENOMEM; |
| 472 | } | 471 | } |
| 473 | 472 | ||
| 474 | job->gather_copy_size = size; | 473 | job->gather_copy_size = size; |
