ceph: move mount state enum to super.h
[platform/kernel/linux-rpi.git] / drivers / hid / hid-logitech-hidpp.c
index c6e4a96..abf2c95 100644 (file)
@@ -2548,12 +2548,17 @@ static int hidpp_ff_init(struct hidpp_device *hidpp,
        struct hid_device *hid = hidpp->hid_dev;
        struct hid_input *hidinput;
        struct input_dev *dev;
-       const struct usb_device_descriptor *udesc = &(hid_to_usb_dev(hid)->descriptor);
-       const u16 bcdDevice = le16_to_cpu(udesc->bcdDevice);
+       struct usb_device_descriptor *udesc;
+       u16 bcdDevice;
        struct ff_device *ff;
        int error, j, num_slots = data->num_effects;
        u8 version;
 
+       if (!hid_is_usb(hid)) {
+               hid_err(hid, "device is not USB\n");
+               return -ENODEV;
+       }
+
        if (list_empty(&hid->inputs)) {
                hid_err(hid, "no inputs found\n");
                return -ENODEV;
@@ -2567,6 +2572,8 @@ static int hidpp_ff_init(struct hidpp_device *hidpp,
        }
 
        /* Get firmware release */
+       udesc = &(hid_to_usb_dev(hid)->descriptor);
+       bcdDevice = le16_to_cpu(udesc->bcdDevice);
        version = bcdDevice & 255;
 
        /* Set supported force feedback capabilities */