Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -32,6 +32,9 @@
MODULE_DESCRIPTION("TI DaVinci Video Port Interface driver");
MODULE_LICENSE("GPL");

#define VPIF_DRIVER_NAME	"vpif"
MODULE_ALIAS("platform:" VPIF_DRIVER_NAME);

#define VPIF_CH0_MAX_MODES	22
#define VPIF_CH1_MAX_MODES	2
#define VPIF_CH2_MAX_MODES	15
@@ -466,7 +469,7 @@ static const struct dev_pm_ops vpif_pm = {

static struct platform_driver vpif_driver = {
	.driver = {
		.name	= "vpif",
		.name	= VPIF_DRIVER_NAME,
		.pm	= vpif_pm_ops,
	},
	.remove = vpif_remove,
+13 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "Debug level 0-1");

#define VPIF_DRIVER_NAME	"vpif_capture"
MODULE_ALIAS("platform:" VPIF_DRIVER_NAME);

/* global variables */
static struct vpif_device vpif_obj = { {NULL} };
@@ -643,6 +644,10 @@ static int vpif_input_to_subdev(

	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;
	if (!subdev_name)
		return -1;
@@ -681,6 +686,9 @@ static int vpif_set_input(
	if (sd_index >= 0) {
		sd = vpif_obj.sd[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 */
@@ -1426,6 +1434,11 @@ static __init int vpif_probe(struct platform_device *pdev)
	int res_idx = 0;
	int i, err;

	if (!pdev->dev.platform_data) {
		dev_warn(&pdev->dev, "Missing platform data.  Giving up.\n");
		return -EINVAL;
	}

	vpif_dev = &pdev->dev;

	err = initialize_vpif();
+6 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "Debug level 0-1");

#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. */
static int ycmux_mode;
@@ -1244,6 +1245,11 @@ static __init int vpif_probe(struct platform_device *pdev)
	int res_idx = 0;
	int i, err;

	if (!pdev->dev.platform_data) {
		dev_warn(&pdev->dev, "Missing platform data.  Giving up.\n");
		return -EINVAL;
	}

	vpif_dev = &pdev->dev;
	err = initialize_vpif();