Commit bff782d7 authored by Kevin Hilman's avatar Kevin Hilman Committed by Mauro Carvalho Chehab

[media] davinci: VPIF: fix module loading, init errors

Fix problems with automatic module loading by adding MODULE_ALIAS.  Also
fix various load-time errors cause by incorrect or not present
platform_data.
Acked-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarKevin Hilman <khilman@baylibre.com>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent e3bb3cdd
...@@ -32,6 +32,9 @@ ...@@ -32,6 +32,9 @@
MODULE_DESCRIPTION("TI DaVinci Video Port Interface driver"); MODULE_DESCRIPTION("TI DaVinci Video Port Interface driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
#define VPIF_DRIVER_NAME "vpif"
MODULE_ALIAS("platform:" VPIF_DRIVER_NAME);
#define VPIF_CH0_MAX_MODES 22 #define VPIF_CH0_MAX_MODES 22
#define VPIF_CH1_MAX_MODES 2 #define VPIF_CH1_MAX_MODES 2
#define VPIF_CH2_MAX_MODES 15 #define VPIF_CH2_MAX_MODES 15
...@@ -466,7 +469,7 @@ static const struct dev_pm_ops vpif_pm = { ...@@ -466,7 +469,7 @@ static const struct dev_pm_ops vpif_pm = {
static struct platform_driver vpif_driver = { static struct platform_driver vpif_driver = {
.driver = { .driver = {
.name = "vpif", .name = VPIF_DRIVER_NAME,
.pm = vpif_pm_ops, .pm = vpif_pm_ops,
}, },
.remove = vpif_remove, .remove = vpif_remove,
......
...@@ -41,6 +41,7 @@ module_param(debug, int, 0644); ...@@ -41,6 +41,7 @@ module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "Debug level 0-1"); MODULE_PARM_DESC(debug, "Debug level 0-1");
#define VPIF_DRIVER_NAME "vpif_capture" #define VPIF_DRIVER_NAME "vpif_capture"
MODULE_ALIAS("platform:" VPIF_DRIVER_NAME);
/* global variables */ /* global variables */
static struct vpif_device vpif_obj = { {NULL} }; static struct vpif_device vpif_obj = { {NULL} };
...@@ -643,6 +644,10 @@ static int vpif_input_to_subdev( ...@@ -643,6 +644,10 @@ static int vpif_input_to_subdev(
vpif_dbg(2, debug, "vpif_input_to_subdev\n"); vpif_dbg(2, debug, "vpif_input_to_subdev\n");
if (!chan_cfg)
return -1;
if (input_index >= chan_cfg->input_count)
return -1;
subdev_name = chan_cfg->inputs[input_index].subdev_name; subdev_name = chan_cfg->inputs[input_index].subdev_name;
if (!subdev_name) if (!subdev_name)
return -1; return -1;
...@@ -681,6 +686,9 @@ static int vpif_set_input( ...@@ -681,6 +686,9 @@ static int vpif_set_input(
if (sd_index >= 0) { if (sd_index >= 0) {
sd = vpif_obj.sd[sd_index]; sd = vpif_obj.sd[sd_index];
subdev_info = &vpif_cfg->subdev_info[sd_index]; subdev_info = &vpif_cfg->subdev_info[sd_index];
} else {
/* no subdevice, no input to setup */
return 0;
} }
/* first setup input path from sub device to vpif */ /* first setup input path from sub device to vpif */
...@@ -1426,6 +1434,11 @@ static __init int vpif_probe(struct platform_device *pdev) ...@@ -1426,6 +1434,11 @@ static __init int vpif_probe(struct platform_device *pdev)
int res_idx = 0; int res_idx = 0;
int i, err; int i, err;
if (!pdev->dev.platform_data) {
dev_warn(&pdev->dev, "Missing platform data. Giving up.\n");
return -EINVAL;
}
vpif_dev = &pdev->dev; vpif_dev = &pdev->dev;
err = initialize_vpif(); err = initialize_vpif();
......
...@@ -42,6 +42,7 @@ module_param(debug, int, 0644); ...@@ -42,6 +42,7 @@ module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "Debug level 0-1"); MODULE_PARM_DESC(debug, "Debug level 0-1");
#define VPIF_DRIVER_NAME "vpif_display" #define VPIF_DRIVER_NAME "vpif_display"
MODULE_ALIAS("platform:" VPIF_DRIVER_NAME);
/* Is set to 1 in case of SDTV formats, 2 in case of HDTV formats. */ /* Is set to 1 in case of SDTV formats, 2 in case of HDTV formats. */
static int ycmux_mode; static int ycmux_mode;
...@@ -1244,6 +1245,11 @@ static __init int vpif_probe(struct platform_device *pdev) ...@@ -1244,6 +1245,11 @@ static __init int vpif_probe(struct platform_device *pdev)
int res_idx = 0; int res_idx = 0;
int i, err; int i, err;
if (!pdev->dev.platform_data) {
dev_warn(&pdev->dev, "Missing platform data. Giving up.\n");
return -EINVAL;
}
vpif_dev = &pdev->dev; vpif_dev = &pdev->dev;
err = initialize_vpif(); err = initialize_vpif();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment