diff options
Diffstat (limited to 'drivers/media/radio')
-rw-r--r-- | drivers/media/radio/radio-shark.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-shark2.c | 10 | ||||
-rw-r--r-- | drivers/media/radio/radio-si476x.c | 6 | ||||
-rw-r--r-- | drivers/media/radio/radio-timb.c | 5 | ||||
-rw-r--r-- | drivers/media/radio/radio-wl1273.c | 6 | ||||
-rw-r--r-- | drivers/media/radio/si4713/radio-platform-si4713.c | 6 |
6 files changed, 28 insertions, 15 deletions
diff --git a/drivers/media/radio/radio-shark.c b/drivers/media/radio/radio-shark.c index 8230da828d0e..127a3be0e0f0 100644 --- a/drivers/media/radio/radio-shark.c +++ b/drivers/media/radio/radio-shark.c @@ -316,6 +316,16 @@ static int usb_shark_probe(struct usb_interface *intf, { struct shark_device *shark; int retval = -ENOMEM; + static const u8 ep_addresses[] = { + SHARK_IN_EP | USB_DIR_IN, + SHARK_OUT_EP | USB_DIR_OUT, + 0}; + + /* Are the expected endpoints present? */ + if (!usb_check_int_endpoints(intf, ep_addresses)) { + dev_err(&intf->dev, "Invalid radioSHARK device\n"); + return -EINVAL; + } shark = kzalloc(sizeof(struct shark_device), GFP_KERNEL); if (!shark) diff --git a/drivers/media/radio/radio-shark2.c b/drivers/media/radio/radio-shark2.c index d150f12382c6..f1c5c0a6a335 100644 --- a/drivers/media/radio/radio-shark2.c +++ b/drivers/media/radio/radio-shark2.c @@ -282,6 +282,16 @@ static int usb_shark_probe(struct usb_interface *intf, { struct shark_device *shark; int retval = -ENOMEM; + static const u8 ep_addresses[] = { + SHARK_IN_EP | USB_DIR_IN, + SHARK_OUT_EP | USB_DIR_OUT, + 0}; + + /* Are the expected endpoints present? */ + if (!usb_check_int_endpoints(intf, ep_addresses)) { + dev_err(&intf->dev, "Invalid radioSHARK2 device\n"); + return -EINVAL; + } shark = kzalloc(sizeof(struct shark_device), GFP_KERNEL); if (!shark) diff --git a/drivers/media/radio/radio-si476x.c b/drivers/media/radio/radio-si476x.c index 171f9cc9ee5e..6061506159f1 100644 --- a/drivers/media/radio/radio-si476x.c +++ b/drivers/media/radio/radio-si476x.c @@ -1498,7 +1498,7 @@ exit: return rval; } -static int si476x_radio_remove(struct platform_device *pdev) +static void si476x_radio_remove(struct platform_device *pdev) { struct si476x_radio *radio = platform_get_drvdata(pdev); @@ -1506,8 +1506,6 @@ static int si476x_radio_remove(struct platform_device *pdev) video_unregister_device(&radio->videodev); v4l2_device_unregister(&radio->v4l2dev); debugfs_remove_recursive(radio->debugfs); - - return 0; } MODULE_ALIAS("platform:si476x-radio"); @@ -1517,7 +1515,7 @@ static struct platform_driver si476x_radio_driver = { .name = DRIVER_NAME, }, .probe = si476x_radio_probe, - .remove = si476x_radio_remove, + .remove_new = si476x_radio_remove, }; module_platform_driver(si476x_radio_driver); diff --git a/drivers/media/radio/radio-timb.c b/drivers/media/radio/radio-timb.c index 948ee3eec914..04daa9c358c2 100644 --- a/drivers/media/radio/radio-timb.c +++ b/drivers/media/radio/radio-timb.c @@ -151,13 +151,12 @@ err: return err; } -static int timbradio_remove(struct platform_device *pdev) +static void timbradio_remove(struct platform_device *pdev) { struct timbradio *tr = platform_get_drvdata(pdev); video_unregister_device(&tr->video_dev); v4l2_device_unregister(&tr->v4l2_dev); - return 0; } static struct platform_driver timbradio_platform_driver = { @@ -165,7 +164,7 @@ static struct platform_driver timbradio_platform_driver = { .name = DRIVER_NAME, }, .probe = timbradio_probe, - .remove = timbradio_remove, + .remove_new = timbradio_remove, }; module_platform_driver(timbradio_platform_driver); diff --git a/drivers/media/radio/radio-wl1273.c b/drivers/media/radio/radio-wl1273.c index 484046471c03..e8166eac9efe 100644 --- a/drivers/media/radio/radio-wl1273.c +++ b/drivers/media/radio/radio-wl1273.c @@ -1977,7 +1977,7 @@ static const struct video_device wl1273_viddev_template = { V4L2_CAP_RDS_OUTPUT, }; -static int wl1273_fm_radio_remove(struct platform_device *pdev) +static void wl1273_fm_radio_remove(struct platform_device *pdev) { struct wl1273_device *radio = platform_get_drvdata(pdev); struct wl1273_core *core = radio->core; @@ -1990,8 +1990,6 @@ static int wl1273_fm_radio_remove(struct platform_device *pdev) v4l2_ctrl_handler_free(&radio->ctrl_handler); video_unregister_device(&radio->videodev); v4l2_device_unregister(&radio->v4l2dev); - - return 0; } static int wl1273_fm_radio_probe(struct platform_device *pdev) @@ -2147,7 +2145,7 @@ pdata_err: static struct platform_driver wl1273_fm_radio_driver = { .probe = wl1273_fm_radio_probe, - .remove = wl1273_fm_radio_remove, + .remove_new = wl1273_fm_radio_remove, .driver = { .name = "wl1273_fm_radio", }, diff --git a/drivers/media/radio/si4713/radio-platform-si4713.c b/drivers/media/radio/si4713/radio-platform-si4713.c index 433f9642786d..9fdaed68a962 100644 --- a/drivers/media/radio/si4713/radio-platform-si4713.c +++ b/drivers/media/radio/si4713/radio-platform-si4713.c @@ -190,7 +190,7 @@ exit: } /* radio_si4713_pdriver_remove - remove the device */ -static int radio_si4713_pdriver_remove(struct platform_device *pdev) +static void radio_si4713_pdriver_remove(struct platform_device *pdev) { struct v4l2_device *v4l2_dev = platform_get_drvdata(pdev); struct radio_si4713_device *rsdev; @@ -198,8 +198,6 @@ static int radio_si4713_pdriver_remove(struct platform_device *pdev) rsdev = container_of(v4l2_dev, struct radio_si4713_device, v4l2_dev); video_unregister_device(&rsdev->radio_dev); v4l2_device_unregister(&rsdev->v4l2_dev); - - return 0; } static struct platform_driver radio_si4713_pdriver = { @@ -207,7 +205,7 @@ static struct platform_driver radio_si4713_pdriver = { .name = "radio-si4713", }, .probe = radio_si4713_pdriver_probe, - .remove = radio_si4713_pdriver_remove, + .remove_new = radio_si4713_pdriver_remove, }; module_platform_driver(radio_si4713_pdriver); |