Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
8603f1e8
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
14
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看板
提交
8603f1e8
编写于
5月 21, 2018
作者:
U
Ulf Hansson
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fixes' into next
上级
9181ece3
3de06d5a
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
27 addition
and
8 deletion
+27
-8
drivers/mmc/core/block.c
drivers/mmc/core/block.c
+1
-1
drivers/mmc/host/sdhci-iproc.c
drivers/mmc/host/sdhci-iproc.c
+26
-7
未找到文件。
drivers/mmc/core/block.c
浏览文件 @
8603f1e8
...
...
@@ -2486,7 +2486,7 @@ static long mmc_rpmb_ioctl(struct file *filp, unsigned int cmd,
break
;
}
return
0
;
return
ret
;
}
#ifdef CONFIG_COMPAT
...
...
drivers/mmc/host/sdhci-iproc.c
浏览文件 @
8603f1e8
...
...
@@ -33,6 +33,8 @@ struct sdhci_iproc_host {
const
struct
sdhci_iproc_data
*
data
;
u32
shadow_cmd
;
u32
shadow_blk
;
bool
is_cmd_shadowed
;
bool
is_blk_shadowed
;
};
#define REG_OFFSET_IN_BITS(reg) ((reg) << 3 & 0x18)
...
...
@@ -48,8 +50,22 @@ static inline u32 sdhci_iproc_readl(struct sdhci_host *host, int reg)
static
u16
sdhci_iproc_readw
(
struct
sdhci_host
*
host
,
int
reg
)
{
u32
val
=
sdhci_iproc_readl
(
host
,
(
reg
&
~
3
));
u16
word
=
val
>>
REG_OFFSET_IN_BITS
(
reg
)
&
0xffff
;
struct
sdhci_pltfm_host
*
pltfm_host
=
sdhci_priv
(
host
);
struct
sdhci_iproc_host
*
iproc_host
=
sdhci_pltfm_priv
(
pltfm_host
);
u32
val
;
u16
word
;
if
((
reg
==
SDHCI_TRANSFER_MODE
)
&&
iproc_host
->
is_cmd_shadowed
)
{
/* Get the saved transfer mode */
val
=
iproc_host
->
shadow_cmd
;
}
else
if
((
reg
==
SDHCI_BLOCK_SIZE
||
reg
==
SDHCI_BLOCK_COUNT
)
&&
iproc_host
->
is_blk_shadowed
)
{
/* Get the saved block info */
val
=
iproc_host
->
shadow_blk
;
}
else
{
val
=
sdhci_iproc_readl
(
host
,
(
reg
&
~
3
));
}
word
=
val
>>
REG_OFFSET_IN_BITS
(
reg
)
&
0xffff
;
return
word
;
}
...
...
@@ -105,13 +121,15 @@ static void sdhci_iproc_writew(struct sdhci_host *host, u16 val, int reg)
if
(
reg
==
SDHCI_COMMAND
)
{
/* Write the block now as we are issuing a command */
if
(
iproc_host
->
shadow_blk
!=
0
)
{
if
(
iproc_host
->
is_blk_shadowed
)
{
sdhci_iproc_writel
(
host
,
iproc_host
->
shadow_blk
,
SDHCI_BLOCK_SIZE
);
iproc_host
->
shadow_blk
=
0
;
iproc_host
->
is_blk_shadowed
=
false
;
}
oldval
=
iproc_host
->
shadow_cmd
;
}
else
if
(
reg
==
SDHCI_BLOCK_SIZE
||
reg
==
SDHCI_BLOCK_COUNT
)
{
iproc_host
->
is_cmd_shadowed
=
false
;
}
else
if
((
reg
==
SDHCI_BLOCK_SIZE
||
reg
==
SDHCI_BLOCK_COUNT
)
&&
iproc_host
->
is_blk_shadowed
)
{
/* Block size and count are stored in shadow reg */
oldval
=
iproc_host
->
shadow_blk
;
}
else
{
...
...
@@ -123,9 +141,11 @@ static void sdhci_iproc_writew(struct sdhci_host *host, u16 val, int reg)
if
(
reg
==
SDHCI_TRANSFER_MODE
)
{
/* Save the transfer mode until the command is issued */
iproc_host
->
shadow_cmd
=
newval
;
iproc_host
->
is_cmd_shadowed
=
true
;
}
else
if
(
reg
==
SDHCI_BLOCK_SIZE
||
reg
==
SDHCI_BLOCK_COUNT
)
{
/* Save the block info until the command is issued */
iproc_host
->
shadow_blk
=
newval
;
iproc_host
->
is_blk_shadowed
=
true
;
}
else
{
/* Command or other regular 32-bit write */
sdhci_iproc_writel
(
host
,
newval
,
reg
&
~
3
);
...
...
@@ -166,7 +186,7 @@ static const struct sdhci_ops sdhci_iproc_32only_ops = {
static
const
struct
sdhci_pltfm_data
sdhci_iproc_cygnus_pltfm_data
=
{
.
quirks
=
SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK
,
.
quirks2
=
SDHCI_QUIRK2_ACMD23_BROKEN
,
.
quirks2
=
SDHCI_QUIRK2_ACMD23_BROKEN
|
SDHCI_QUIRK2_HOST_OFF_CARD_ON
,
.
ops
=
&
sdhci_iproc_32only_ops
,
};
...
...
@@ -206,7 +226,6 @@ static const struct sdhci_iproc_data iproc_data = {
.
caps1
=
SDHCI_DRIVER_TYPE_C
|
SDHCI_DRIVER_TYPE_D
|
SDHCI_SUPPORT_DDR50
,
.
mmc_caps
=
MMC_CAP_1_8V_DDR
,
};
static
const
struct
sdhci_pltfm_data
sdhci_bcm2835_pltfm_data
=
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录