[RFC PATCH 02/23] at91: Make Ethernet device common
Ryan Mallon
ryan at bluewatersys.com
Tue Apr 19 22:33:25 EDT 2011
On 04/20/2011 02:10 PM, H Hartley Sweeten wrote:
> On Tuesday, April 19, 2011 6:10 PM, Ryan Mallon wrote:
>>
>> Replace the individual Ethernet device code for each at91 variant with
>> a single implementation in devices.
>>
>> Signed-off-by: Ryan Mallon <ryan at bluewatersys.com>
>
> Nice.
>
> A couple comments below.
>
> [snip]
>
>> diff --git a/arch/arm/mach-at91/at572d940hf_devices.c b/arch/arm/mach-at91/at572d940hf_devices.c
>> index 0fc20a2..12af1d5 100644
>> --- a/arch/arm/mach-at91/at572d940hf_devices.c
>> +++ b/arch/arm/mach-at91/at572d940hf_devices.c
>> @@ -35,6 +35,7 @@
>>
>> #include "generic.h"
>> #include "sam9_smc.h"
>> +#include "devices.h"
>>
>>
>> /* --------------------------------------------------------------------
>> @@ -138,68 +139,26 @@ void __init at91_add_device_udc(struct at91_udc_data *data) {}
>> * Ethernet
>> * -------------------------------------------------------------------- */
>>
>> -#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 resource eth_resources[] = {
>> - [0] = {
>> - .start = AT572D940HF_BASE_EMAC,
>> - .end = AT572D940HF_BASE_EMAC + SZ_16K - 1,
>> - .flags = IORESOURCE_MEM,
>> - },
>> - [1] = {
>> - .start = AT572D940HF_ID_EMAC,
>> - .end = AT572D940HF_ID_EMAC,
>> - .flags = IORESOURCE_IRQ,
>> - },
>
> [snip]
>
>> +static struct __initdata at91_dev_table_ethernet device_eth = {
>> + .mmio_base = AT91SAM9260_BASE_EMAC,
>> + .irq = AT91SAM9260_ID_EMAC,
>
> AT572D940HF_BASE_EMAC and AT572D940HF_ID_EMAC?
Crap. It's somehow ended up in patch 4 instead. Will fix, thanks.
>
>> + .rmii_pins = eth_rmii_pins,
>> + .nr_rmii_pins = ARRAY_SIZE(eth_rmii_pins),
>> };
>>
>> -void __init at91_add_device_eth(struct at91_eth_data *data)
>> -{
>> - if (!data)
>> - return;
>> -
>> - if (data->phy_irq_pin) {
>> - at91_set_gpio_input(data->phy_irq_pin, 0);
>> - at91_set_deglitch(data->phy_irq_pin, 1);
>> - }
>> -
>> - /* Only RMII is supported */
>> - data->is_rmii = 1;
>
> How is this set for this platfrom?
By having mii_pins set to NULL. The devices.c code now does:
if (!data->is_rmii && info->mii_pins)
...
>
> [snip]
>
> diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c
> index 59fc483..3c0959f 100644
> --- a/arch/arm/mach-at91/at91sam9261_devices.c
> +++ b/arch/arm/mach-at91/at91sam9261_devices.c
> @@ -1044,7 +1044,6 @@ void __init at91_set_serial_console(unsigned portnr) {}
> void __init at91_add_device_serial(void) {}
> #endif
>
> -
>
> Nit. Unrelated whitespace change.
Thanks, will clean this up.
>
> [snip]
>
> diff --git a/arch/arm/mach-at91/devices.c b/arch/arm/mach-at91/devices.c
> index 653e0a9..07fefc8 100644
> --- a/arch/arm/mach-at91/devices.c
> +++ b/arch/arm/mach-at91/devices.c
>
> [snip]
>
>> +static struct platform_device at91_eth_device = {
>> + .name = "macb",
>> + .id = -1,
>> + .dev = {
>> + .dma_mask = ð_dmamask,
>> + .coherent_dma_mask = DMA_BIT_MASK(32),
>> + .platform_data = ð_data,
>
> Nit. Excessive whitespace.
This is cut and pasted from one of the *_devices.c files so the change
is minimal.
>
> [snip]
>
>> +#else
>> +void __init at91_add_device_eth(struct at91_eth_data *data) {}
>
> inline maybe?
No. This is also cut and pasted from the *_devices.c files so the change
is minimal. The compiler should out-right remove this anyway so it
shouldn't need to be inline.
~Ryan
--
Bluewater Systems Ltd - ARM Technology Solution Centre
Ryan Mallon 5 Amuri Park, 404 Barbadoes St
ryan at bluewatersys.com PO Box 13 889, Christchurch 8013
http://www.bluewatersys.com New Zealand
Phone: +64 3 3779127 Freecall: Australia 1800 148 751
Fax: +64 3 3779135 USA 1800 261 2934
More information about the linux-arm-kernel
mailing list