diff options
Diffstat (limited to 'drivers/media/radio/radio-ma901.c')
| -rw-r--r-- | drivers/media/radio/radio-ma901.c | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/media/radio/radio-ma901.c b/drivers/media/radio/radio-ma901.c index c61f590029a..348dafc0318 100644 --- a/drivers/media/radio/radio-ma901.c +++ b/drivers/media/radio/radio-ma901.c @@ -347,9 +347,20 @@ static void usb_ma901radio_release(struct v4l2_device *v4l2_dev)  static int usb_ma901radio_probe(struct usb_interface *intf,  				const struct usb_device_id *id)  { +	struct usb_device *dev = interface_to_usbdev(intf);  	struct ma901radio_device *radio;  	int retval = 0; +	/* Masterkit MA901 usb radio has the same USB ID as many others +	 * Atmel V-USB devices. Let's make additional checks to be sure +	 * that this is our device. +	 */ + +	if (dev->product && dev->manufacturer && +		(strncmp(dev->product, "MA901", 5) != 0 +		|| strncmp(dev->manufacturer, "www.masterkit.ru", 16) != 0)) +		return -ENODEV; +  	radio = kzalloc(sizeof(struct ma901radio_device), GFP_KERNEL);  	if (!radio) {  		dev_err(&intf->dev, "kzalloc for ma901radio_device failed\n");  |