hi
this my read function which is getting called from request function
static ssize_t data_read(struct test_usb *dev, char *buffer, size_t count)
{
printk("*** SARD: Inside Read Function ***\n");
int retval;
int bytes_read;
int rcvbulkpipe = usb_rcvbulkpipe(dev->udev, dev->bulk_in_endpointAddr);
int timeout = jiffies + (HZ*10);
if (!dev->interface) { // disconnect() was called
retval = -ENODEV;
return retval;
}
dev->usb_buffer = "Test Application";
printk("usb buffer:= %s\n", dev->usb_buffer);
retval = usb_bulk_msg(dev->udev, rcvbulkpipe, dev->usb_buffer, min(strlen(dev->usb_buffer), count), &bytes_read, timeout);
info("usbDIO: Read retval: %d, count: %lu, bytes Read: %d", retval, count, bytes_read);
if (retval == 0)
{
if (copy_to_user(buffer, dev->usb_buffer, bytes_read))
retval = -EFAULT;
else{
retval = bytes_read;
printk("bufer:= %s\n", buffer);
printk("usb_buffer:= %s\n", dev->usb_buffer);
}
}
else
{
if (retval == -ETIMEDOUT)
{
info("usbDIO: Read timeout");
retval = 0;
}
}
return retval;
}
//request function
static void data_transfer(struct test_usb *dev_t, unsigned long sector, unsigned long nsect, char *buffer, int write)
{
printk("*** Archana: Inside data_transfer ***\n");
unsigned long offset = sector * blkdev_sect_size;
unsigned long nbytes = nsect * blkdev_sect_size;
if ((offset + nbytes) > dev_t->buffer_size) {
printk (KERN_NOTICE "Beyond-end write (%ld %ld)\n", offset, nbytes);
return;
}
if (write)
{
data_write();
}
else
{
data_read(dev_t, buffer, nbytes);
}
}
..
when control goes to read function i am getting above mentioned error
and it is not reading anything
if u know anything plz share
|