Greg scribeth :
> Hm, that's odd.  Do you have a pointer to the code, or perhaps just a
> small snippet that you can post here showing the problem?

Here's the request_firmware line :
err = request_firmware(&p54u->fw_entry, P54U_IMAGE_FILE, netdev->class_dev.dev);


And later :
********************************************************************
static int p54u_load_firmware(struct net_device *netdev)
{
        struct p54u *p54u = netdev_priv(netdev);
        struct usb_device *usbdev = p54u->usbdev;
        unsigned int pipe;
        u32 reg;
        void *data;
        size_t len;
        int err, i, j, k, l;
        u64 t, t1, t2;
        char *rcv;
        
        p54u_info("%s: Load firmware.\n", netdev->name);

        pipe = usb_sndbulkpipe(usbdev, P54U_PIPE_DATA);
        data = p54u->fw_entry->data;
        i = p54u->fw_entry->size;
        j = 0;
        
        while(i > 0) {
                len = i > P54U_FW_BLOCK ? P54U_FW_BLOCK : i;
                t1 =  p54u_time();
                p54u->err = usb_bulk_msg(usbdev, pipe, data, len, &len, HZ);
*******************************************************************************

P54U_FW_BLOCK is equal 512
What we seem to need to do is (ie):
define a temp buffer eg. unsigned char tmpbuf[512]; (or kmalloc it)
Then before the bulk_msg, memcpy(tmpbuf, data, len)
and pass tmpbuf to bulk_msg.

Margit




------------------------------------------------------- This SF.Net email is sponsored by the new InstallShield X.
From Windows to Linux, servers to mobile, InstallShield X is the
one installation-authoring solution that does it all. Learn more and
evaluate today! http://www.installshield.com/Dev2Dev/0504
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to