Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
56e7a8cc
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
56e7a8cc
编写于
8月 30, 2011
作者:
S
Stanislaw Gruszka
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
iwlegacy: merge iwl-4965-eeprom.c into 4965.c
Signed-off-by:
N
Stanislaw Gruszka
<
sgruszka@redhat.com
>
上级
ecce1f09
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
75 addition
and
151 deletion
+75
-151
drivers/net/wireless/iwlegacy/4965.c
drivers/net/wireless/iwlegacy/4965.c
+74
-0
drivers/net/wireless/iwlegacy/Makefile
drivers/net/wireless/iwlegacy/Makefile
+1
-1
drivers/net/wireless/iwlegacy/iwl-4965-eeprom.c
drivers/net/wireless/iwlegacy/iwl-4965-eeprom.c
+0
-150
未找到文件。
drivers/net/wireless/iwlegacy/4965.c
浏览文件 @
56e7a8cc
...
...
@@ -47,6 +47,80 @@
#include "iwl-4965.h"
#include "iwl-4965-debugfs.h"
/******************************************************************************
*
* EEPROM related functions
*
******************************************************************************/
/*
* The device's EEPROM semaphore prevents conflicts between driver and uCode
* when accessing the EEPROM; each access is a series of pulses to/from the
* EEPROM chip, not a single event, so even reads could conflict if they
* weren't arbitrated by the semaphore.
*/
int
il4965_eeprom_acquire_semaphore
(
struct
il_priv
*
il
)
{
u16
count
;
int
ret
;
for
(
count
=
0
;
count
<
EEPROM_SEM_RETRY_LIMIT
;
count
++
)
{
/* Request semaphore */
il_set_bit
(
il
,
CSR_HW_IF_CONFIG_REG
,
CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM
);
/* See if we got it */
ret
=
_il_poll_bit
(
il
,
CSR_HW_IF_CONFIG_REG
,
CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM
,
CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM
,
EEPROM_SEM_TIMEOUT
);
if
(
ret
>=
0
)
return
ret
;
}
return
ret
;
}
void
il4965_eeprom_release_semaphore
(
struct
il_priv
*
il
)
{
il_clear_bit
(
il
,
CSR_HW_IF_CONFIG_REG
,
CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM
);
}
int
il4965_eeprom_check_version
(
struct
il_priv
*
il
)
{
u16
eeprom_ver
;
u16
calib_ver
;
eeprom_ver
=
il_eeprom_query16
(
il
,
EEPROM_VERSION
);
calib_ver
=
il_eeprom_query16
(
il
,
EEPROM_4965_CALIB_VERSION_OFFSET
);
if
(
eeprom_ver
<
il
->
cfg
->
eeprom_ver
||
calib_ver
<
il
->
cfg
->
eeprom_calib_ver
)
goto
err
;
IL_INFO
(
"device EEPROM VER=0x%x, CALIB=0x%x
\n
"
,
eeprom_ver
,
calib_ver
);
return
0
;
err:
IL_ERR
(
"Unsupported (too old) EEPROM VER=0x%x < 0x%x "
"CALIB=0x%x < 0x%x
\n
"
,
eeprom_ver
,
il
->
cfg
->
eeprom_ver
,
calib_ver
,
il
->
cfg
->
eeprom_calib_ver
);
return
-
EINVAL
;
}
void
il4965_eeprom_get_mac
(
const
struct
il_priv
*
il
,
u8
*
mac
)
{
const
u8
*
addr
=
il_eeprom_query_addr
(
il
,
EEPROM_MAC_ADDRESS
);
memcpy
(
mac
,
addr
,
ETH_ALEN
);
}
/* Send led command */
static
int
il4965_send_led_cmd
(
struct
il_priv
*
il
,
struct
il_led_cmd
*
led_cmd
)
...
...
drivers/net/wireless/iwlegacy/Makefile
浏览文件 @
56e7a8cc
...
...
@@ -11,7 +11,7 @@ obj-$(CONFIG_IWL4965) += iwl4965.o
iwl4965-objs
:=
4965.o 4965-mac.o iwl-4965-rs.o
iwl4965-objs
+=
iwl-4965-ucode.o iwl-4965-tx.o
iwl4965-objs
+=
iwl-4965-lib.o iwl-4965-rx.o iwl-4965-calib.o
iwl4965-objs
+=
iwl-4965-sta.o
iwl-4965-eeprom.o
iwl4965-objs
+=
iwl-4965-sta.o
iwl4965-$(CONFIG_IWLEGACY_DEBUGFS)
+=
iwl-4965-debugfs.o
# 3945
...
...
drivers/net/wireless/iwlegacy/iwl-4965-eeprom.c
已删除
100644 → 0
浏览文件 @
ecce1f09
/******************************************************************************
*
* This file is provided under a dual BSD/GPLv2 license. When using or
* redistributing this file, you may do so under either license.
*
* GPL LICENSE SUMMARY
*
* Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110,
* USA
*
* The full GNU General Public License is included in this distribution
* in the file called LICENSE.GPL.
*
* Contact Information:
* Intel Linux Wireless <ilw@linux.intel.com>
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
*
* BSD LICENSE
*
* Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name Intel Corporation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*****************************************************************************/
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <net/mac80211.h>
#include "iwl-commands.h"
#include "iwl-dev.h"
#include "iwl-core.h"
#include "iwl-debug.h"
#include "iwl-4965.h"
#include "iwl-io.h"
/******************************************************************************
*
* EEPROM related functions
*
******************************************************************************/
/*
* The device's EEPROM semaphore prevents conflicts between driver and uCode
* when accessing the EEPROM; each access is a series of pulses to/from the
* EEPROM chip, not a single event, so even reads could conflict if they
* weren't arbitrated by the semaphore.
*/
int
il4965_eeprom_acquire_semaphore
(
struct
il_priv
*
il
)
{
u16
count
;
int
ret
;
for
(
count
=
0
;
count
<
EEPROM_SEM_RETRY_LIMIT
;
count
++
)
{
/* Request semaphore */
il_set_bit
(
il
,
CSR_HW_IF_CONFIG_REG
,
CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM
);
/* See if we got it */
ret
=
_il_poll_bit
(
il
,
CSR_HW_IF_CONFIG_REG
,
CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM
,
CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM
,
EEPROM_SEM_TIMEOUT
);
if
(
ret
>=
0
)
return
ret
;
}
return
ret
;
}
void
il4965_eeprom_release_semaphore
(
struct
il_priv
*
il
)
{
il_clear_bit
(
il
,
CSR_HW_IF_CONFIG_REG
,
CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM
);
}
int
il4965_eeprom_check_version
(
struct
il_priv
*
il
)
{
u16
eeprom_ver
;
u16
calib_ver
;
eeprom_ver
=
il_eeprom_query16
(
il
,
EEPROM_VERSION
);
calib_ver
=
il_eeprom_query16
(
il
,
EEPROM_4965_CALIB_VERSION_OFFSET
);
if
(
eeprom_ver
<
il
->
cfg
->
eeprom_ver
||
calib_ver
<
il
->
cfg
->
eeprom_calib_ver
)
goto
err
;
IL_INFO
(
"device EEPROM VER=0x%x, CALIB=0x%x
\n
"
,
eeprom_ver
,
calib_ver
);
return
0
;
err:
IL_ERR
(
"Unsupported (too old) EEPROM VER=0x%x < 0x%x "
"CALIB=0x%x < 0x%x
\n
"
,
eeprom_ver
,
il
->
cfg
->
eeprom_ver
,
calib_ver
,
il
->
cfg
->
eeprom_calib_ver
);
return
-
EINVAL
;
}
void
il4965_eeprom_get_mac
(
const
struct
il_priv
*
il
,
u8
*
mac
)
{
const
u8
*
addr
=
il_eeprom_query_addr
(
il
,
EEPROM_MAC_ADDRESS
);
memcpy
(
mac
,
addr
,
ETH_ALEN
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录