usb: gadget: mtp: add new ioctl for compat
[firefly-linux-kernel-4.4.55.git] / drivers / usb / gadget / f_mtp.c
index 651a3e3e90be589429ee20d312fb13181f5bb6e2..67a46c3678189842b7620fbf110b3f7f970bc6f6 100644 (file)
@@ -938,6 +938,25 @@ static long mtp_ioctl(struct file *fp, unsigned code, unsigned long value)
                        ret = mtp_send_event(dev, &event);
                goto out;
        }
+#ifdef CONFIG_COMPAT
+       case MTP_SEND_EVENT_32:
+       {
+               struct mtp_event_32     event_32;
+               struct mtp_event        event;
+               /* return here so we don't change dev->state below,
+                * which would interfere with bulk transfer state.
+                */
+               if (copy_from_user(&event_32, (void __user *)value,
+                                                       sizeof(event_32)))
+                       ret = -EFAULT;
+               else {
+                       event.length = event_32.length;
+                       event.data = (void *)(unsigned long)event_32.data;
+                       ret = mtp_send_event(dev, &event);
+               }
+               goto out;
+       }
+#endif
        }
 
 fail: