> Please notice that usbmon does log the IrDA discovery packet (the one that
> starts with ffffffff), only my code does not get called for any response
> on the
> send.

Is i possible that the device needs an init sequence you don't do?
 
> I welcome any critique on the driver code, whether or not it help with the
> problem of no callbacks.
/*
 * The current device is removed, the USB layer tell us to shut it down...
 */
static void kingsun_disconnect(struct usb_interface *intf)
{
        struct kingsun_cb *kingsun = usb_get_intfdata(intf);

        if (!kingsun)
                return;

        unregister_netdev(kingsun->netdev);

Call usb_unlink_urb() on your urbs before you free their buffers.

        kfree(kingsun->out_buf);
        kfree(kingsun->in_buf);
        kfree(kingsun->prev_rx);
        free_netdev(kingsun->netdev);

        usb_set_intfdata(intf, NULL);
}

#ifdef CONFIG_PM
/* USB suspend, so power off the transmitter/receiver */
static int kingsun_suspend(struct usb_interface *intf, pm_message_t message)
{
        struct kingsun_cb *kingsun = usb_get_intfdata(intf);

Here kill the urbs

        netif_device_detach(kingsun->netdev);
        return 0;
}

/* Coming out of suspend, so reset hardware */
static int kingsun_resume(struct usb_interface *intf)
{
        struct kingsun_cb *kingsun = usb_get_intfdata(intf);

Restart the urbs.

        Regards
                Oliver

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to