Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
ed20178d
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看板
提交
ed20178d
编写于
11月 29, 2011
作者:
A
Arnd Bergmann
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'drivers/macb-gem-cleanup' into at91/gpio
上级
d28bdfc5
c220f8cd
变更
54
隐藏空白更改
内联
并排
Showing
54 changed file
with
157 addition
and
171 deletion
+157
-171
arch/arm/mach-at91/at91cap9.c
arch/arm/mach-at91/at91cap9.c
+3
-1
arch/arm/mach-at91/at91cap9_devices.c
arch/arm/mach-at91/at91cap9_devices.c
+3
-3
arch/arm/mach-at91/at91rm9200_devices.c
arch/arm/mach-at91/at91rm9200_devices.c
+3
-3
arch/arm/mach-at91/at91sam9260.c
arch/arm/mach-at91/at91sam9260.c
+3
-1
arch/arm/mach-at91/at91sam9260_devices.c
arch/arm/mach-at91/at91sam9260_devices.c
+3
-3
arch/arm/mach-at91/at91sam9263.c
arch/arm/mach-at91/at91sam9263.c
+3
-1
arch/arm/mach-at91/at91sam9263_devices.c
arch/arm/mach-at91/at91sam9263_devices.c
+3
-3
arch/arm/mach-at91/at91sam9g45.c
arch/arm/mach-at91/at91sam9g45.c
+3
-1
arch/arm/mach-at91/at91sam9g45_devices.c
arch/arm/mach-at91/at91sam9g45_devices.c
+3
-3
arch/arm/mach-at91/board-1arm.c
arch/arm/mach-at91/board-1arm.c
+1
-1
arch/arm/mach-at91/board-afeb-9260v1.c
arch/arm/mach-at91/board-afeb-9260v1.c
+1
-1
arch/arm/mach-at91/board-cam60.c
arch/arm/mach-at91/board-cam60.c
+1
-1
arch/arm/mach-at91/board-cap9adk.c
arch/arm/mach-at91/board-cap9adk.c
+1
-1
arch/arm/mach-at91/board-carmeva.c
arch/arm/mach-at91/board-carmeva.c
+1
-1
arch/arm/mach-at91/board-cpu9krea.c
arch/arm/mach-at91/board-cpu9krea.c
+1
-1
arch/arm/mach-at91/board-cpuat91.c
arch/arm/mach-at91/board-cpuat91.c
+1
-1
arch/arm/mach-at91/board-csb337.c
arch/arm/mach-at91/board-csb337.c
+1
-1
arch/arm/mach-at91/board-csb637.c
arch/arm/mach-at91/board-csb637.c
+1
-1
arch/arm/mach-at91/board-eb9200.c
arch/arm/mach-at91/board-eb9200.c
+1
-1
arch/arm/mach-at91/board-ecbat91.c
arch/arm/mach-at91/board-ecbat91.c
+1
-1
arch/arm/mach-at91/board-eco920.c
arch/arm/mach-at91/board-eco920.c
+1
-1
arch/arm/mach-at91/board-foxg20.c
arch/arm/mach-at91/board-foxg20.c
+1
-1
arch/arm/mach-at91/board-gsia18s.c
arch/arm/mach-at91/board-gsia18s.c
+1
-1
arch/arm/mach-at91/board-kafa.c
arch/arm/mach-at91/board-kafa.c
+1
-1
arch/arm/mach-at91/board-kb9202.c
arch/arm/mach-at91/board-kb9202.c
+1
-1
arch/arm/mach-at91/board-neocore926.c
arch/arm/mach-at91/board-neocore926.c
+1
-1
arch/arm/mach-at91/board-pcontrol-g20.c
arch/arm/mach-at91/board-pcontrol-g20.c
+1
-1
arch/arm/mach-at91/board-picotux200.c
arch/arm/mach-at91/board-picotux200.c
+1
-1
arch/arm/mach-at91/board-qil-a9260.c
arch/arm/mach-at91/board-qil-a9260.c
+1
-1
arch/arm/mach-at91/board-rm9200dk.c
arch/arm/mach-at91/board-rm9200dk.c
+1
-1
arch/arm/mach-at91/board-rm9200ek.c
arch/arm/mach-at91/board-rm9200ek.c
+1
-1
arch/arm/mach-at91/board-rsi-ews.c
arch/arm/mach-at91/board-rsi-ews.c
+1
-1
arch/arm/mach-at91/board-sam9-l9260.c
arch/arm/mach-at91/board-sam9-l9260.c
+1
-1
arch/arm/mach-at91/board-sam9260ek.c
arch/arm/mach-at91/board-sam9260ek.c
+1
-1
arch/arm/mach-at91/board-sam9263ek.c
arch/arm/mach-at91/board-sam9263ek.c
+1
-1
arch/arm/mach-at91/board-sam9g20ek.c
arch/arm/mach-at91/board-sam9g20ek.c
+1
-1
arch/arm/mach-at91/board-sam9m10g45ek.c
arch/arm/mach-at91/board-sam9m10g45ek.c
+1
-1
arch/arm/mach-at91/board-snapper9260.c
arch/arm/mach-at91/board-snapper9260.c
+1
-1
arch/arm/mach-at91/board-stamp9g20.c
arch/arm/mach-at91/board-stamp9g20.c
+1
-1
arch/arm/mach-at91/board-usb-a926x.c
arch/arm/mach-at91/board-usb-a926x.c
+1
-1
arch/arm/mach-at91/board-yl-9200.c
arch/arm/mach-at91/board-yl-9200.c
+1
-1
arch/arm/mach-at91/include/mach/board.h
arch/arm/mach-at91/include/mach/board.h
+2
-12
arch/avr32/boards/atngw100/setup.c
arch/avr32/boards/atngw100/setup.c
+1
-1
arch/avr32/boards/atstk1000/atstk1002.c
arch/avr32/boards/atstk1000/atstk1002.c
+1
-1
arch/avr32/boards/favr-32/setup.c
arch/avr32/boards/favr-32/setup.c
+1
-1
arch/avr32/boards/hammerhead/setup.c
arch/avr32/boards/hammerhead/setup.c
+1
-1
arch/avr32/boards/merisc/setup.c
arch/avr32/boards/merisc/setup.c
+1
-1
arch/avr32/boards/mimc200/setup.c
arch/avr32/boards/mimc200/setup.c
+1
-1
arch/avr32/mach-at32ap/at32ap700x.c
arch/avr32/mach-at32ap/at32ap700x.c
+4
-4
arch/avr32/mach-at32ap/include/mach/board.h
arch/avr32/mach-at32ap/include/mach/board.h
+2
-5
drivers/net/ethernet/cadence/at91_ether.c
drivers/net/ethernet/cadence/at91_ether.c
+2
-1
drivers/net/ethernet/cadence/at91_ether.h
drivers/net/ethernet/cadence/at91_ether.h
+3
-1
drivers/net/ethernet/cadence/macb.c
drivers/net/ethernet/cadence/macb.c
+62
-91
include/linux/platform_data/macb.h
include/linux/platform_data/macb.h
+17
-0
未找到文件。
arch/arm/mach-at91/at91cap9.c
浏览文件 @
ed20178d
...
...
@@ -136,7 +136,7 @@ static struct clk pwm_clk = {
.
type
=
CLK_TYPE_PERIPHERAL
,
};
static
struct
clk
macb_clk
=
{
.
name
=
"
macb_
clk"
,
.
name
=
"
p
clk"
,
.
pmc_mask
=
1
<<
AT91CAP9_ID_EMAC
,
.
type
=
CLK_TYPE_PERIPHERAL
,
};
...
...
@@ -209,6 +209,8 @@ static struct clk *periph_clocks[] __initdata = {
};
static
struct
clk_lookup
periph_clocks_lookups
[]
=
{
/* One additional fake clock for macb_hclk */
CLKDEV_CON_ID
(
"hclk"
,
&
macb_clk
),
CLKDEV_CON_DEV_ID
(
"hclk"
,
"atmel_usba_udc"
,
&
utmi_clk
),
CLKDEV_CON_DEV_ID
(
"pclk"
,
"atmel_usba_udc"
,
&
udphs_clk
),
CLKDEV_CON_DEV_ID
(
"mci_clk"
,
"at91_mci.0"
,
&
mmc0_clk
),
...
...
arch/arm/mach-at91/at91cap9_devices.c
浏览文件 @
ed20178d
...
...
@@ -200,7 +200,7 @@ void __init at91_add_device_usba(struct usba_platform_data *data) {}
#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)
static
u64
eth_dmamask
=
DMA_BIT_MASK
(
32
);
static
struct
at91_eth
_data
eth_data
;
static
struct
macb_platform
_data
eth_data
;
static
struct
resource
eth_resources
[]
=
{
[
0
]
=
{
...
...
@@ -227,7 +227,7 @@ static struct platform_device at91cap9_eth_device = {
.
num_resources
=
ARRAY_SIZE
(
eth_resources
),
};
void
__init
at91_add_device_eth
(
struct
at91_eth
_data
*
data
)
void
__init
at91_add_device_eth
(
struct
macb_platform
_data
*
data
)
{
if
(
!
data
)
return
;
...
...
@@ -264,7 +264,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data)
platform_device_register
(
&
at91cap9_eth_device
);
}
#else
void
__init
at91_add_device_eth
(
struct
at91_eth
_data
*
data
)
{}
void
__init
at91_add_device_eth
(
struct
macb_platform
_data
*
data
)
{}
#endif
...
...
arch/arm/mach-at91/at91rm9200_devices.c
浏览文件 @
ed20178d
...
...
@@ -135,7 +135,7 @@ void __init at91_add_device_udc(struct at91_udc_data *data) {}
#if defined(CONFIG_ARM_AT91_ETHER) || defined(CONFIG_ARM_AT91_ETHER_MODULE)
static
u64
eth_dmamask
=
DMA_BIT_MASK
(
32
);
static
struct
at91_eth
_data
eth_data
;
static
struct
macb_platform
_data
eth_data
;
static
struct
resource
eth_resources
[]
=
{
[
0
]
=
{
...
...
@@ -162,7 +162,7 @@ static struct platform_device at91rm9200_eth_device = {
.
num_resources
=
ARRAY_SIZE
(
eth_resources
),
};
void
__init
at91_add_device_eth
(
struct
at91_eth
_data
*
data
)
void
__init
at91_add_device_eth
(
struct
macb_platform
_data
*
data
)
{
if
(
!
data
)
return
;
...
...
@@ -199,7 +199,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data)
platform_device_register
(
&
at91rm9200_eth_device
);
}
#else
void
__init
at91_add_device_eth
(
struct
at91_eth
_data
*
data
)
{}
void
__init
at91_add_device_eth
(
struct
macb_platform
_data
*
data
)
{}
#endif
...
...
arch/arm/mach-at91/at91sam9260.c
浏览文件 @
ed20178d
...
...
@@ -119,7 +119,7 @@ static struct clk ohci_clk = {
.
type
=
CLK_TYPE_PERIPHERAL
,
};
static
struct
clk
macb_clk
=
{
.
name
=
"
macb_
clk"
,
.
name
=
"
p
clk"
,
.
pmc_mask
=
1
<<
AT91SAM9260_ID_EMAC
,
.
type
=
CLK_TYPE_PERIPHERAL
,
};
...
...
@@ -189,6 +189,8 @@ static struct clk *periph_clocks[] __initdata = {
};
static
struct
clk_lookup
periph_clocks_lookups
[]
=
{
/* One additional fake clock for macb_hclk */
CLKDEV_CON_ID
(
"hclk"
,
&
macb_clk
),
CLKDEV_CON_DEV_ID
(
"spi_clk"
,
"atmel_spi.0"
,
&
spi0_clk
),
CLKDEV_CON_DEV_ID
(
"spi_clk"
,
"atmel_spi.1"
,
&
spi1_clk
),
CLKDEV_CON_DEV_ID
(
"t0_clk"
,
"atmel_tcb.0"
,
&
tc0_clk
),
...
...
arch/arm/mach-at91/at91sam9260_devices.c
浏览文件 @
ed20178d
...
...
@@ -136,7 +136,7 @@ void __init at91_add_device_udc(struct at91_udc_data *data) {}
#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)
static
u64
eth_dmamask
=
DMA_BIT_MASK
(
32
);
static
struct
at91_eth
_data
eth_data
;
static
struct
macb_platform
_data
eth_data
;
static
struct
resource
eth_resources
[]
=
{
[
0
]
=
{
...
...
@@ -163,7 +163,7 @@ static struct platform_device at91sam9260_eth_device = {
.
num_resources
=
ARRAY_SIZE
(
eth_resources
),
};
void
__init
at91_add_device_eth
(
struct
at91_eth
_data
*
data
)
void
__init
at91_add_device_eth
(
struct
macb_platform
_data
*
data
)
{
if
(
!
data
)
return
;
...
...
@@ -200,7 +200,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data)
platform_device_register
(
&
at91sam9260_eth_device
);
}
#else
void
__init
at91_add_device_eth
(
struct
at91_eth
_data
*
data
)
{}
void
__init
at91_add_device_eth
(
struct
macb_platform
_data
*
data
)
{}
#endif
...
...
arch/arm/mach-at91/at91sam9263.c
浏览文件 @
ed20178d
...
...
@@ -117,7 +117,7 @@ static struct clk pwm_clk = {
.
type
=
CLK_TYPE_PERIPHERAL
,
};
static
struct
clk
macb_clk
=
{
.
name
=
"
macb_
clk"
,
.
name
=
"
p
clk"
,
.
pmc_mask
=
1
<<
AT91SAM9263_ID_EMAC
,
.
type
=
CLK_TYPE_PERIPHERAL
,
};
...
...
@@ -181,6 +181,8 @@ static struct clk *periph_clocks[] __initdata = {
};
static
struct
clk_lookup
periph_clocks_lookups
[]
=
{
/* One additional fake clock for macb_hclk */
CLKDEV_CON_ID
(
"hclk"
,
&
macb_clk
),
CLKDEV_CON_DEV_ID
(
"pclk"
,
"ssc.0"
,
&
ssc0_clk
),
CLKDEV_CON_DEV_ID
(
"pclk"
,
"ssc.1"
,
&
ssc1_clk
),
CLKDEV_CON_DEV_ID
(
"mci_clk"
,
"at91_mci.0"
,
&
mmc0_clk
),
...
...
arch/arm/mach-at91/at91sam9263_devices.c
浏览文件 @
ed20178d
...
...
@@ -144,7 +144,7 @@ void __init at91_add_device_udc(struct at91_udc_data *data) {}
#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)
static
u64
eth_dmamask
=
DMA_BIT_MASK
(
32
);
static
struct
at91_eth
_data
eth_data
;
static
struct
macb_platform
_data
eth_data
;
static
struct
resource
eth_resources
[]
=
{
[
0
]
=
{
...
...
@@ -171,7 +171,7 @@ static struct platform_device at91sam9263_eth_device = {
.
num_resources
=
ARRAY_SIZE
(
eth_resources
),
};
void
__init
at91_add_device_eth
(
struct
at91_eth
_data
*
data
)
void
__init
at91_add_device_eth
(
struct
macb_platform
_data
*
data
)
{
if
(
!
data
)
return
;
...
...
@@ -208,7 +208,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data)
platform_device_register
(
&
at91sam9263_eth_device
);
}
#else
void
__init
at91_add_device_eth
(
struct
at91_eth
_data
*
data
)
{}
void
__init
at91_add_device_eth
(
struct
macb_platform
_data
*
data
)
{}
#endif
...
...
arch/arm/mach-at91/at91sam9g45.c
浏览文件 @
ed20178d
...
...
@@ -149,7 +149,7 @@ static struct clk ac97_clk = {
.
type
=
CLK_TYPE_PERIPHERAL
,
};
static
struct
clk
macb_clk
=
{
.
name
=
"
macb_
clk"
,
.
name
=
"
p
clk"
,
.
pmc_mask
=
1
<<
AT91SAM9G45_ID_EMAC
,
.
type
=
CLK_TYPE_PERIPHERAL
,
};
...
...
@@ -208,6 +208,8 @@ static struct clk *periph_clocks[] __initdata = {
};
static
struct
clk_lookup
periph_clocks_lookups
[]
=
{
/* One additional fake clock for macb_hclk */
CLKDEV_CON_ID
(
"hclk"
,
&
macb_clk
),
/* One additional fake clock for ohci */
CLKDEV_CON_ID
(
"ohci_clk"
,
&
uhphs_clk
),
CLKDEV_CON_DEV_ID
(
"ehci_clk"
,
"atmel-ehci"
,
&
uhphs_clk
),
...
...
arch/arm/mach-at91/at91sam9g45_devices.c
浏览文件 @
ed20178d
...
...
@@ -284,7 +284,7 @@ void __init at91_add_device_usba(struct usba_platform_data *data) {}
#if defined(CONFIG_MACB) || defined(CONFIG_MACB_MODULE)
static
u64
eth_dmamask
=
DMA_BIT_MASK
(
32
);
static
struct
at91_eth
_data
eth_data
;
static
struct
macb_platform
_data
eth_data
;
static
struct
resource
eth_resources
[]
=
{
[
0
]
=
{
...
...
@@ -311,7 +311,7 @@ static struct platform_device at91sam9g45_eth_device = {
.
num_resources
=
ARRAY_SIZE
(
eth_resources
),
};
void
__init
at91_add_device_eth
(
struct
at91_eth
_data
*
data
)
void
__init
at91_add_device_eth
(
struct
macb_platform
_data
*
data
)
{
if
(
!
data
)
return
;
...
...
@@ -348,7 +348,7 @@ void __init at91_add_device_eth(struct at91_eth_data *data)
platform_device_register
(
&
at91sam9g45_eth_device
);
}
#else
void
__init
at91_add_device_eth
(
struct
at91_eth
_data
*
data
)
{}
void
__init
at91_add_device_eth
(
struct
macb_platform
_data
*
data
)
{}
#endif
...
...
arch/arm/mach-at91/board-1arm.c
浏览文件 @
ed20178d
...
...
@@ -63,7 +63,7 @@ static void __init onearm_init_early(void)
at91_set_serial_console
(
0
);
}
static
struct
at91_eth
_data
__initdata
onearm_eth_data
=
{
static
struct
macb_platform
_data
__initdata
onearm_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC4
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-afeb-9260v1.c
浏览文件 @
ed20178d
...
...
@@ -103,7 +103,7 @@ static struct spi_board_info afeb9260_spi_devices[] = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
afeb9260_macb_data
=
{
static
struct
macb_platform
_data
__initdata
afeb9260_macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PA9
,
.
is_rmii
=
0
,
};
...
...
arch/arm/mach-at91/board-cam60.c
浏览文件 @
ed20178d
...
...
@@ -115,7 +115,7 @@ static struct spi_board_info cam60_spi_devices[] __initdata = {
/*
* MACB Ethernet device
*/
static
struct
__initdata
at91_eth
_data
cam60_macb_data
=
{
static
struct
__initdata
macb_platform
_data
cam60_macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PB5
,
.
is_rmii
=
0
,
};
...
...
arch/arm/mach-at91/board-cap9adk.c
浏览文件 @
ed20178d
...
...
@@ -153,7 +153,7 @@ static struct at91_mmc_data __initdata cap9adk_mmc_data = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
cap9adk_macb_data
=
{
static
struct
macb_platform
_data
__initdata
cap9adk_macb_data
=
{
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-carmeva.c
浏览文件 @
ed20178d
...
...
@@ -57,7 +57,7 @@ static void __init carmeva_init_early(void)
at91_set_serial_console
(
0
);
}
static
struct
at91_eth
_data
__initdata
carmeva_eth_data
=
{
static
struct
macb_platform
_data
__initdata
carmeva_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC4
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-cpu9krea.c
浏览文件 @
ed20178d
...
...
@@ -99,7 +99,7 @@ static struct at91_udc_data __initdata cpu9krea_udc_data = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
cpu9krea_macb_data
=
{
static
struct
macb_platform
_data
__initdata
cpu9krea_macb_data
=
{
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-cpuat91.c
浏览文件 @
ed20178d
...
...
@@ -82,7 +82,7 @@ static void __init cpuat91_init_early(void)
at91_set_serial_console
(
0
);
}
static
struct
at91_eth
_data
__initdata
cpuat91_eth_data
=
{
static
struct
macb_platform
_data
__initdata
cpuat91_eth_data
=
{
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-csb337.c
浏览文件 @
ed20178d
...
...
@@ -58,7 +58,7 @@ static void __init csb337_init_early(void)
at91_set_serial_console
(
0
);
}
static
struct
at91_eth
_data
__initdata
csb337_eth_data
=
{
static
struct
macb_platform
_data
__initdata
csb337_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC2
,
.
is_rmii
=
0
,
};
...
...
arch/arm/mach-at91/board-csb637.c
浏览文件 @
ed20178d
...
...
@@ -52,7 +52,7 @@ static void __init csb637_init_early(void)
at91_set_serial_console
(
0
);
}
static
struct
at91_eth
_data
__initdata
csb637_eth_data
=
{
static
struct
macb_platform
_data
__initdata
csb637_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC0
,
.
is_rmii
=
0
,
};
...
...
arch/arm/mach-at91/board-eb9200.c
浏览文件 @
ed20178d
...
...
@@ -60,7 +60,7 @@ static void __init eb9200_init_early(void)
at91_set_serial_console
(
0
);
}
static
struct
at91_eth
_data
__initdata
eb9200_eth_data
=
{
static
struct
macb_platform
_data
__initdata
eb9200_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC4
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-ecbat91.c
浏览文件 @
ed20178d
...
...
@@ -64,7 +64,7 @@ static void __init ecb_at91init_early(void)
at91_set_serial_console
(
0
);
}
static
struct
at91_eth
_data
__initdata
ecb_at91eth_data
=
{
static
struct
macb_platform
_data
__initdata
ecb_at91eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC4
,
.
is_rmii
=
0
,
};
...
...
arch/arm/mach-at91/board-eco920.c
浏览文件 @
ed20178d
...
...
@@ -47,7 +47,7 @@ static void __init eco920_init_early(void)
at91_set_serial_console
(
0
);
}
static
struct
at91_eth
_data
__initdata
eco920_eth_data
=
{
static
struct
macb_platform
_data
__initdata
eco920_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC2
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-foxg20.c
浏览文件 @
ed20178d
...
...
@@ -135,7 +135,7 @@ static struct spi_board_info foxg20_spi_devices[] = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
foxg20_macb_data
=
{
static
struct
macb_platform
_data
__initdata
foxg20_macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PA7
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-gsia18s.c
浏览文件 @
ed20178d
...
...
@@ -93,7 +93,7 @@ static struct at91_udc_data __initdata udc_data = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
macb_data
=
{
static
struct
macb_platform
_data
__initdata
macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PA28
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-kafa.c
浏览文件 @
ed20178d
...
...
@@ -61,7 +61,7 @@ static void __init kafa_init_early(void)
at91_set_serial_console
(
0
);
}
static
struct
at91_eth
_data
__initdata
kafa_eth_data
=
{
static
struct
macb_platform
_data
__initdata
kafa_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC4
,
.
is_rmii
=
0
,
};
...
...
arch/arm/mach-at91/board-kb9202.c
浏览文件 @
ed20178d
...
...
@@ -69,7 +69,7 @@ static void __init kb9202_init_early(void)
at91_set_serial_console
(
0
);
}
static
struct
at91_eth
_data
__initdata
kb9202_eth_data
=
{
static
struct
macb_platform
_data
__initdata
kb9202_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PB29
,
.
is_rmii
=
0
,
};
...
...
arch/arm/mach-at91/board-neocore926.c
浏览文件 @
ed20178d
...
...
@@ -155,7 +155,7 @@ static struct at91_mmc_data __initdata neocore926_mmc_data = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
neocore926_macb_data
=
{
static
struct
macb_platform
_data
__initdata
neocore926_macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PE31
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-pcontrol-g20.c
浏览文件 @
ed20178d
...
...
@@ -122,7 +122,7 @@ static struct at91_udc_data __initdata pcontrol_g20_udc_data = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
macb_data
=
{
static
struct
macb_platform
_data
__initdata
macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PA28
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-picotux200.c
浏览文件 @
ed20178d
...
...
@@ -60,7 +60,7 @@ static void __init picotux200_init_early(void)
at91_set_serial_console
(
0
);
}
static
struct
at91_eth
_data
__initdata
picotux200_eth_data
=
{
static
struct
macb_platform
_data
__initdata
picotux200_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC4
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-qil-a9260.c
浏览文件 @
ed20178d
...
...
@@ -104,7 +104,7 @@ static struct spi_board_info ek_spi_devices[] = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
ek_macb_data
=
{
static
struct
macb_platform
_data
__initdata
ek_macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PA31
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-rm9200dk.c
浏览文件 @
ed20178d
...
...
@@ -65,7 +65,7 @@ static void __init dk_init_early(void)
at91_set_serial_console
(
0
);
}
static
struct
at91_eth
_data
__initdata
dk_eth_data
=
{
static
struct
macb_platform
_data
__initdata
dk_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC4
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-rm9200ek.c
浏览文件 @
ed20178d
...
...
@@ -65,7 +65,7 @@ static void __init ek_init_early(void)
at91_set_serial_console
(
0
);
}
static
struct
at91_eth
_data
__initdata
ek_eth_data
=
{
static
struct
macb_platform
_data
__initdata
ek_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC4
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-rsi-ews.c
浏览文件 @
ed20178d
...
...
@@ -60,7 +60,7 @@ static void __init rsi_ews_init_early(void)
/*
* Ethernet
*/
static
struct
at91_eth
_data
rsi_ews_eth_data
__initdata
=
{
static
struct
macb_platform
_data
rsi_ews_eth_data
__initdata
=
{
.
phy_irq_pin
=
AT91_PIN_PC4
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-sam9-l9260.c
浏览文件 @
ed20178d
...
...
@@ -109,7 +109,7 @@ static struct spi_board_info ek_spi_devices[] = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
ek_macb_data
=
{
static
struct
macb_platform
_data
__initdata
ek_macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PA7
,
.
is_rmii
=
0
,
};
...
...
arch/arm/mach-at91/board-sam9260ek.c
浏览文件 @
ed20178d
...
...
@@ -151,7 +151,7 @@ static struct spi_board_info ek_spi_devices[] = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
ek_macb_data
=
{
static
struct
macb_platform
_data
__initdata
ek_macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PA7
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-sam9263ek.c
浏览文件 @
ed20178d
...
...
@@ -158,7 +158,7 @@ static struct at91_mmc_data __initdata ek_mmc_data = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
ek_macb_data
=
{
static
struct
macb_platform
_data
__initdata
ek_macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PE31
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-sam9g20ek.c
浏览文件 @
ed20178d
...
...
@@ -123,7 +123,7 @@ static struct spi_board_info ek_spi_devices[] = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
ek_macb_data
=
{
static
struct
macb_platform
_data
__initdata
ek_macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PA7
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-sam9m10g45ek.c
浏览文件 @
ed20178d
...
...
@@ -115,7 +115,7 @@ static struct mci_platform_data __initdata mci1_data = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
ek_macb_data
=
{
static
struct
macb_platform
_data
__initdata
ek_macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PD5
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-snapper9260.c
浏览文件 @
ed20178d
...
...
@@ -65,7 +65,7 @@ static struct at91_udc_data __initdata snapper9260_udc_data = {
.
vbus_polled
=
1
,
};
static
struct
at91_eth
_data
snapper9260_macb_data
=
{
static
struct
macb_platform
_data
snapper9260_macb_data
=
{
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-stamp9g20.c
浏览文件 @
ed20178d
...
...
@@ -157,7 +157,7 @@ static struct at91_udc_data __initdata stamp9g20evb_udc_data = {
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
macb_data
=
{
static
struct
macb_platform
_data
__initdata
macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PA28
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-usb-a926x.c
浏览文件 @
ed20178d
...
...
@@ -146,7 +146,7 @@ static void __init ek_add_device_spi(void)
/*
* MACB Ethernet device
*/
static
struct
at91_eth
_data
__initdata
ek_macb_data
=
{
static
struct
macb_platform
_data
__initdata
ek_macb_data
=
{
.
phy_irq_pin
=
AT91_PIN_PE31
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/board-yl-9200.c
浏览文件 @
ed20178d
...
...
@@ -110,7 +110,7 @@ static struct gpio_led yl9200_leds[] = {
/*
* Ethernet
*/
static
struct
at91_eth
_data
__initdata
yl9200_eth_data
=
{
static
struct
macb_platform
_data
__initdata
yl9200_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PB28
,
.
is_rmii
=
1
,
};
...
...
arch/arm/mach-at91/include/mach/board.h
浏览文件 @
ed20178d
...
...
@@ -40,6 +40,7 @@
#include <linux/atmel-mci.h>
#include <sound/atmel-ac97c.h>
#include <linux/serial.h>
#include <linux/platform_data/macb.h>
/* USB Device */
struct
at91_udc_data
{
...
...
@@ -81,18 +82,7 @@ extern void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data)
/* atmel-mci platform config */
extern
void
__init
at91_add_device_mci
(
short
mmc_id
,
struct
mci_platform_data
*
data
);
/* Ethernet (EMAC & MACB) */
struct
at91_eth_data
{
u32
phy_mask
;
u8
phy_irq_pin
;
/* PHY IRQ */
u8
is_rmii
;
/* using RMII interface? */
};
extern
void
__init
at91_add_device_eth
(
struct
at91_eth_data
*
data
);
#if defined(CONFIG_ARCH_AT91SAM9260) || defined(CONFIG_ARCH_AT91SAM9263) || defined(CONFIG_ARCH_AT91SAM9G20) || defined(CONFIG_ARCH_AT91CAP9) \
|| defined(CONFIG_ARCH_AT91SAM9G45)
#define eth_platform_data at91_eth_data
#endif
extern
void
__init
at91_add_device_eth
(
struct
macb_platform_data
*
data
);
/* USB Host */
struct
at91_usbh_data
{
...
...
arch/avr32/boards/atngw100/setup.c
浏览文件 @
ed20178d
...
...
@@ -109,7 +109,7 @@ struct eth_addr {
u8
addr
[
6
];
};
static
struct
eth_addr
__initdata
hw_addr
[
2
];
static
struct
eth
_platform_data
__initdata
eth_data
[
2
];
static
struct
macb
_platform_data
__initdata
eth_data
[
2
];
static
struct
spi_board_info
spi0_board_info
[]
__initdata
=
{
{
...
...
arch/avr32/boards/atstk1000/atstk1002.c
浏览文件 @
ed20178d
...
...
@@ -105,7 +105,7 @@ struct eth_addr {
};
static
struct
eth_addr
__initdata
hw_addr
[
2
];
static
struct
eth
_platform_data
__initdata
eth_data
[
2
]
=
{
static
struct
macb
_platform_data
__initdata
eth_data
[
2
]
=
{
{
/*
* The MDIO pullups on STK1000 are a bit too weak for
...
...
arch/avr32/boards/favr-32/setup.c
浏览文件 @
ed20178d
...
...
@@ -50,7 +50,7 @@ struct eth_addr {
u8
addr
[
6
];
};
static
struct
eth_addr
__initdata
hw_addr
[
1
];
static
struct
eth
_platform_data
__initdata
eth_data
[
1
]
=
{
static
struct
macb
_platform_data
__initdata
eth_data
[
1
]
=
{
{
.
phy_mask
=
~
(
1U
<<
1
),
},
...
...
arch/avr32/boards/hammerhead/setup.c
浏览文件 @
ed20178d
...
...
@@ -102,7 +102,7 @@ struct eth_addr {
};
static
struct
eth_addr
__initdata
hw_addr
[
1
];
static
struct
eth
_platform_data
__initdata
eth_data
[
1
];
static
struct
macb
_platform_data
__initdata
eth_data
[
1
];
/*
* The next two functions should go away as the boot loader is
...
...
arch/avr32/boards/merisc/setup.c
浏览文件 @
ed20178d
...
...
@@ -52,7 +52,7 @@ struct eth_addr {
};
static
struct
eth_addr
__initdata
hw_addr
[
2
];
static
struct
eth
_platform_data
__initdata
eth_data
[
2
];
static
struct
macb
_platform_data
__initdata
eth_data
[
2
];
static
int
ads7846_get_pendown_state_PB26
(
void
)
{
...
...
arch/avr32/boards/mimc200/setup.c
浏览文件 @
ed20178d
...
...
@@ -86,7 +86,7 @@ struct eth_addr {
u8
addr
[
6
];
};
static
struct
eth_addr
__initdata
hw_addr
[
2
];
static
struct
eth
_platform_data
__initdata
eth_data
[
2
];
static
struct
macb
_platform_data
__initdata
eth_data
[
2
];
static
struct
spi_eeprom
eeprom_25lc010
=
{
.
name
=
"25lc010"
,
...
...
arch/avr32/mach-at32ap/at32ap700x.c
浏览文件 @
ed20178d
...
...
@@ -1067,7 +1067,7 @@ void __init at32_setup_serial_console(unsigned int usart_id)
* -------------------------------------------------------------------- */
#ifdef CONFIG_CPU_AT32AP7000
static
struct
eth
_platform_data
macb0_data
;
static
struct
macb
_platform_data
macb0_data
;
static
struct
resource
macb0_resource
[]
=
{
PBMEM
(
0xfff01800
),
IRQ
(
25
),
...
...
@@ -1076,7 +1076,7 @@ DEFINE_DEV_DATA(macb, 0);
DEV_CLK
(
hclk
,
macb0
,
hsb
,
8
);
DEV_CLK
(
pclk
,
macb0
,
pbb
,
6
);
static
struct
eth
_platform_data
macb1_data
;
static
struct
macb
_platform_data
macb1_data
;
static
struct
resource
macb1_resource
[]
=
{
PBMEM
(
0xfff01c00
),
IRQ
(
26
),
...
...
@@ -1086,7 +1086,7 @@ DEV_CLK(hclk, macb1, hsb, 9);
DEV_CLK
(
pclk
,
macb1
,
pbb
,
7
);
struct
platform_device
*
__init
at32_add_device_eth
(
unsigned
int
id
,
struct
eth
_platform_data
*
data
)
at32_add_device_eth
(
unsigned
int
id
,
struct
macb
_platform_data
*
data
)
{
struct
platform_device
*
pdev
;
u32
pin_mask
;
...
...
@@ -1163,7 +1163,7 @@ at32_add_device_eth(unsigned int id, struct eth_platform_data *data)
return
NULL
;
}
memcpy
(
pdev
->
dev
.
platform_data
,
data
,
sizeof
(
struct
eth
_platform_data
));
memcpy
(
pdev
->
dev
.
platform_data
,
data
,
sizeof
(
struct
macb
_platform_data
));
platform_device_register
(
pdev
);
return
pdev
;
...
...
arch/avr32/mach-at32ap/include/mach/board.h
浏览文件 @
ed20178d
...
...
@@ -6,6 +6,7 @@
#include <linux/types.h>
#include <linux/serial.h>
#include <linux/platform_data/macb.h>
#define GPIO_PIN_NONE (-1)
...
...
@@ -42,12 +43,8 @@ struct atmel_uart_data {
void
at32_map_usart
(
unsigned
int
hw_id
,
unsigned
int
line
,
int
flags
);
struct
platform_device
*
at32_add_device_usart
(
unsigned
int
id
);
struct
eth_platform_data
{
u32
phy_mask
;
u8
is_rmii
;
};
struct
platform_device
*
at32_add_device_eth
(
unsigned
int
id
,
struct
eth
_platform_data
*
data
);
at32_add_device_eth
(
unsigned
int
id
,
struct
macb
_platform_data
*
data
);
struct
spi_board_info
;
struct
platform_device
*
...
...
drivers/net/ethernet/cadence/at91_ether.c
浏览文件 @
ed20178d
...
...
@@ -26,6 +26,7 @@
#include <linux/skbuff.h>
#include <linux/dma-mapping.h>
#include <linux/ethtool.h>
#include <linux/platform_data/macb.h>
#include <linux/platform_device.h>
#include <linux/clk.h>
#include <linux/gfp.h>
...
...
@@ -984,7 +985,7 @@ static const struct net_device_ops at91ether_netdev_ops = {
static
int
__init
at91ether_setup
(
unsigned
long
phy_type
,
unsigned
short
phy_address
,
struct
platform_device
*
pdev
,
struct
clk
*
ether_clk
)
{
struct
at91_eth
_data
*
board_data
=
pdev
->
dev
.
platform_data
;
struct
macb_platform
_data
*
board_data
=
pdev
->
dev
.
platform_data
;
struct
net_device
*
dev
;
struct
at91_private
*
lp
;
unsigned
int
val
;
...
...
drivers/net/ethernet/cadence/at91_ether.h
浏览文件 @
ed20178d
...
...
@@ -85,7 +85,9 @@ struct recv_desc_bufs
struct
at91_private
{
struct
mii_if_info
mii
;
/* ethtool support */
struct
at91_eth_data
board_data
;
/* board-specific configuration */
struct
macb_platform_data
board_data
;
/* board-specific
* configuration (shared with
* macb for common data */
struct
clk
*
ether_clk
;
/* clock */
/* PHY */
...
...
drivers/net/ethernet/cadence/macb.c
浏览文件 @
ed20178d
...
...
@@ -8,6 +8,7 @@
* published by the Free Software Foundation.
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/clk.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
...
...
@@ -19,12 +20,10 @@
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/dma-mapping.h>
#include <linux/platform_data/macb.h>
#include <linux/platform_device.h>
#include <linux/phy.h>
#include <mach/board.h>
#include <mach/cpu.h>
#include "macb.h"
#define RX_BUFFER_SIZE 128
...
...
@@ -84,7 +83,7 @@ static void __init macb_get_hwaddr(struct macb *bp)
if
(
is_valid_ether_addr
(
addr
))
{
memcpy
(
bp
->
dev
->
dev_addr
,
addr
,
sizeof
(
addr
));
}
else
{
dev_info
(
&
bp
->
pdev
->
dev
,
"invalid hw address, using random
\n
"
);
netdev_info
(
bp
->
dev
,
"invalid hw address, using random
\n
"
);
random_ether_addr
(
bp
->
dev
->
dev_addr
);
}
}
...
...
@@ -178,11 +177,12 @@ static void macb_handle_link_change(struct net_device *dev)
if
(
status_change
)
{
if
(
phydev
->
link
)
printk
(
KERN_INFO
"%s: link up (%d/%s)
\n
"
,
dev
->
name
,
phydev
->
speed
,
DUPLEX_FULL
==
phydev
->
duplex
?
"Full"
:
"Half"
);
netdev_info
(
dev
,
"link up (%d/%s)
\n
"
,
phydev
->
speed
,
phydev
->
duplex
==
DUPLEX_FULL
?
"Full"
:
"Half"
);
else
printk
(
KERN_INFO
"%s: link down
\n
"
,
dev
->
name
);
netdev_info
(
dev
,
"link down
\n
"
);
}
}
...
...
@@ -191,12 +191,12 @@ static int macb_mii_probe(struct net_device *dev)
{
struct
macb
*
bp
=
netdev_priv
(
dev
);
struct
phy_device
*
phydev
;
struct
eth
_platform_data
*
pdata
;
struct
macb
_platform_data
*
pdata
;
int
ret
;
phydev
=
phy_find_first
(
bp
->
mii_bus
);
if
(
!
phydev
)
{
printk
(
KERN_ERR
"%s: no PHY found
\n
"
,
dev
->
name
);
netdev_err
(
dev
,
"no PHY found
\n
"
);
return
-
1
;
}
...
...
@@ -209,7 +209,7 @@ static int macb_mii_probe(struct net_device *dev)
PHY_INTERFACE_MODE_RMII
:
PHY_INTERFACE_MODE_MII
);
if
(
ret
)
{
printk
(
KERN_ERR
"%s: Could not attach to PHY
\n
"
,
dev
->
name
);
netdev_err
(
dev
,
"Could not attach to PHY
\n
"
);
return
ret
;
}
...
...
@@ -228,7 +228,7 @@ static int macb_mii_probe(struct net_device *dev)
static
int
macb_mii_init
(
struct
macb
*
bp
)
{
struct
eth
_platform_data
*
pdata
;
struct
macb
_platform_data
*
pdata
;
int
err
=
-
ENXIO
,
i
;
/* Enable management port */
...
...
@@ -303,14 +303,13 @@ static void macb_tx(struct macb *bp)
status
=
macb_readl
(
bp
,
TSR
);
macb_writel
(
bp
,
TSR
,
status
);
dev_dbg
(
&
bp
->
pdev
->
dev
,
"macb_tx status = %02lx
\n
"
,
(
unsigned
long
)
status
);
netdev_dbg
(
bp
->
dev
,
"macb_tx status = %02lx
\n
"
,
(
unsigned
long
)
status
);
if
(
status
&
(
MACB_BIT
(
UND
)
|
MACB_BIT
(
TSR_RLE
)))
{
int
i
;
printk
(
KERN_ERR
"%s:
TX %s, resetting buffers
\n
"
,
bp
->
dev
->
name
,
status
&
MACB_BIT
(
UND
)
?
"underrun"
:
"retry limit exceeded"
);
netdev_err
(
bp
->
dev
,
"
TX %s, resetting buffers
\n
"
,
status
&
MACB_BIT
(
UND
)
?
"underrun"
:
"retry limit exceeded"
);
/* Transfer ongoing, disable transmitter, to avoid confusion */
if
(
status
&
MACB_BIT
(
TGO
))
...
...
@@ -369,8 +368,8 @@ static void macb_tx(struct macb *bp)
if
(
!
(
bufstat
&
MACB_BIT
(
TX_USED
)))
break
;
dev_dbg
(
&
bp
->
pdev
->
dev
,
"skb %u (data %p) TX complete
\n
"
,
tail
,
skb
->
data
);
netdev_dbg
(
bp
->
dev
,
"skb %u (data %p) TX complete
\n
"
,
tail
,
skb
->
data
);
dma_unmap_single
(
&
bp
->
pdev
->
dev
,
rp
->
mapping
,
skb
->
len
,
DMA_TO_DEVICE
);
bp
->
stats
.
tx_packets
++
;
...
...
@@ -395,8 +394,8 @@ static int macb_rx_frame(struct macb *bp, unsigned int first_frag,
len
=
MACB_BFEXT
(
RX_FRMLEN
,
bp
->
rx_ring
[
last_frag
].
ctrl
);
dev_dbg
(
&
bp
->
pdev
->
dev
,
"macb_rx_frame frags %u - %u (len %u)
\n
"
,
first_frag
,
last_frag
,
len
);
netdev_dbg
(
bp
->
dev
,
"macb_rx_frame frags %u - %u (len %u)
\n
"
,
first_frag
,
last_frag
,
len
);
skb
=
dev_alloc_skb
(
len
+
RX_OFFSET
);
if
(
!
skb
)
{
...
...
@@ -437,8 +436,8 @@ static int macb_rx_frame(struct macb *bp, unsigned int first_frag,
bp
->
stats
.
rx_packets
++
;
bp
->
stats
.
rx_bytes
+=
len
;
dev_dbg
(
&
bp
->
pdev
->
dev
,
"received skb of length %u, csum: %08x
\n
"
,
skb
->
len
,
skb
->
csum
);
netdev_dbg
(
bp
->
dev
,
"received skb of length %u, csum: %08x
\n
"
,
skb
->
len
,
skb
->
csum
);
netif_receive_skb
(
skb
);
return
0
;
...
...
@@ -515,8 +514,8 @@ static int macb_poll(struct napi_struct *napi, int budget)
work_done
=
0
;
dev_dbg
(
&
bp
->
pdev
->
dev
,
"poll: status = %08lx, budget = %d
\n
"
,
(
unsigned
long
)
status
,
budget
);
netdev_dbg
(
bp
->
dev
,
"poll: status = %08lx, budget = %d
\n
"
,
(
unsigned
long
)
status
,
budget
);
work_done
=
macb_rx
(
bp
,
budget
);
if
(
work_done
<
budget
)
{
...
...
@@ -565,8 +564,7 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
macb_writel
(
bp
,
IDR
,
MACB_RX_INT_FLAGS
);
if
(
napi_schedule_prep
(
&
bp
->
napi
))
{
dev_dbg
(
&
bp
->
pdev
->
dev
,
"scheduling RX softirq
\n
"
);
netdev_dbg
(
bp
->
dev
,
"scheduling RX softirq
\n
"
);
__napi_schedule
(
&
bp
->
napi
);
}
}
...
...
@@ -587,11 +585,11 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
if
(
status
&
MACB_BIT
(
HRESP
))
{
/*
* TODO: Reset the hardware, and maybe move the printk
* to a lower-priority context as well (work queue?)
* TODO: Reset the hardware, and maybe move the
* netdev_err to a lower-priority context as well
* (work queue?)
*/
printk
(
KERN_ERR
"%s: DMA bus error: HRESP not OK
\n
"
,
dev
->
name
);
netdev_err
(
dev
,
"DMA bus error: HRESP not OK
\n
"
);
}
status
=
macb_readl
(
bp
,
ISR
);
...
...
@@ -626,16 +624,12 @@ static int macb_start_xmit(struct sk_buff *skb, struct net_device *dev)
unsigned
long
flags
;
#ifdef DEBUG
int
i
;
dev_dbg
(
&
bp
->
pdev
->
dev
,
"start_xmit: len %u head %p data %p tail %p end %p
\n
"
,
skb
->
len
,
skb
->
head
,
skb
->
data
,
skb_tail_pointer
(
skb
),
skb_end_pointer
(
skb
));
dev_dbg
(
&
bp
->
pdev
->
dev
,
"data:"
);
for
(
i
=
0
;
i
<
16
;
i
++
)
printk
(
" %02x"
,
(
unsigned
int
)
skb
->
data
[
i
]);
printk
(
"
\n
"
);
netdev_dbg
(
bp
->
dev
,
"start_xmit: len %u head %p data %p tail %p end %p
\n
"
,
skb
->
len
,
skb
->
head
,
skb
->
data
,
skb_tail_pointer
(
skb
),
skb_end_pointer
(
skb
));
print_hex_dump
(
KERN_DEBUG
,
"data: "
,
DUMP_PREFIX_OFFSET
,
16
,
1
,
skb
->
data
,
16
,
true
);
#endif
len
=
skb
->
len
;
...
...
@@ -645,21 +639,20 @@ static int macb_start_xmit(struct sk_buff *skb, struct net_device *dev)
if
(
TX_BUFFS_AVAIL
(
bp
)
<
1
)
{
netif_stop_queue
(
dev
);
spin_unlock_irqrestore
(
&
bp
->
lock
,
flags
);
dev_err
(
&
bp
->
pdev
->
dev
,
"BUG! Tx Ring full when queue awake!
\n
"
);
dev_dbg
(
&
bp
->
pdev
->
dev
,
"tx_head = %u, tx_tail = %u
\n
"
,
bp
->
tx_head
,
bp
->
tx_tail
);
netdev_err
(
bp
->
dev
,
"BUG! Tx Ring full when queue awake!
\n
"
);
netdev_dbg
(
bp
->
dev
,
"tx_head = %u, tx_tail = %u
\n
"
,
bp
->
tx_head
,
bp
->
tx_tail
);
return
NETDEV_TX_BUSY
;
}
entry
=
bp
->
tx_head
;
dev_dbg
(
&
bp
->
pdev
->
dev
,
"Allocated ring entry %u
\n
"
,
entry
);
netdev_dbg
(
bp
->
dev
,
"Allocated ring entry %u
\n
"
,
entry
);
mapping
=
dma_map_single
(
&
bp
->
pdev
->
dev
,
skb
->
data
,
len
,
DMA_TO_DEVICE
);
bp
->
tx_skb
[
entry
].
skb
=
skb
;
bp
->
tx_skb
[
entry
].
mapping
=
mapping
;
dev_dbg
(
&
bp
->
pdev
->
dev
,
"Mapped skb data %p to DMA addr %08lx
\n
"
,
skb
->
data
,
(
unsigned
long
)
mapping
);
netdev_dbg
(
bp
->
dev
,
"Mapped skb data %p to DMA addr %08lx
\n
"
,
skb
->
data
,
(
unsigned
long
)
mapping
);
ctrl
=
MACB_BF
(
TX_FRMLEN
,
len
);
ctrl
|=
MACB_BIT
(
TX_LAST
);
...
...
@@ -723,27 +716,27 @@ static int macb_alloc_consistent(struct macb *bp)
&
bp
->
rx_ring_dma
,
GFP_KERNEL
);
if
(
!
bp
->
rx_ring
)
goto
out_err
;
dev_dbg
(
&
bp
->
pdev
->
dev
,
"Allocated RX ring of %d bytes at %08lx (mapped %p)
\n
"
,
size
,
(
unsigned
long
)
bp
->
rx_ring_dma
,
bp
->
rx_ring
);
netdev_dbg
(
bp
->
dev
,
"Allocated RX ring of %d bytes at %08lx (mapped %p)
\n
"
,
size
,
(
unsigned
long
)
bp
->
rx_ring_dma
,
bp
->
rx_ring
);
size
=
TX_RING_BYTES
;
bp
->
tx_ring
=
dma_alloc_coherent
(
&
bp
->
pdev
->
dev
,
size
,
&
bp
->
tx_ring_dma
,
GFP_KERNEL
);
if
(
!
bp
->
tx_ring
)
goto
out_err
;
dev_dbg
(
&
bp
->
pdev
->
dev
,
"Allocated TX ring of %d bytes at %08lx (mapped %p)
\n
"
,
size
,
(
unsigned
long
)
bp
->
tx_ring_dma
,
bp
->
tx_ring
);
netdev_dbg
(
bp
->
dev
,
"Allocated TX ring of %d bytes at %08lx (mapped %p)
\n
"
,
size
,
(
unsigned
long
)
bp
->
tx_ring_dma
,
bp
->
tx_ring
);
size
=
RX_RING_SIZE
*
RX_BUFFER_SIZE
;
bp
->
rx_buffers
=
dma_alloc_coherent
(
&
bp
->
pdev
->
dev
,
size
,
&
bp
->
rx_buffers_dma
,
GFP_KERNEL
);
if
(
!
bp
->
rx_buffers
)
goto
out_err
;
dev_dbg
(
&
bp
->
pdev
->
dev
,
"Allocated RX buffers of %d bytes at %08lx (mapped %p)
\n
"
,
size
,
(
unsigned
long
)
bp
->
rx_buffers_dma
,
bp
->
rx_buffers
);
netdev_dbg
(
bp
->
dev
,
"Allocated RX buffers of %d bytes at %08lx (mapped %p)
\n
"
,
size
,
(
unsigned
long
)
bp
->
rx_buffers_dma
,
bp
->
rx_buffers
);
return
0
;
...
...
@@ -954,7 +947,7 @@ static int macb_open(struct net_device *dev)
struct
macb
*
bp
=
netdev_priv
(
dev
);
int
err
;
dev_dbg
(
&
bp
->
pdev
->
dev
,
"open
\n
"
);
netdev_dbg
(
bp
->
dev
,
"open
\n
"
);
/* if the phy is not yet register, retry later*/
if
(
!
bp
->
phy_dev
)
...
...
@@ -965,9 +958,8 @@ static int macb_open(struct net_device *dev)
err
=
macb_alloc_consistent
(
bp
);
if
(
err
)
{
printk
(
KERN_ERR
"%s: Unable to allocate DMA memory (error %d)
\n
"
,
dev
->
name
,
err
);
netdev_err
(
dev
,
"Unable to allocate DMA memory (error %d)
\n
"
,
err
);
return
err
;
}
...
...
@@ -1119,7 +1111,7 @@ static const struct net_device_ops macb_netdev_ops = {
static
int
__init
macb_probe
(
struct
platform_device
*
pdev
)
{
struct
eth
_platform_data
*
pdata
;
struct
macb
_platform_data
*
pdata
;
struct
resource
*
regs
;
struct
net_device
*
dev
;
struct
macb
*
bp
;
...
...
@@ -1152,28 +1144,19 @@ static int __init macb_probe(struct platform_device *pdev)
spin_lock_init
(
&
bp
->
lock
);
#if defined(CONFIG_ARCH_AT91)
bp
->
pclk
=
clk_get
(
&
pdev
->
dev
,
"macb_clk"
);
bp
->
pclk
=
clk_get
(
&
pdev
->
dev
,
"pclk"
);
if
(
IS_ERR
(
bp
->
pclk
))
{
dev_err
(
&
pdev
->
dev
,
"failed to get macb_clk
\n
"
);
goto
err_out_free_dev
;
}
clk_enable
(
bp
->
pclk
);
#else
bp
->
pclk
=
clk_get
(
&
pdev
->
dev
,
"pclk"
);
if
(
IS_ERR
(
bp
->
pclk
))
{
dev_err
(
&
pdev
->
dev
,
"failed to get pclk
\n
"
);
goto
err_out_free_dev
;
}
bp
->
hclk
=
clk_get
(
&
pdev
->
dev
,
"hclk"
);
if
(
IS_ERR
(
bp
->
hclk
))
{
dev_err
(
&
pdev
->
dev
,
"failed to get hclk
\n
"
);
goto
err_out_put_pclk
;
}
clk_enable
(
bp
->
pclk
);
clk_enable
(
bp
->
hclk
);
#endif
bp
->
regs
=
ioremap
(
regs
->
start
,
resource_size
(
regs
));
if
(
!
bp
->
regs
)
{
...
...
@@ -1185,9 +1168,8 @@ static int __init macb_probe(struct platform_device *pdev)
dev
->
irq
=
platform_get_irq
(
pdev
,
0
);
err
=
request_irq
(
dev
->
irq
,
macb_interrupt
,
0
,
dev
->
name
,
dev
);
if
(
err
)
{
printk
(
KERN_ERR
"%s: Unable to request IRQ %d (error %d)
\n
"
,
dev
->
name
,
dev
->
irq
,
err
);
dev_err
(
&
pdev
->
dev
,
"Unable to request IRQ %d (error %d)
\n
"
,
dev
->
irq
,
err
);
goto
err_out_iounmap
;
}
...
...
@@ -1239,13 +1221,12 @@ static int __init macb_probe(struct platform_device *pdev)
platform_set_drvdata
(
pdev
,
dev
);
printk
(
KERN_INFO
"%s:
Atmel MACB at 0x%08lx irq %d (%pM)
\n
"
,
dev
->
name
,
dev
->
base_addr
,
dev
->
irq
,
dev
->
dev_addr
);
netdev_info
(
dev
,
"
Atmel MACB at 0x%08lx irq %d (%pM)
\n
"
,
dev
->
base_addr
,
dev
->
irq
,
dev
->
dev_addr
);
phydev
=
bp
->
phy_dev
;
printk
(
KERN_INFO
"%s: attached PHY driver [%s] "
"(mii_bus:phy_addr=%s, irq=%d)
\n
"
,
dev
->
name
,
phydev
->
drv
->
name
,
dev_name
(
&
phydev
->
dev
),
phydev
->
irq
);
netdev_info
(
dev
,
"attached PHY driver [%s] (mii_bus:phy_addr=%s, irq=%d)
\n
"
,
phydev
->
drv
->
name
,
dev_name
(
&
phydev
->
dev
),
phydev
->
irq
);
return
0
;
...
...
@@ -1256,14 +1237,10 @@ static int __init macb_probe(struct platform_device *pdev)
err_out_iounmap:
iounmap
(
bp
->
regs
);
err_out_disable_clocks:
#ifndef CONFIG_ARCH_AT91
clk_disable
(
bp
->
hclk
);
clk_put
(
bp
->
hclk
);
#endif
clk_disable
(
bp
->
pclk
);
#ifndef CONFIG_ARCH_AT91
err_out_put_pclk:
#endif
clk_put
(
bp
->
pclk
);
err_out_free_dev:
free_netdev
(
dev
);
...
...
@@ -1289,10 +1266,8 @@ static int __exit macb_remove(struct platform_device *pdev)
unregister_netdev
(
dev
);
free_irq
(
dev
->
irq
,
dev
);
iounmap
(
bp
->
regs
);
#ifndef CONFIG_ARCH_AT91
clk_disable
(
bp
->
hclk
);
clk_put
(
bp
->
hclk
);
#endif
clk_disable
(
bp
->
pclk
);
clk_put
(
bp
->
pclk
);
free_netdev
(
dev
);
...
...
@@ -1310,9 +1285,7 @@ static int macb_suspend(struct platform_device *pdev, pm_message_t state)
netif_device_detach
(
netdev
);
#ifndef CONFIG_ARCH_AT91
clk_disable
(
bp
->
hclk
);
#endif
clk_disable
(
bp
->
pclk
);
return
0
;
...
...
@@ -1324,9 +1297,7 @@ static int macb_resume(struct platform_device *pdev)
struct
macb
*
bp
=
netdev_priv
(
netdev
);
clk_enable
(
bp
->
pclk
);
#ifndef CONFIG_ARCH_AT91
clk_enable
(
bp
->
hclk
);
#endif
netif_device_attach
(
netdev
);
...
...
include/linux/platform_data/macb.h
0 → 100644
浏览文件 @
ed20178d
/*
* Copyright (C) 2004-2006 Atmel Corporation
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __MACB_PDATA_H__
#define __MACB_PDATA_H__
struct
macb_platform_data
{
u32
phy_mask
;
u8
phy_irq_pin
;
/* PHY IRQ */
u8
is_rmii
;
/* using RMII interface? */
};
#endif
/* __MACB_PDATA_H__ */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录