dev_info(&dev->dev, "initialized\n");
if (pdata->slave && !pdata->slave_initialized) {
- struct nvhost_device_data *slave_pdata =
- pdata->slave->dev.platform_data;
- slave_pdata->master = dev;
pdata->slave->dev.parent = dev->dev.parent;
platform_device_register(pdata->slave);
pdata->slave_initialized = 1;
};
struct resource gk20a_resources_sim[] = {
- {
- .start = TEGRA_GK20A_SIM_BASE,
- .end = TEGRA_GK20A_SIM_BASE + TEGRA_GK20A_SIM_SIZE - 1,
- .flags = IORESOURCE_MEM,
- },
{
.start = TEGRA_GK20A_BAR0_BASE,
.end = TEGRA_GK20A_BAR0_BASE + TEGRA_GK20A_BAR0_SIZE - 1,
.end = TEGRA_GK20A_BAR1_BASE + TEGRA_GK20A_BAR1_SIZE - 1,
.flags = IORESOURCE_MEM,
},
+ {
+ .start = TEGRA_GK20A_SIM_BASE,
+ .end = TEGRA_GK20A_SIM_BASE + TEGRA_GK20A_SIM_SIZE - 1,
+ .flags = IORESOURCE_MEM,
+ },
};
const struct file_operations tegra_gk20a_ctrl_ops = {
struct nvhost_hwctx_handler *nvhost_gk20a_alloc_hwctx_handler(u32 syncpt,
u32 waitbase, struct nvhost_channel *ch);
-#define GK20A_SIM_IORESOURCE_MEM 0
-#define GK20A_BAR0_IORESOURCE_MEM 1
-#define GK20A_BAR1_IORESOURCE_MEM 2
+#define GK20A_BAR0_IORESOURCE_MEM 0
+#define GK20A_BAR1_IORESOURCE_MEM 1
+#define GK20A_SIM_IORESOURCE_MEM 2
#define TEGRA_GK20A_SIM_BASE 0x538F0000 /*tbd: get from iomap.h */
#define TEGRA_GK20A_SIM_SIZE 0x1000 /*tbd: this is a high-side guess */
#define T12_ISP_CG_CTRL 0x1d
#define T12_CG_2ND_LEVEL_EN 1
-#define T12_ISPB_DEV_ID 1
static struct of_device_id tegra_isp_of_match[] = {
#ifdef TEGRA_11X_OR_HIGHER_CONFIG
static int isp_probe(struct platform_device *dev)
{
int err = 0;
-#ifdef TEGRA_12X_OR_HIGHER_CONFIG
- int dev_id = 0;
-#endif
struct nvhost_device_data *pdata = NULL;
if (dev->dev.of_node) {
match = of_match_device(tegra_isp_of_match, &dev->dev);
if (match)
pdata = (struct nvhost_device_data *)match->data;
-#ifdef TEGRA_12X_OR_HIGHER_CONFIG
- sscanf(dev->name, "isp.%1d", &dev_id);
- if (dev_id == T12_ISPB_DEV_ID)
- pdata = &t124_ispb_info;
-#endif
} else
pdata = (struct nvhost_device_data *)dev->dev.platform_data;
#endif
#ifdef TEGRA_12X_OR_HIGHER_CONFIG
{ .compatible = "nvidia,tegra124-msenc",
- .data = (struct nvhost_device_data *)&t124_msenc_info },
+ .data = (struct nvhost_device_data *)&t14_msenc_info },
#endif
{ },
};
#define ISP_CLOCKGATE_DELAY 60
#define ISP_POWERGATE_DELAY 500
-#define GK20A_DEV_NAME_SIZE 5
-
#define BIT64(nr) (1ULL << (nr))
#define NVSYNCPTS_CLIENT_MANAGED_T124 ( \
BIT64(NVSYNCPT_DISP0_A) | BIT64(NVSYNCPT_DISP1_A) | \
nvhost_dbg_fn("");
+ for (i = NVSYNCPT_GK20A_BASE; i <= NVSYNCPT_GK20A_LAST; i++) {
+ s_syncpt_names[i] = "gk20a";
+ }
+
/* register host1x device first */
platform_device_register(&tegra_host1x04_device);
tegra_host1x04_device.dev.parent = NULL;
&t124_num_alloc_channels);
if (ch) {
#if defined(CONFIG_TEGRA_GK20A)
- if (strncmp(dev->name, "gk20a", GK20A_DEV_NAME_SIZE) == 0) {
+ if (dev == &tegra_gk20a_device) {
ch->ops.init = host1x_channel_ops.init;
ch->ops.alloc_obj = t124_channel_alloc_obj;
ch->ops.free_obj = t124_channel_free_obj;
int nvhost_init_t124_support(struct nvhost_master *host,
struct nvhost_chip_support *op)
{
- int i = 0;
int err;
struct t124 *t124 = 0;
- for (i = NVSYNCPT_GK20A_BASE; i <= NVSYNCPT_GK20A_LAST; i++)
- s_syncpt_names[i] = "gk20a";
-
/* don't worry about cleaning up on failure... "remove" does it. */
err = nvhost_init_t124_channel_support(host, op);
if (err)