.unlocked_ioctl = nvhost_channelctl
};
-static struct {
- int class_id;
- const char *dev_name;
-} class_id_dev_name_map[] = {
- /* { NV_HOST1X_CLASS_ID, ""}, */
- { NV_VIDEO_ENCODE_MPEG_CLASS_ID, "mpe" },
- { NV_VIDEO_ENCODE_MSENC_CLASS_ID, "msenc" },
- { NV_GRAPHICS_3D_CLASS_ID, "gr3d" },
- { NV_GRAPHICS_GPU_CLASS_ID, "gpu"},
- { NV_GRAPHICS_VIC_CLASS_ID, "vic"},
- { NV_TSEC_CLASS_ID, "tsec" },
- { NV_TSECB_CLASS_ID, "tsecb" },
- { NV_NVDEC_CLASS_ID, "nvdec" },
- { NV_NVJPG_CLASS_ID, "nvjpg" },
-};
-
-static struct {
- int module_id;
- const char *dev_name;
-} module_id_dev_name_map[] = {
- { NVHOST_MODULE_VI, "vi"},
- { NVHOST_MODULE_ISP, "isp"},
- { NVHOST_MODULE_MPE, "mpe"},
- { NVHOST_MODULE_NVJPG, "nvjpg"},
- { NVHOST_MODULE_NVDEC, "nvdec"},
- { NVHOST_MODULE_MSENC, "msenc"},
- { NVHOST_MODULE_TSEC, "tsec"},
- { NVHOST_MODULE_GPU, "gpu"},
- { NVHOST_MODULE_VIC, "vic"},
-};
-
static const char *get_device_name_for_dev(struct platform_device *dev)
{
- int i;
- /* first choice is to use the class id if specified */
- for (i = 0; i < ARRAY_SIZE(class_id_dev_name_map); i++) {
- struct nvhost_device_data *pdata = nvhost_get_devdata(dev);
- if (pdata->class == class_id_dev_name_map[i].class_id)
- return class_id_dev_name_map[i].dev_name;
- }
+ struct nvhost_device_data *pdata = nvhost_get_devdata(dev);
- /* second choice is module name if specified */
- for (i = 0; i < ARRAY_SIZE(module_id_dev_name_map); i++) {
- struct nvhost_device_data *pdata = nvhost_get_devdata(dev);
- if (pdata->moduleid == module_id_dev_name_map[i].module_id)
- return module_id_dev_name_map[i].dev_name;
- }
+ if (pdata->devfs_name)
+ return pdata->devfs_name;
- /* last choice is to just use the given dev name */
return dev->name;
}
.moduleid = NVHOST_MODULE_ISP,
.class = NV_VIDEO_STREAMING_ISP_CLASS_ID,
.modulemutexes = {NVMODMUTEX_ISP_0},
+ .devfs_name = "isp",
.exclusive = true,
.keepalive = true,
.powergate_ids = {TEGRA_POWERGATE_VENC, -1},
.num_channels = 1,
/* FIXME: control clocks from user space instead of hard-coding here */
.moduleid = (1 << 16) | NVHOST_MODULE_ISP,
+ .devfs_name = "isp.1",
.class = NV_VIDEO_STREAMING_ISPB_CLASS_ID,
.modulemutexes = {NVMODMUTEX_ISP_1},
.exclusive = true,
.moduleid = NVHOST_MODULE_VI,
.class = NV_VIDEO_STREAMING_VI_CLASS_ID,
.modulemutexes = {NVMODMUTEX_VI_0},
+ .devfs_name = "vi",
.exclusive = true,
.keepalive = true,
.powergate_ids = {TEGRA_POWERGATE_VENC, -1},
.moduleid = NVHOST_MODULE_VI,
.class = NV_VIDEO_STREAMING_VI_CLASS_ID,
.modulemutexes = {NVMODMUTEX_VI_0},
+ .devfs_name = "vi",
.exclusive = true,
.keepalive = true,
.powergate_ids = {TEGRA_POWERGATE_VENC, -1},
.moduleid = (1 << 16 | NVHOST_MODULE_VI),
.class = NV_VIDEO_STREAMING_VI_CLASS_ID,
.modulemutexes = {NVMODMUTEX_VI_1},
+ .devfs_name = "vi",
.exclusive = true,
.keepalive = true,
.powergate_ids = {TEGRA_POWERGATE_VENC, -1},
.num_channels = 1,
.version = NVHOST_ENCODE_FLCN_VER(3, 1),
.modulemutexes = {NVMODMUTEX_MSENC},
+ .devfs_name = "msenc",
.class = NV_VIDEO_ENCODE_MSENC_CLASS_ID,
.clocks = {{"msenc", UINT_MAX, 0, TEGRA_MC_CLIENT_MSENC},
{"emc", HOST_EMC_FLOOR,
.version = NVHOST_ENCODE_TSEC_VER(1, 0),
.class = NV_TSEC_CLASS_ID,
.modulemutexes = {NVMODMUTEX_TSECA},
+ .devfs_name = "tsec",
.exclusive = false,
.clocks = {{"tsec", UINT_MAX, 0, TEGRA_MC_CLIENT_TSEC},
{"emc", HOST_EMC_FLOOR} },
struct nvhost_device_data t124_vic_info = {
.num_channels = 1,
.modulemutexes = {NVMODMUTEX_VIC},
+ .devfs_name = "vic",
.clocks = {{"vic03", UINT_MAX, 0, TEGRA_MC_CLIENT_VIC},
{"emc", UINT_MAX,
NVHOST_MODULE_ID_EXTERNAL_MEMORY_CONTROLLER},
static struct nvhost_device_data t132_msenc_info = {
.num_channels = 1,
+ .devfs_name = "msenc",
.version = NVHOST_ENCODE_FLCN_VER(3, 1),
.modulemutexes = {NVMODMUTEX_MSENC},
.class = NV_VIDEO_ENCODE_MSENC_CLASS_ID,
struct nvhost_device_data t21_isp_info = {
.num_channels = 1,
.moduleid = NVHOST_MODULE_ISP,
+ .devfs_name = "isp",
.class = NV_VIDEO_STREAMING_ISP_CLASS_ID,
.modulemutexes = {NVMODMUTEX_ISP_0},
.exclusive = true,
struct nvhost_device_data t21_ispb_info = {
.num_channels = 1,
.moduleid = (1 << 16) | NVHOST_MODULE_ISP,
+ .devfs_name = "isp.1",
.class = NV_VIDEO_STREAMING_ISPB_CLASS_ID,
.modulemutexes = {NVMODMUTEX_ISP_1},
.exclusive = true,
#ifdef CONFIG_VI_ONE_DEVICE
struct nvhost_device_data t21_vi_info = {
.modulemutexes = {NVMODMUTEX_VI_0},
+ .devfs_name = "vi",
.exclusive = true,
.class = NV_VIDEO_STREAMING_VI_CLASS_ID,
/* HACK: Mark as keepalive until 1188795 is fixed */
#else
struct nvhost_device_data t21_vib_info = {
.modulemutexes = {NVMODMUTEX_VI_1},
+ .devfs_name = "vi",
.class = NV_VIDEO_STREAMING_VI_CLASS_ID,
.exclusive = true,
/* HACK: Mark as keepalive until 1188795 is fixed */
struct nvhost_device_data t21_vi_info = {
.modulemutexes = {NVMODMUTEX_VI_0},
+ .devfs_name = "vi",
.class = NV_VIDEO_STREAMING_VI_CLASS_ID,
.exclusive = true,
/* HACK: Mark as keepalive until 1188795 is fixed */
.version = NVHOST_ENCODE_FLCN_VER(5, 0),
.class = NV_VIDEO_ENCODE_NVENC_CLASS_ID,
.modulemutexes = {NVMODMUTEX_MSENC},
+ .devfs_name = "msenc",
#ifdef TEGRA_POWERGATE_NVENC
.powergate_ids = { TEGRA_POWERGATE_NVENC, -1 },
#else
.version = NVHOST_ENCODE_NVDEC_VER(2, 0),
.class = NV_NVDEC_CLASS_ID,
.modulemutexes = {NVMODMUTEX_NVDEC},
+ .devfs_name = "nvdec",
#ifdef TEGRA_POWERGATE_NVDEC
.powergate_ids = { TEGRA_POWERGATE_NVDEC, -1 },
#else
.version = NVHOST_ENCODE_FLCN_VER(1, 0),
.class = NV_NVJPG_CLASS_ID,
.modulemutexes = {NVMODMUTEX_NVJPG},
+ .devfs_name = "nvjpg",
#ifdef TEGRA_POWERGATE_NVJPG
.powergate_ids = { TEGRA_POWERGATE_NVJPG, -1 },
#else
struct nvhost_device_data t21_tsec_info = {
.num_channels = 1,
.modulemutexes = {NVMODMUTEX_TSECA},
+ .devfs_name = "tsec",
.version = NVHOST_ENCODE_TSEC_VER(1, 0),
.class = NV_TSEC_CLASS_ID,
.exclusive = false,
struct nvhost_device_data t21_tsecb_info = {
.num_channels = 1,
.modulemutexes = {NVMODMUTEX_TSECB},
+ .devfs_name = "tsecb",
.version = NVHOST_ENCODE_TSEC_VER(1, 0),
.class = NV_TSECB_CLASS_ID,
.exclusive = true,
struct nvhost_device_data t21_vic_info = {
.num_channels = 1,
.modulemutexes = {NVMODMUTEX_VIC},
+ .devfs_name = "vic",
.clocks = {{"vic03", UINT_MAX, 0, TEGRA_MC_CLIENT_VIC},
{"emc", UINT_MAX,
NVHOST_MODULE_ID_EXTERNAL_MEMORY_CONTROLLER},
bool push_work_done; /* Push_op done into push buffer */
bool poweron_reset; /* Reset the engine before powerup */
bool virtual_dev; /* True if virtualized device */
+ char *devfs_name; /* Name in devfs */
char *firmware_name; /* Name of firmware */