#include <media/rc-core.h>
/* Driver Information */
-#define DRIVER_VERSION "0.70"
#define DRIVER_AUTHOR "Jarod Wilson <jarod@redhat.com>"
#define DRIVER_AUTHOR2 "The Dweller, Stephen Cox"
#define DRIVER_DESC "RedRat3 USB IR Transceiver Driver"
/* the send endpoint */
struct usb_endpoint_descriptor *ep_out;
- /* the buffer to send data */
- unsigned char *bulk_out_buf;
- /* the urb used to send data */
- struct urb *write_urb;
/* usb dma */
dma_addr_t dma_in;
- dma_addr_t dma_out;
/* rx signal timeout timer */
struct timer_list rx_timeout;
rr3_ftr(rr3->dev, "Entering %s\n", __func__);
- memset(rr3->bulk_in_buf, 0, rr3->ep_in->wMaxPacketSize);
res = usb_submit_urb(rr3->read_urb, GFP_ATOMIC);
if (res)
rr3_dbg(rr3->dev, "%s: receive request FAILED! "
{
DEFINE_IR_RAW_EVENT(rawir);
struct device *dev;
- int i, trailer = 0;
+ unsigned i, trailer = 0;
unsigned sig_size, single_len, offset, val;
unsigned long delay;
u32 mod_freq;
{
rr3_ftr(rr3->dev, "%s cleaning up\n", __func__);
usb_kill_urb(rr3->read_urb);
- usb_kill_urb(rr3->write_urb);
usb_free_urb(rr3->read_urb);
- usb_free_urb(rr3->write_urb);
- usb_free_coherent(udev, rr3->ep_in->wMaxPacketSize,
+ usb_free_coherent(udev, le16_to_cpu(rr3->ep_in->wMaxPacketSize),
rr3->bulk_in_buf, rr3->dma_in);
- usb_free_coherent(udev, rr3->ep_out->wMaxPacketSize,
- rr3->bulk_out_buf, rr3->dma_out);
kfree(rr3);
}
rxpipe = usb_rcvctrlpipe(udev, 0);
txpipe = usb_sndctrlpipe(udev, 0);
- val = kzalloc(len, GFP_KERNEL);
+ val = kmalloc(len, GFP_KERNEL);
if (!val) {
dev_err(dev, "Memory allocation failure\n");
return;
rr3_ftr(rr3->dev, "Exiting %s\n", __func__);
}
-static void redrat3_read_packet_start(struct redrat3_dev *rr3, int len)
+static void redrat3_read_packet_start(struct redrat3_dev *rr3, unsigned len)
{
struct redrat3_header *header = rr3->bulk_in_buf;
unsigned pktlen, pkttype;
}
}
-static void redrat3_read_packet_continue(struct redrat3_dev *rr3, int len)
+static void redrat3_read_packet_continue(struct redrat3_dev *rr3, unsigned len)
{
void *irdata = &rr3->irdata;
}
/* gather IR data from incoming urb, process it when we have enough */
-static int redrat3_get_ir_data(struct redrat3_dev *rr3, int len)
+static int redrat3_get_ir_data(struct redrat3_dev *rr3, unsigned len)
{
struct device *dev = rr3->dev;
unsigned pkttype;
}
}
-static void redrat3_write_bulk_callback(struct urb *urb)
-{
- struct redrat3_dev *rr3;
- int len;
-
- if (!urb)
- return;
-
- rr3 = urb->context;
- if (rr3) {
- len = urb->actual_length;
- rr3_ftr(rr3->dev, "%s: called (status=%d len=%d)\n",
- __func__, urb->status, len);
- }
-}
-
static u16 mod_freq_to_val(unsigned int mod_freq)
{
int mult = 6000000;
struct redrat3_dev *rr3 = rcdev->priv;
struct device *dev = rr3->dev;
struct redrat3_irdata *irdata = NULL;
- int i, ret, ret_len;
+ int ret, ret_len;
int lencheck, cur_sample_len, pipe;
int *sample_lens = NULL;
u8 curlencheck = 0;
- int sendbuf_len;
+ unsigned i, sendbuf_len;
rr3_ftr(dev, "Entering %s\n", __func__);
}
rr3->ep_in = ep_in;
- rr3->bulk_in_buf = usb_alloc_coherent(udev, ep_in->wMaxPacketSize,
- GFP_ATOMIC, &rr3->dma_in);
+ rr3->bulk_in_buf = usb_alloc_coherent(udev,
+ le16_to_cpu(ep_in->wMaxPacketSize), GFP_ATOMIC, &rr3->dma_in);
if (!rr3->bulk_in_buf) {
dev_err(dev, "Read buffer allocation failure\n");
goto error;
}
pipe = usb_rcvbulkpipe(udev, ep_in->bEndpointAddress);
- usb_fill_bulk_urb(rr3->read_urb, udev, pipe,
- rr3->bulk_in_buf, ep_in->wMaxPacketSize,
- redrat3_handle_async, rr3);
-
- /* set up bulk-out endpoint*/
- rr3->write_urb = usb_alloc_urb(0, GFP_KERNEL);
- if (!rr3->write_urb) {
- dev_err(dev, "Write urb allocation failure\n");
- goto error;
- }
+ usb_fill_bulk_urb(rr3->read_urb, udev, pipe, rr3->bulk_in_buf,
+ le16_to_cpu(ep_in->wMaxPacketSize), redrat3_handle_async, rr3);
rr3->ep_out = ep_out;
- rr3->bulk_out_buf = usb_alloc_coherent(udev, ep_out->wMaxPacketSize,
- GFP_ATOMIC, &rr3->dma_out);
- if (!rr3->bulk_out_buf) {
- dev_err(dev, "Write buffer allocation failure\n");
- goto error;
- }
-
- pipe = usb_sndbulkpipe(udev, ep_out->bEndpointAddress);
- usb_fill_bulk_urb(rr3->write_urb, udev, pipe,
- rr3->bulk_out_buf, ep_out->wMaxPacketSize,
- redrat3_write_bulk_callback, rr3);
-
rr3->udev = udev;
redrat3_reset(rr3);