aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/dss/dsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/omapdrm/dss/dsi.c')
-rw-r--r--drivers/gpu/drm/omapdrm/dss/dsi.c35
1 files changed, 18 insertions, 17 deletions
diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
index cb250dbf0f9b..62131d7593a7 100644
--- a/drivers/gpu/drm/omapdrm/dss/dsi.c
+++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
@@ -5299,9 +5299,10 @@ static const struct soc_device_attribute dsi_soc_devices[] = {
5299 { .machine = "AM35*", .data = &dsi_of_data_omap34xx }, 5299 { .machine = "AM35*", .data = &dsi_of_data_omap34xx },
5300 { /* sentinel */ } 5300 { /* sentinel */ }
5301}; 5301};
5302
5302static int dsi_bind(struct device *dev, struct device *master, void *data) 5303static int dsi_bind(struct device *dev, struct device *master, void *data)
5303{ 5304{
5304 struct platform_device *dsidev = to_platform_device(dev); 5305 struct platform_device *pdev = to_platform_device(dev);
5305 struct dss_device *dss = dss_get_device(master); 5306 struct dss_device *dss = dss_get_device(master);
5306 const struct soc_device_attribute *soc; 5307 const struct soc_device_attribute *soc;
5307 const struct dsi_module_id_data *d; 5308 const struct dsi_module_id_data *d;
@@ -5311,13 +5312,13 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
5311 struct resource *dsi_mem; 5312 struct resource *dsi_mem;
5312 struct resource *res; 5313 struct resource *res;
5313 5314
5314 dsi = devm_kzalloc(&dsidev->dev, sizeof(*dsi), GFP_KERNEL); 5315 dsi = devm_kzalloc(dev, sizeof(*dsi), GFP_KERNEL);
5315 if (!dsi) 5316 if (!dsi)
5316 return -ENOMEM; 5317 return -ENOMEM;
5317 5318
5318 dsi->dss = dss; 5319 dsi->dss = dss;
5319 dsi->pdev = dsidev; 5320 dsi->pdev = pdev;
5320 dev_set_drvdata(&dsidev->dev, dsi); 5321 dev_set_drvdata(dev, dsi);
5321 5322
5322 spin_lock_init(&dsi->irq_lock); 5323 spin_lock_init(&dsi->irq_lock);
5323 spin_lock_init(&dsi->errors_lock); 5324 spin_lock_init(&dsi->errors_lock);
@@ -5338,29 +5339,29 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
5338 timer_setup(&dsi->te_timer, dsi_te_timeout, 0); 5339 timer_setup(&dsi->te_timer, dsi_te_timeout, 0);
5339#endif 5340#endif
5340 5341
5341 dsi_mem = platform_get_resource_byname(dsidev, IORESOURCE_MEM, "proto"); 5342 dsi_mem = platform_get_resource_byname(pdev, IORESOURCE_MEM, "proto");
5342 dsi->proto_base = devm_ioremap_resource(&dsidev->dev, dsi_mem); 5343 dsi->proto_base = devm_ioremap_resource(dev, dsi_mem);
5343 if (IS_ERR(dsi->proto_base)) 5344 if (IS_ERR(dsi->proto_base))
5344 return PTR_ERR(dsi->proto_base); 5345 return PTR_ERR(dsi->proto_base);
5345 5346
5346 res = platform_get_resource_byname(dsidev, IORESOURCE_MEM, "phy"); 5347 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "phy");
5347 dsi->phy_base = devm_ioremap_resource(&dsidev->dev, res); 5348 dsi->phy_base = devm_ioremap_resource(dev, res);
5348 if (IS_ERR(dsi->phy_base)) 5349 if (IS_ERR(dsi->phy_base))
5349 return PTR_ERR(dsi->phy_base); 5350 return PTR_ERR(dsi->phy_base);
5350 5351
5351 res = platform_get_resource_byname(dsidev, IORESOURCE_MEM, "pll"); 5352 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pll");
5352 dsi->pll_base = devm_ioremap_resource(&dsidev->dev, res); 5353 dsi->pll_base = devm_ioremap_resource(dev, res);
5353 if (IS_ERR(dsi->pll_base)) 5354 if (IS_ERR(dsi->pll_base))
5354 return PTR_ERR(dsi->pll_base); 5355 return PTR_ERR(dsi->pll_base);
5355 5356
5356 dsi->irq = platform_get_irq(dsi->pdev, 0); 5357 dsi->irq = platform_get_irq(pdev, 0);
5357 if (dsi->irq < 0) { 5358 if (dsi->irq < 0) {
5358 DSSERR("platform_get_irq failed\n"); 5359 DSSERR("platform_get_irq failed\n");
5359 return -ENODEV; 5360 return -ENODEV;
5360 } 5361 }
5361 5362
5362 r = devm_request_irq(&dsidev->dev, dsi->irq, omap_dsi_irq_handler, 5363 r = devm_request_irq(dev, dsi->irq, omap_dsi_irq_handler,
5363 IRQF_SHARED, dev_name(&dsidev->dev), dsi); 5364 IRQF_SHARED, dev_name(dev), dsi);
5364 if (r < 0) { 5365 if (r < 0) {
5365 DSSERR("request_irq failed\n"); 5366 DSSERR("request_irq failed\n");
5366 return r; 5367 return r;
@@ -5414,14 +5415,14 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
5414 5415
5415 dsi_init_pll_data(dss, dsi); 5416 dsi_init_pll_data(dss, dsi);
5416 5417
5417 pm_runtime_enable(&dsidev->dev); 5418 pm_runtime_enable(dev);
5418 5419
5419 r = dsi_runtime_get(dsi); 5420 r = dsi_runtime_get(dsi);
5420 if (r) 5421 if (r)
5421 goto err_runtime_get; 5422 goto err_runtime_get;
5422 5423
5423 rev = dsi_read_reg(dsi, DSI_REVISION); 5424 rev = dsi_read_reg(dsi, DSI_REVISION);
5424 dev_dbg(&dsidev->dev, "OMAP DSI rev %d.%d\n", 5425 dev_dbg(dev, "OMAP DSI rev %d.%d\n",
5425 FLD_GET(rev, 7, 4), FLD_GET(rev, 3, 0)); 5426 FLD_GET(rev, 7, 4), FLD_GET(rev, 3, 0));
5426 5427
5427 /* DSI on OMAP3 doesn't have register DSI_GNQ, set number 5428 /* DSI on OMAP3 doesn't have register DSI_GNQ, set number
@@ -5442,7 +5443,7 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
5442 goto err_probe_of; 5443 goto err_probe_of;
5443 } 5444 }
5444 5445
5445 r = of_platform_populate(dsidev->dev.of_node, NULL, NULL, &dsidev->dev); 5446 r = of_platform_populate(dev->of_node, NULL, NULL, dev);
5446 if (r) 5447 if (r)
5447 DSSERR("Failed to populate DSI child devices: %d\n", r); 5448 DSSERR("Failed to populate DSI child devices: %d\n", r);
5448 5449
@@ -5474,7 +5475,7 @@ err_probe_of:
5474 dsi_runtime_put(dsi); 5475 dsi_runtime_put(dsi);
5475 5476
5476err_runtime_get: 5477err_runtime_get:
5477 pm_runtime_disable(&dsidev->dev); 5478 pm_runtime_disable(dev);
5478 return r; 5479 return r;
5479} 5480}
5480 5481