Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
ed20178d
Commit
ed20178d
authored
Nov 29, 2011
by
Arnd Bergmann
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'drivers/macb-gem-cleanup' into at91/gpio
parents
d28bdfc5
c220f8cd
Changes
54
Show whitespace changes
Inline
Side-by-side
Showing
54 changed files
with
157 additions
and
171 deletions
+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
No files found.
arch/arm/mach-at91/at91cap9.c
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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,13 +303,12 @@ 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
)
?
netdev_err
(
bp
->
dev
,
"
TX %s, resetting buffers
\n
"
,
status
&
MACB_BIT
(
UND
)
?
"underrun"
:
"retry limit exceeded"
);
/* Transfer ongoing, disable transmitter, to avoid confusion */
...
...
@@ -369,7 +368,7 @@ 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
"
,
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
);
...
...
@@ -395,7 +394,7 @@ 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
"
,
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
);
...
...
@@ -437,7 +436,7 @@ 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
"
,
netdev_dbg
(
bp
->
dev
,
"received skb of length %u, csum: %08x
\n
"
,
skb
->
len
,
skb
->
csum
);
netif_receive_skb
(
skb
);
...
...
@@ -515,7 +514,7 @@ static int macb_poll(struct napi_struct *napi, int budget)
work_done
=
0
;
dev_dbg
(
&
bp
->
pdev
->
dev
,
"poll: status = %08lx, budget = %d
\n
"
,
netdev_dbg
(
bp
->
dev
,
"poll: status = %08lx, budget = %d
\n
"
,
(
unsigned
long
)
status
,
budget
);
work_done
=
macb_rx
(
bp
,
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
,
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
));
dev_dbg
(
&
bp
->
pdev
->
dev
,
"data:"
);
for
(
i
=
0
;
i
<
16
;
i
++
)
printk
(
" %02x"
,
(
unsigned
int
)
skb
->
data
[
i
]);
printk
(
"
\n
"
);
print_hex_dump
(
KERN_DEBUG
,
"data: "
,
DUMP_PREFIX_OFFSET
,
16
,
1
,
skb
->
data
,
16
,
true
);
#endif
len
=
skb
->
len
;
...
...
@@ -645,20 +639,19 @@ 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
"
,
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
"
,
netdev_dbg
(
bp
->
dev
,
"Mapped skb data %p to DMA addr %08lx
\n
"
,
skb
->
data
,
(
unsigned
long
)
mapping
);
ctrl
=
MACB_BF
(
TX_FRMLEN
,
len
);
...
...
@@ -723,7 +716,7 @@ 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
,
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
);
...
...
@@ -732,7 +725,7 @@ static int macb_alloc_consistent(struct macb *bp)
&
bp
->
tx_ring_dma
,
GFP_KERNEL
);
if
(
!
bp
->
tx_ring
)
goto
out_err
;
dev_dbg
(
&
bp
->
pdev
->
dev
,
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
);
...
...
@@ -741,7 +734,7 @@ static int macb_alloc_consistent(struct macb *bp)
&
bp
->
rx_buffers_dma
,
GFP_KERNEL
);
if
(
!
bp
->
rx_buffers
)
goto
out_err
;
dev_dbg
(
&
bp
->
pdev
->
dev
,
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
);
...
...
@@ -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,12 +1221,11 @@ 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
,
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
View file @
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__ */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment