1dac4186 |
1 | /* Driver for Realtek RTS51xx USB card reader |
2 | * Header file |
3 | * |
4 | * Copyright(c) 2009 Realtek Semiconductor Corp. All rights reserved. |
5 | * |
6 | * This program is free software; you can redistribute it and/or modify it |
7 | * under the terms of the GNU General Public License as published by the |
8 | * Free Software Foundation; either version 2, or (at your option) any |
9 | * later version. |
10 | * |
11 | * This program is distributed in the hope that it will be useful, but |
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 | * General Public License for more details. |
15 | * |
16 | * You should have received a copy of the GNU General Public License along |
17 | * with this program; if not, see <http://www.gnu.org/licenses/>. |
18 | * |
19 | * Author: |
20 | * wwang (wei_wang@realsil.com.cn) |
21 | * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China |
22 | * Maintainer: |
23 | * Edwin Rong (edwin_rong@realsil.com.cn) |
24 | * No. 450, Shenhu Road, Suzhou Industry Park, Suzhou, China |
25 | */ |
26 | |
27 | #ifndef __RTS51X_TRANSPORT_H |
28 | #define __RTS51X_TRANSPORT_H |
29 | |
30 | #include <linux/kernel.h> |
1dac4186 |
31 | |
32 | #include "rts51x.h" |
33 | #include "rts51x_chip.h" |
34 | |
35 | #if 1 /* LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 34) */ |
36 | #define URB_NO_SETUP_DMA_MAP 0 |
37 | #endif |
38 | |
39 | unsigned int rts51x_access_sglist(unsigned char *buffer, |
40 | unsigned int buflen, void *sglist, |
41 | void **sgptr, unsigned int *offset, |
42 | enum xfer_buf_dir dir); |
1dac4186 |
43 | void rts51x_set_xfer_buf(unsigned char *buffer, unsigned int buflen, |
44 | struct scsi_cmnd *srb); |
45 | void rts51x_get_xfer_buf(unsigned char *buffer, unsigned int buflen, |
46 | struct scsi_cmnd *srb); |
47 | |
48 | int rts51x_ctrl_transfer(struct rts51x_chip *chip, unsigned int pipe, |
49 | u8 request, u8 requesttype, u16 value, u16 index, |
50 | void *data, u16 size, int timeout); |
1dac4186 |
51 | int rts51x_transfer_data(struct rts51x_chip *chip, unsigned int pipe, |
52 | void *buf, unsigned int len, int use_sg, |
53 | unsigned int *act_len, int timeout); |
54 | int rts51x_transfer_data_partial(struct rts51x_chip *chip, unsigned int pipe, |
55 | void *buf, void **ptr, unsigned int *offset, |
56 | unsigned int len, int use_sg, |
57 | unsigned int *act_len, int timeout); |
58 | |
1dac4186 |
59 | #ifndef POLLING_IN_THREAD |
60 | int rts51x_start_epc_transfer(struct rts51x_chip *chip); |
61 | void rts51x_cancel_epc_transfer(struct rts51x_chip *chip); |
62 | #endif |
63 | |
aa2f92ae |
64 | int rts51x_get_epc_status(struct rts51x_chip *chip, u16 *status); |
1dac4186 |
65 | void rts51x_invoke_transport(struct scsi_cmnd *srb, struct rts51x_chip *chip); |
66 | |
67 | #endif /* __RTS51X_TRANSPORT_H */ |