Hi Greg KH, I am using usb gadget printer driver for iMX25(ARM9) board and the kernel version is 2.6.31, now i have made an application which will open the driver from user space as "/dev/g_printer" whenever i connect the usb gadget to the host i need to detect from my application. I have made an switch case in ioctl function of /driver/usb/gadget/printer.c as switch (code) { case GADGET_GET_PRINTER_STATUS: status = (int)dev->printer_status; break; case GADGET_SET_PRINTER_STATUS: dev->printer_status = (u8)arg; break; case ATTACHED: PrintMessage("ioctl:Before usb_gadget_vbus_draw\n"); status = usb_gadget_connect(dev->gadget); PrintMessage("ioctl:After usb_gadget_vbus_draw\n"); break; default: /* could not handle ioctl */ DBG(dev, "IntelliBar printer_ioctl: ERROR cmd=0x%4.4xis not supported\n", code); status = -ENOTTY; } in my application i have used the driver ioctl as static int attach; attach = ioctl(fd[0].fd, ATTACHED); printf("Attached=%d\n", attach); if(attach < 0) { printf("Printer Dettached\n"); } else { printf("Printer Attached\n"); } Now the question is whenever i connect the usb gadget to host the case ATTACHED is called from driver and it should return zero on success and -ve on error, when i will get attach = 0 always even if i connect to host or not. How to resolve this issue. Please help me asap. -- Thanks & Regards, SANDEEP G R, _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel