Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
8e8ddb2b
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
8e8ddb2b
编写于
10月 05, 2011
作者:
K
Kalle Valo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ath6kl: move htc_hif to hif.c
Signed-off-by:
N
Kalle Valo
<
kvalo@qca.qualcomm.com
>
上级
b4be8959
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
54 addition
and
53 deletion
+54
-53
drivers/net/wireless/ath/ath6kl/Makefile
drivers/net/wireless/ath/ath6kl/Makefile
+1
-1
drivers/net/wireless/ath/ath6kl/hif.c
drivers/net/wireless/ath/ath6kl/hif.c
+30
-29
drivers/net/wireless/ath/ath6kl/htc.c
drivers/net/wireless/ath/ath6kl/htc.c
+10
-10
drivers/net/wireless/ath/ath6kl/htc_hif.h
drivers/net/wireless/ath/ath6kl/htc_hif.h
+11
-11
drivers/net/wireless/ath/ath6kl/sdio.c
drivers/net/wireless/ath/ath6kl/sdio.c
+2
-2
未找到文件。
drivers/net/wireless/ath/ath6kl/Makefile
浏览文件 @
8e8ddb2b
...
...
@@ -23,7 +23,7 @@
obj-$(CONFIG_ATH6KL)
:=
ath6kl.o
ath6kl-y
+=
debug.o
ath6kl-y
+=
h
tc_h
if.o
ath6kl-y
+=
hif.o
ath6kl-y
+=
htc.o
ath6kl-y
+=
bmi.o
ath6kl-y
+=
cfg80211.o
...
...
drivers/net/wireless/ath/ath6kl/h
tc_h
if.c
→
drivers/net/wireless/ath/ath6kl/hif.c
浏览文件 @
8e8ddb2b
...
...
@@ -24,7 +24,8 @@
#define ATH6KL_TIME_QUANTUM 10
/* in ms */
static
int
ath6kldev_cp_scat_dma_buf
(
struct
hif_scatter_req
*
req
,
bool
from_dma
)
static
int
ath6kl_hif_cp_scat_dma_buf
(
struct
hif_scatter_req
*
req
,
bool
from_dma
)
{
u8
*
buf
;
int
i
;
...
...
@@ -46,12 +47,12 @@ static int ath6kldev_cp_scat_dma_buf(struct hif_scatter_req *req, bool from_dma)
return
0
;
}
int
ath6kl
dev
_rw_comp_handler
(
void
*
context
,
int
status
)
int
ath6kl
_hif
_rw_comp_handler
(
void
*
context
,
int
status
)
{
struct
htc_packet
*
packet
=
context
;
ath6kl_dbg
(
ATH6KL_DBG_HTC_RECV
,
"ath6kl
dev
_rw_comp_handler (pkt:0x%p , status: %d
\n
"
,
"ath6kl
_hif
_rw_comp_handler (pkt:0x%p , status: %d
\n
"
,
packet
,
status
);
packet
->
status
=
status
;
...
...
@@ -60,7 +61,7 @@ int ath6kldev_rw_comp_handler(void *context, int status)
return
0
;
}
static
int
ath6kl
dev
_proc_dbg_intr
(
struct
ath6kl_device
*
dev
)
static
int
ath6kl
_hif
_proc_dbg_intr
(
struct
ath6kl_device
*
dev
)
{
u32
dummy
;
int
status
;
...
...
@@ -82,7 +83,7 @@ static int ath6kldev_proc_dbg_intr(struct ath6kl_device *dev)
}
/* mailbox recv message polling */
int
ath6kl
dev
_poll_mboxmsg_rx
(
struct
ath6kl_device
*
dev
,
u32
*
lk_ahd
,
int
ath6kl
_hif
_poll_mboxmsg_rx
(
struct
ath6kl_device
*
dev
,
u32
*
lk_ahd
,
int
timeout
)
{
struct
ath6kl_irq_proc_registers
*
rg
;
...
...
@@ -131,7 +132,7 @@ int ath6kldev_poll_mboxmsg_rx(struct ath6kl_device *dev, u32 *lk_ahd,
* Target failure handler will be called in case of
* an assert.
*/
ath6kl
dev
_proc_dbg_intr
(
dev
);
ath6kl
_hif
_proc_dbg_intr
(
dev
);
}
return
status
;
...
...
@@ -141,7 +142,7 @@ int ath6kldev_poll_mboxmsg_rx(struct ath6kl_device *dev, u32 *lk_ahd,
* Disable packet reception (used in case the host runs out of buffers)
* using the interrupt enable registers through the host I/F
*/
int
ath6kl
dev
_rx_control
(
struct
ath6kl_device
*
dev
,
bool
enable_rx
)
int
ath6kl
_hif
_rx_control
(
struct
ath6kl_device
*
dev
,
bool
enable_rx
)
{
struct
ath6kl_irq_enable_reg
regs
;
int
status
=
0
;
...
...
@@ -168,7 +169,7 @@ int ath6kldev_rx_control(struct ath6kl_device *dev, bool enable_rx)
return
status
;
}
int
ath6kl
dev
_submit_scat_req
(
struct
ath6kl_device
*
dev
,
int
ath6kl
_hif
_submit_scat_req
(
struct
ath6kl_device
*
dev
,
struct
hif_scatter_req
*
scat_req
,
bool
read
)
{
int
status
=
0
;
...
...
@@ -186,13 +187,13 @@ int ath6kldev_submit_scat_req(struct ath6kl_device *dev,
}
ath6kl_dbg
((
ATH6KL_DBG_HTC_RECV
|
ATH6KL_DBG_HTC_SEND
),
"ath6kl
dev
_submit_scat_req, entries: %d, total len: %d mbox:0x%X (mode: %s : %s)
\n
"
,
"ath6kl
_hif
_submit_scat_req, entries: %d, total len: %d mbox:0x%X (mode: %s : %s)
\n
"
,
scat_req
->
scat_entries
,
scat_req
->
len
,
scat_req
->
addr
,
!
read
?
"async"
:
"sync"
,
(
read
)
?
"rd"
:
"wr"
);
if
(
!
read
&&
scat_req
->
virt_scat
)
{
status
=
ath6kl
dev
_cp_scat_dma_buf
(
scat_req
,
false
);
status
=
ath6kl
_hif
_cp_scat_dma_buf
(
scat_req
,
false
);
if
(
status
)
{
scat_req
->
status
=
status
;
scat_req
->
complete
(
dev
->
ar
->
htc_target
,
scat_req
);
...
...
@@ -207,13 +208,13 @@ int ath6kldev_submit_scat_req(struct ath6kl_device *dev,
scat_req
->
status
=
status
;
if
(
!
status
&&
scat_req
->
virt_scat
)
scat_req
->
status
=
ath6kl
dev
_cp_scat_dma_buf
(
scat_req
,
true
);
ath6kl
_hif
_cp_scat_dma_buf
(
scat_req
,
true
);
}
return
status
;
}
static
int
ath6kl
dev
_proc_counter_intr
(
struct
ath6kl_device
*
dev
)
static
int
ath6kl
_hif
_proc_counter_intr
(
struct
ath6kl_device
*
dev
)
{
u8
counter_int_status
;
...
...
@@ -232,12 +233,12 @@ static int ath6kldev_proc_counter_intr(struct ath6kl_device *dev)
* the debug assertion counter interrupt.
*/
if
(
counter_int_status
&
ATH6KL_TARGET_DEBUG_INTR_MASK
)
return
ath6kl
dev
_proc_dbg_intr
(
dev
);
return
ath6kl
_hif
_proc_dbg_intr
(
dev
);
return
0
;
}
static
int
ath6kl
dev
_proc_err_intr
(
struct
ath6kl_device
*
dev
)
static
int
ath6kl
_hif
_proc_err_intr
(
struct
ath6kl_device
*
dev
)
{
int
status
;
u8
error_int_status
;
...
...
@@ -282,7 +283,7 @@ static int ath6kldev_proc_err_intr(struct ath6kl_device *dev)
return
status
;
}
static
int
ath6kl
dev
_proc_cpu_intr
(
struct
ath6kl_device
*
dev
)
static
int
ath6kl
_hif
_proc_cpu_intr
(
struct
ath6kl_device
*
dev
)
{
int
status
;
u8
cpu_int_status
;
...
...
@@ -436,21 +437,21 @@ static int proc_pending_irqs(struct ath6kl_device *dev, bool *done)
if
(
MS
(
HOST_INT_STATUS_CPU
,
host_int_status
))
{
/* CPU Interrupt */
status
=
ath6kl
dev
_proc_cpu_intr
(
dev
);
status
=
ath6kl
_hif
_proc_cpu_intr
(
dev
);
if
(
status
)
goto
out
;
}
if
(
MS
(
HOST_INT_STATUS_ERROR
,
host_int_status
))
{
/* Error Interrupt */
status
=
ath6kl
dev
_proc_err_intr
(
dev
);
status
=
ath6kl
_hif
_proc_err_intr
(
dev
);
if
(
status
)
goto
out
;
}
if
(
MS
(
HOST_INT_STATUS_COUNTER
,
host_int_status
))
/* Counter Interrupt */
status
=
ath6kl
dev
_proc_counter_intr
(
dev
);
status
=
ath6kl
_hif
_proc_counter_intr
(
dev
);
out:
/*
...
...
@@ -479,7 +480,7 @@ static int proc_pending_irqs(struct ath6kl_device *dev, bool *done)
}
/* interrupt handler, kicks off all interrupt processing */
int
ath6kl
dev
_intr_bh_handler
(
struct
ath6kl
*
ar
)
int
ath6kl
_hif
_intr_bh_handler
(
struct
ath6kl
*
ar
)
{
struct
ath6kl_device
*
dev
=
ar
->
htc_target
->
dev
;
int
status
=
0
;
...
...
@@ -504,7 +505,7 @@ int ath6kldev_intr_bh_handler(struct ath6kl *ar)
return
status
;
}
static
int
ath6kl
dev
_enable_intrs
(
struct
ath6kl_device
*
dev
)
static
int
ath6kl
_hif
_enable_intrs
(
struct
ath6kl_device
*
dev
)
{
struct
ath6kl_irq_enable_reg
regs
;
int
status
;
...
...
@@ -552,7 +553,7 @@ static int ath6kldev_enable_intrs(struct ath6kl_device *dev)
return
status
;
}
int
ath6kl
dev
_disable_intrs
(
struct
ath6kl_device
*
dev
)
int
ath6kl
_hif
_disable_intrs
(
struct
ath6kl_device
*
dev
)
{
struct
ath6kl_irq_enable_reg
regs
;
...
...
@@ -571,7 +572,7 @@ int ath6kldev_disable_intrs(struct ath6kl_device *dev)
}
/* enable device interrupts */
int
ath6kl
dev
_unmask_intrs
(
struct
ath6kl_device
*
dev
)
int
ath6kl
_hif
_unmask_intrs
(
struct
ath6kl_device
*
dev
)
{
int
status
=
0
;
...
...
@@ -583,29 +584,29 @@ int ath6kldev_unmask_intrs(struct ath6kl_device *dev)
* target "soft" resets. The ATH6KL interrupt enables reset back to an
* "enabled" state when this happens.
*/
ath6kl
dev
_disable_intrs
(
dev
);
ath6kl
_hif
_disable_intrs
(
dev
);
/* unmask the host controller interrupts */
ath6kl_hif_irq_enable
(
dev
->
ar
);
status
=
ath6kl
dev
_enable_intrs
(
dev
);
status
=
ath6kl
_hif
_enable_intrs
(
dev
);
return
status
;
}
/* disable all device interrupts */
int
ath6kl
dev
_mask_intrs
(
struct
ath6kl_device
*
dev
)
int
ath6kl
_hif
_mask_intrs
(
struct
ath6kl_device
*
dev
)
{
/*
* Mask the interrupt at the HIF layer to avoid any stray interrupt
* taken while we zero out our shadow registers in
* ath6kl
dev
_disable_intrs().
* ath6kl
_hif
_disable_intrs().
*/
ath6kl_hif_irq_disable
(
dev
->
ar
);
return
ath6kl
dev
_disable_intrs
(
dev
);
return
ath6kl
_hif
_disable_intrs
(
dev
);
}
int
ath6kl
dev
_setup
(
struct
ath6kl_device
*
dev
)
int
ath6kl
_hif
_setup
(
struct
ath6kl_device
*
dev
)
{
int
status
=
0
;
...
...
@@ -634,7 +635,7 @@ int ath6kldev_setup(struct ath6kl_device *dev)
ath6kl_dbg
(
ATH6KL_DBG_TRC
,
"hif interrupt processing is sync only
\n
"
);
status
=
ath6kl
dev
_disable_intrs
(
dev
);
status
=
ath6kl
_hif
_disable_intrs
(
dev
);
fail_setup:
return
status
;
...
...
drivers/net/wireless/ath/ath6kl/htc.c
浏览文件 @
8e8ddb2b
...
...
@@ -482,7 +482,7 @@ static void ath6kl_htc_tx_bundle(struct htc_endpoint *endpoint,
ath6kl_dbg
(
ATH6KL_DBG_HTC_SEND
,
"send scatter total bytes: %d , entries: %d
\n
"
,
scat_req
->
len
,
scat_req
->
scat_entries
);
ath6kl
dev
_submit_scat_req
(
target
->
dev
,
scat_req
,
false
);
ath6kl
_hif
_submit_scat_req
(
target
->
dev
,
scat_req
,
false
);
if
(
status
)
break
;
...
...
@@ -1620,7 +1620,7 @@ static int ath6kl_htc_rx_bundle(struct htc_target *target,
scat_req
->
len
=
len
;
scat_req
->
scat_entries
=
i
;
status
=
ath6kl
dev
_submit_scat_req
(
target
->
dev
,
scat_req
,
true
);
status
=
ath6kl
_hif
_submit_scat_req
(
target
->
dev
,
scat_req
,
true
);
if
(
!
status
)
*
n_pkt_fetched
=
i
;
...
...
@@ -1865,7 +1865,7 @@ int ath6kl_htc_rxmsg_pending_handler(struct htc_target *target,
if
(
target
->
htc_flags
&
HTC_OP_STATE_STOPPING
)
{
ath6kl_warn
(
"host is going to stop blocking receiver for htc_stop
\n
"
);
ath6kl
dev
_rx_control
(
target
->
dev
,
false
);
ath6kl
_hif
_rx_control
(
target
->
dev
,
false
);
}
}
...
...
@@ -1875,7 +1875,7 @@ int ath6kl_htc_rxmsg_pending_handler(struct htc_target *target,
*/
if
(
target
->
rx_st_flags
&
HTC_RECV_WAIT_BUFFERS
)
{
ath6kl_warn
(
"host has no rx buffers blocking receiver to prevent overrun
\n
"
);
ath6kl
dev
_rx_control
(
target
->
dev
,
false
);
ath6kl
_hif
_rx_control
(
target
->
dev
,
false
);
}
*
num_pkts
=
n_fetched
;
...
...
@@ -1893,7 +1893,7 @@ static struct htc_packet *htc_wait_for_ctrl_msg(struct htc_target *target)
struct
htc_frame_hdr
*
htc_hdr
;
u32
look_ahead
;
if
(
ath6kl
dev
_poll_mboxmsg_rx
(
target
->
dev
,
&
look_ahead
,
if
(
ath6kl
_hif
_poll_mboxmsg_rx
(
target
->
dev
,
&
look_ahead
,
HTC_TARGET_RESPONSE_TIMEOUT
))
return
NULL
;
...
...
@@ -2001,7 +2001,7 @@ int ath6kl_htc_add_rxbuf_multiple(struct htc_target *target,
if
(
rx_unblock
&&
!
(
target
->
htc_flags
&
HTC_OP_STATE_STOPPING
))
/* TODO : implement a buffer threshold count? */
ath6kl
dev
_rx_control
(
target
->
dev
,
true
);
ath6kl
_hif
_rx_control
(
target
->
dev
,
true
);
return
status
;
}
...
...
@@ -2340,7 +2340,7 @@ int ath6kl_htc_start(struct htc_target *target)
int
status
;
/* Disable interrupts at the chip level */
ath6kl
dev
_disable_intrs
(
target
->
dev
);
ath6kl
_hif
_disable_intrs
(
target
->
dev
);
target
->
htc_flags
=
0
;
target
->
rx_st_flags
=
0
;
...
...
@@ -2365,7 +2365,7 @@ int ath6kl_htc_start(struct htc_target *target)
return
status
;
/* unmask interrupts */
status
=
ath6kl
dev
_unmask_intrs
(
target
->
dev
);
status
=
ath6kl
_hif
_unmask_intrs
(
target
->
dev
);
if
(
status
)
ath6kl_htc_stop
(
target
);
...
...
@@ -2385,7 +2385,7 @@ void ath6kl_htc_stop(struct htc_target *target)
* function returns all pending HIF I/O has completed, we can
* safely flush the queues.
*/
ath6kl
dev
_mask_intrs
(
target
->
dev
);
ath6kl
_hif
_mask_intrs
(
target
->
dev
);
ath6kl_htc_flush_txep_all
(
target
);
...
...
@@ -2428,7 +2428,7 @@ void *ath6kl_htc_create(struct ath6kl *ar)
reset_ep_state
(
target
);
status
=
ath6kl
dev
_setup
(
target
->
dev
);
status
=
ath6kl
_hif
_setup
(
target
->
dev
);
if
(
status
)
goto
fail_create_htc
;
...
...
drivers/net/wireless/ath/ath6kl/htc_hif.h
浏览文件 @
8e8ddb2b
...
...
@@ -74,19 +74,19 @@ struct ath6kl_device {
struct
ath6kl
*
ar
;
};
int
ath6kl
dev
_setup
(
struct
ath6kl_device
*
dev
);
int
ath6kl
dev
_unmask_intrs
(
struct
ath6kl_device
*
dev
);
int
ath6kl
dev
_mask_intrs
(
struct
ath6kl_device
*
dev
);
int
ath6kl
dev
_poll_mboxmsg_rx
(
struct
ath6kl_device
*
dev
,
u32
*
lk_ahd
,
int
timeout
);
int
ath6kl
dev
_rx_control
(
struct
ath6kl_device
*
dev
,
bool
enable_rx
);
int
ath6kl
dev
_disable_intrs
(
struct
ath6kl_device
*
dev
);
int
ath6kl
_hif
_setup
(
struct
ath6kl_device
*
dev
);
int
ath6kl
_hif
_unmask_intrs
(
struct
ath6kl_device
*
dev
);
int
ath6kl
_hif
_mask_intrs
(
struct
ath6kl_device
*
dev
);
int
ath6kl
_hif
_poll_mboxmsg_rx
(
struct
ath6kl_device
*
dev
,
u32
*
lk_ahd
,
int
timeout
);
int
ath6kl
_hif
_rx_control
(
struct
ath6kl_device
*
dev
,
bool
enable_rx
);
int
ath6kl
_hif
_disable_intrs
(
struct
ath6kl_device
*
dev
);
int
ath6kl
dev
_rw_comp_handler
(
void
*
context
,
int
status
);
int
ath6kl
dev
_intr_bh_handler
(
struct
ath6kl
*
ar
);
int
ath6kl
_hif
_rw_comp_handler
(
void
*
context
,
int
status
);
int
ath6kl
_hif
_intr_bh_handler
(
struct
ath6kl
*
ar
);
/* Scatter Function and Definitions */
int
ath6kl
dev
_submit_scat_req
(
struct
ath6kl_device
*
dev
,
struct
hif_scatter_req
*
scat_req
,
bool
read
);
int
ath6kl
_hif
_submit_scat_req
(
struct
ath6kl_device
*
dev
,
struct
hif_scatter_req
*
scat_req
,
bool
read
);
#endif
/*ATH6KL_H_ */
drivers/net/wireless/ath/ath6kl/sdio.c
浏览文件 @
8e8ddb2b
...
...
@@ -420,7 +420,7 @@ static void __ath6kl_sdio_write_async(struct ath6kl_sdio *ar_sdio,
req
->
request
);
context
=
req
->
packet
;
ath6kl_sdio_free_bus_req
(
ar_sdio
,
req
);
ath6kl
dev
_rw_comp_handler
(
context
,
status
);
ath6kl
_hif
_rw_comp_handler
(
context
,
status
);
}
}
...
...
@@ -457,7 +457,7 @@ static void ath6kl_sdio_irq_handler(struct sdio_func *func)
*/
sdio_release_host
(
ar_sdio
->
func
);
status
=
ath6kl
dev
_intr_bh_handler
(
ar_sdio
->
ar
);
status
=
ath6kl
_hif
_intr_bh_handler
(
ar_sdio
->
ar
);
sdio_claim_host
(
ar_sdio
->
func
);
atomic_set
(
&
ar_sdio
->
irq_handling
,
0
);
WARN_ON
(
status
&&
status
!=
-
ECANCELED
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录