/* note: caller must release_firmware */
return fw;
}
+EXPORT_SYMBOL(nvhost_client_request_firmware);
int nvhost_client_device_release(struct platform_device *dev);
-const struct firmware *
-nvhost_client_request_firmware(struct platform_device *dev,
- const char *fw_name);
-
int nvhost_client_device_get_resources(struct platform_device *dev);
#endif
GCOV_PROFILE := y
-ccflags-y += -Idrivers/video/tegra/host
ccflags-y += -Idrivers/devfreq
ccflags-y += -Wno-multichar
ccflags-y += -Werror
#define __GK20A_AS_H
#include <linux/atomic.h>
+#include <linux/cdev.h>
#include <linux/fs.h>
#include <linux/nvhost_as_ioctl.h>
* Write in batches of 128 as there seems to be a limit
* of how much you can output to ftrace at once.
*/
- for (i = 0; i < words; i += TRACE_MAX_LENGTH) {
+ for (i = 0; i < words; i += 128U) {
trace_gk20a_push_cmdbuf(
c->g->dev->name,
0,
- min(words - i, TRACE_MAX_LENGTH),
+ min(words - i, 128U),
offset + i * sizeof(u32),
mem);
}
for (chid = 0; chid < f->num_channels; chid++) {
if (f->channel[chid].in_use) {
- nvhost_dbg_info("resume channel %d", chid);
+ gk20a_dbg_info("resume channel %d", chid);
g->ops.fifo.bind_channel(&f->channel[chid]);
channels_in_use = true;
}
struct gr_gk20a;
struct dbg_session_gk20a;
-#include "nvhost_channel.h"
#include "channel_sync_gk20a.h"
#include "mm_gk20a.h"
#include "gk20a.h"
#ifdef CONFIG_SYNC
-#include "../../../staging/android/sync.h"
+#include "../../../../staging/android/sync.h"
#endif
#ifdef CONFIG_TEGRA_GK20A
#include <linux/clk/tegra.h>
#include <mach/thermal.h>
-#include "../dev.h"
-
#include "gk20a.h"
#include "hw_trim_gk20a.h"
#include "hw_timer_gk20a.h"
#include <linux/cdev.h>
#include <linux/nvhost_gpu_ioctl.h>
-#include "dev.h"
-#include "class_ids.h"
-#include "bus_client.h"
-#include "nvhost_acm.h"
-
#include "gk20a.h"
int gk20a_ctrl_dev_open(struct inode *inode, struct file *filp)
#include <linux/nvhost.h>
#include <linux/nvhost_dbg_gpu_ioctl.h>
-#include "dev.h"
-#include "nvhost_acm.h"
#include "gk20a.h"
#include "gr_gk20a.h"
#include "dbg_gpu_gk20a.h"
*/
#include <linux/types.h>
-#include <dev.h>
-#include "gk20a/gk20a.h"
+
+#include "gk20a.h"
#include "kind_gk20a.h"
#include "hw_mc_gk20a.h"
#include <linux/scatterlist.h>
#include <trace/events/gk20a.h>
#include <linux/dma-mapping.h>
+#include <linux/nvhost.h>
-#include "../dev.h"
-
-#include "debug_gk20a.h"
#include "gk20a.h"
+#include "debug_gk20a.h"
#include "hw_fifo_gk20a.h"
#include "hw_pbdma_gk20a.h"
#include "hw_ccsr_gk20a.h"
#include <mach/pm_domains.h>
-#include "dev.h"
-#include "class_ids.h"
-#include "bus_client.h"
-#include "nvhost_acm.h"
-
#include "gk20a.h"
#include "debug_gk20a.h"
#include "ctrl_gk20a.h"
set_gk20a(dev, gk20a);
gk20a->dev = dev;
-#ifdef CONFIG_TEGRA_GK20A
- gk20a->host = nvhost_get_host(dev);
-#endif
err = gk20a_user_init(dev);
if (err)
if (!fw)
fw = nvhost_client_request_firmware(g->dev, fw_name);
#endif
+
if (!fw) {
dev_err(dev, "failed to get firmware\n");
return NULL;
struct gr_gk20a;
struct sim_gk20a;
-#include "dev.h"
-
-#include <linux/tegra-soc.h>
+#include <linux/sched.h>
#include <linux/spinlock.h>
#include <linux/nvhost_gpu_ioctl.h>
+#include <linux/tegra-soc.h>
+
+#include "../../../../../arch/arm/mach-tegra/iomap.h"
+
#include "as_gk20a.h"
#include "clk_gk20a.h"
#include "fifo_gk20a.h"
#include "therm_gk20a.h"
#include "platform_gk20a.h"
-#include "../../../../../arch/arm/mach-tegra/iomap.h"
-
extern struct platform_device tegra_gk20a_device;
bool is_gk20a_module(struct platform_device *dev);
};
struct gk20a {
- struct nvhost_master *host;
struct platform_device *dev;
struct resource *reg_mem;
{
return &g->dev->dev;
}
-static inline struct nvhost_syncpt *syncpt_from_gk20a(struct gk20a* g)
-{
- return &(nvhost_get_host(g->dev)->syncpt);
-}
static inline struct gk20a *gk20a_from_as(struct gk20a_as *as)
{
return container_of(as, struct gk20a, as);
#define __gk20a_gating_reglist_h__
#include <linux/types.h>
-#include "dev.h"
#include "gk20a_gating_reglist.h"
struct gating_desc {
#include <governor.h>
-#include "dev.h"
-#include "chip_support.h"
-#include "nvhost_acm.h"
#include "gk20a.h"
#include "pmu_gk20a.h"
#include "clk_gk20a.h"
#include "gk20a_scale.h"
-#include "gr3d/scale3d.h"
static ssize_t gk20a_scale_load_show(struct device *dev,
struct device_attribute *attr,
*/
#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
#include <linux/kernel.h>
#include <linux/fb.h>
-#include "../dev.h"
+#include <mach/clk.h>
+
#include "gk20a.h"
#include "gr_gk20a.h"
#include "fifo_gk20a.h"
-#include "nvhost_acm.h"
-#include <mach/clk.h>
#define PTIMER_FP_FACTOR 1000000
#include <linux/firmware.h>
-#include "dev.h"
-#include "bus_client.h"
-
#include "gk20a.h"
#include "gr_ctx_gk20a.h"
#include "hw_gr_gk20a.h"
* 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include "../dev.h"
-
#include "gk20a.h"
#include "gr_ctx_gk20a.h"
#include <linux/vmalloc.h>
#include <linux/dma-mapping.h>
#include <linux/firmware.h>
-
-#include "../dev.h"
-#include "bus_client.h"
+#include <linux/nvhost.h>
#include "gk20a.h"
#include "kind_gk20a.h"
#include "hw_fb_gk20a.h"
#include "hw_therm_gk20a.h"
#include "hw_pbdma_gk20a.h"
-#include "chip_support.h"
#include "gr_pri_gk20a.h"
#include "regops_gk20a.h"
#include "dbg_gpu_gk20a.h"
#include "gk20a.h"
#include "gr_gk20a.h"
-#include "dev.h"
-
static int gk20a_determine_L2_size_bytes(struct gk20a *g)
{
const u32 gpuid = GK20A_GPUID(g->gpu_characteristics.arch,
#include <linux/dma-buf.h>
#include <asm/cacheflush.h>
-#include "dev.h"
#include "gk20a.h"
#include "mm_gk20a.h"
#include "hw_gmmu_gk20a.h"
};
struct gr_ctx_buffer_desc;
+struct platform_device;
struct gr_ctx_buffer_desc {
void (*destroy)(struct platform_device *, struct gr_ctx_buffer_desc *);
struct sg_table *sgt;
* more details.
*/
-#include "platform_gk20a.h"
-#include "gr3d/scale3d.h"
-#include "gk20a_scale.h"
-#include "nvhost_acm.h"
-#include "bus_client.h"
-#include "class_ids.h"
#include <linux/debugfs.h>
-#include "t124/syncpt_t124.h"
-#include "../../../../../arch/arm/mach-tegra/iomap.h"
#include <linux/tegra-powergate.h>
#include <linux/platform_data/tegra_edp.h>
#include <linux/nvhost_ioctl.h>
#include <mach/irqs.h>
#include <mach/pm_domains.h>
+#include "../../../../../arch/arm/mach-tegra/iomap.h"
+
#include "gk20a.h"
#include "hal_gk20a.h"
+#include "platform_gk20a.h"
+#include "gk20a_scale.h"
#define TEGRA_GK20A_INTR INT_GPU
#define TEGRA_GK20A_INTR_NONSTALL INT_GPU_NONSTALL
#include <linux/delay.h> /* for mdelay */
-#include "../dev.h"
-
#include "gk20a.h"
#include "hw_mc_gk20a.h"
#include "hw_pri_ringmaster_gk20a.h"
#include <linux/bsearch.h>
#include <linux/nvhost_dbg_gpu_ioctl.h>
-#include "dev.h"
#include "gk20a.h"
#include "gr_gk20a.h"
#include "dbg_gpu_gk20a.h"
* 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include "../dev.h"
-
-#include "../t124/t124.h"
-
#include "gk20a.h"
#include "hw_chiplet_pwr_gk20a.h"
#include "hw_gr_gk20a.h"
#include <mach/mc.h>
#include "dev.h"
+#include "nvhost_channel.h"
#include "nvhost_job.h"
#include "class_ids.h"
#ifdef CONFIG_TEGRA_GRHOST
void nvhost_debug_dump_device(struct platform_device *pdev);
+const struct firmware *
+nvhost_client_request_firmware(struct platform_device *dev,
+ const char *fw_name);
#else
static inline void nvhost_debug_dump_device(struct platform_device *pdev) {}
+
+static inline const struct firmware *
+nvhost_client_request_firmware(struct platform_device *dev,
+ const char *fw_name)
+{
+ return NULL;
+}
#endif
#ifdef CONFIG_TEGRA_GRHOST_SYNC