File Index
Files and directories
Sign in
FILE

rtw_io.h

File preview with syntax highlighting.

linux-6.19.14/drivers/staging/rtl8723bs/include/rtw_io.h C
 1/* SPDX-License-Identifier: GPL-2.0 */
 2/******************************************************************************
 3 *
 4 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
 5 *
 6 ******************************************************************************/
 7
 8#ifndef _RTW_IO_H_
 9#define _RTW_IO_H_
10
11struct intf_hdl;
12
13struct _io_ops {
14		u8 (*_read8)(struct intf_hdl *pintfhdl, u32 addr);
15		u16 (*_read16)(struct intf_hdl *pintfhdl, u32 addr);
16		u32 (*_read32)(struct intf_hdl *pintfhdl, u32 addr);
17
18		int (*_write8)(struct intf_hdl *pintfhdl, u32 addr, u8 val);
19		int (*_write16)(struct intf_hdl *pintfhdl, u32 addr, u16 val);
20		int (*_write32)(struct intf_hdl *pintfhdl, u32 addr, u32 val);
21		int (*_writeN)(struct intf_hdl *pintfhdl, u32 addr, u32 length, u8 *pdata);
22
23		int (*_write8_async)(struct intf_hdl *pintfhdl, u32 addr, u8 val);
24		int (*_write16_async)(struct intf_hdl *pintfhdl, u32 addr, u16 val);
25		int (*_write32_async)(struct intf_hdl *pintfhdl, u32 addr, u32 val);
26
27		void (*_read_mem)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem);
28		void (*_write_mem)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem);
29
30		u32 (*_read_interrupt)(struct intf_hdl *pintfhdl, u32 addr);
31
32		u32 (*_read_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem);
33		u32 (*_write_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem);
34
35		u32 (*_write_scsi)(struct intf_hdl *pintfhdl, u32 cnt, u8 *pmem);
36
37		void (*_read_port_cancel)(struct intf_hdl *pintfhdl);
38		void (*_write_port_cancel)(struct intf_hdl *pintfhdl);
39};
40
41struct	intf_hdl {
42	struct adapter *padapter;
43	struct dvobj_priv *pintf_dev;/* 	pointer to &(padapter->dvobjpriv); */
44
45	struct _io_ops	io_ops;
46};
47
48#define SD_IO_TRY_CNT (8)
49#define MAX_CONTINUAL_IO_ERR SD_IO_TRY_CNT
50
51int rtw_inc_and_chk_continual_io_error(struct dvobj_priv *dvobj);
52void rtw_reset_continual_io_error(struct dvobj_priv *dvobj);
53
54struct io_priv {
55
56	struct adapter *padapter;
57
58	struct intf_hdl intf;
59
60};
61
62extern u8 rtw_read8(struct adapter *adapter, u32 addr);
63extern u16 rtw_read16(struct adapter *adapter, u32 addr);
64extern u32 rtw_read32(struct adapter *adapter, u32 addr);
65
66extern int rtw_write8(struct adapter *adapter, u32 addr, u8 val);
67extern int rtw_write16(struct adapter *adapter, u32 addr, u16 val);
68extern int rtw_write32(struct adapter *adapter, u32 addr, u32 val);
69
70extern u32 rtw_write_port(struct adapter *adapter, u32 addr, u32 cnt, u8 *pmem);
71
72int rtw_init_io_priv(struct adapter *padapter, void (*set_intf_ops)(struct adapter *padapter, struct _io_ops *pops));
73
74#endif	/* _RTL8711_IO_H_ */
~/ Read-only file preview.