Subject: [PATCH 1/4] ARM: at91: remove at91sam9263 legacy board support

From: [email-masked] (Nicolas Ferre)
Date: Mon, 1 Dec 2014 17:09:05 +0100

Le 01/12/2014 12:52, Paul Bolle a ?crit :
> On Wed, 2014-11-19 at 11:31 +0100, Nicolas Ferre wrote:
>> Remove legacy support for at91sam9rl boards.
>> This include board files removal plus all legacy code for non DT boards
>> support.
>> Use the Device Tree for running this board with newer kernels.
>>
>> Signed-off-by: Nicolas Ferre <[email-masked]>
>> ---
> 
> There's some further cleanup possible after this patch. I noticed that
> when it landed in today's linux-next (ie, next-20141201) as commit
> 4403ac46edcd ("ARM: at91: remove at91sam9263 legacy board support").
> 
>>  arch/arm/configs/at91sam9263_defconfig   |  151 ---
>>  arch/arm/mach-at91/Kconfig.non_dt        |   21 -
>>  arch/arm/mach-at91/Makefile              |    4 -
>>  arch/arm/mach-at91/at91sam9263.c         |  399 --------
>>  arch/arm/mach-at91/at91sam9263_devices.c | 1538 ------------------------------
>>  arch/arm/mach-at91/board-sam9263ek.c     |  493 ----------
>>  6 files changed, 2606 deletions(-)
>>  delete mode 100644 arch/arm/configs/at91sam9263_defconfig
>>  delete mode 100644 arch/arm/mach-at91/at91sam9263_devices.c
>>  delete mode 100644 arch/arm/mach-at91/board-sam9263ek.c
>>
>> [...]
>> diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c
>> deleted file mode 100644
>> index cef0e2f57068..000000000000
>> --- a/arch/arm/mach-at91/at91sam9263_devices.c
>> +++ /dev/null
>> [...]
>> -/* --------------------------------------------------------------------
>> - *  RTT
>> - * -------------------------------------------------------------------- */
>> -
>> -static struct resource rtt0_resources[] = {
>> -	{
>> -		.start	= AT91SAM9263_BASE_RTT0,
>> -		.end	= AT91SAM9263_BASE_RTT0 + SZ_16 - 1,
>> -		.flags	= IORESOURCE_MEM,
>> -	}, {
>> -		.flags	= IORESOURCE_MEM,
>> -	}, {
>> -		.flags  = IORESOURCE_IRQ,
>> -	}
>> -};
>> -
>> -static struct platform_device at91sam9263_rtt0_device = {
>> -	.name		= "at91_rtt",
>> -	.id		= 0,
>> -	.resource	= rtt0_resources,
>> -};
>> -
>> -static struct resource rtt1_resources[] = {
>> -	{
>> -		.start	= AT91SAM9263_BASE_RTT1,
>> -		.end	= AT91SAM9263_BASE_RTT1 + SZ_16 - 1,
>> -		.flags	= IORESOURCE_MEM,
>> -	}, {
>> -		.flags	= IORESOURCE_MEM,
>> -	}, {
>> -		.flags  = IORESOURCE_IRQ,
>> -	}
>> -};
>> -
>> -static struct platform_device at91sam9263_rtt1_device = {
>> -	.name		= "at91_rtt",
>> -	.id		= 1,
>> -	.resource	= rtt1_resources,
>> -};
>> -
>> -#if IS_ENABLED(CONFIG_RTC_DRV_AT91SAM9)
>> -static void __init at91_add_device_rtt_rtc(void)
>> -{
>> -	struct platform_device *pdev;
>> -	struct resource *r;
>> -
>> -	switch (CONFIG_RTC_DRV_AT91SAM9_RTT) {
> 
> This and...
> 
>> -	case 0:
>> -		/*
>> -		 * The second resource is needed only for the chosen RTT:
>> -		 * GPBR will serve as the storage for RTC time offset
>> -		 */
>> -		at91sam9263_rtt0_device.num_resources = 3;
>> -		at91sam9263_rtt1_device.num_resources = 1;
>> -		pdev = &at91sam9263_rtt0_device;
>> -		r = rtt0_resources;
>> -		break;
>> -	case 1:
>> -		at91sam9263_rtt0_device.num_resources = 1;
>> -		at91sam9263_rtt1_device.num_resources = 3;
>> -		pdev = &at91sam9263_rtt1_device;
>> -		r = rtt1_resources;
>> -		break;
>> -	default:
>> -		pr_err("at91sam9263: only supports 2 RTT (%d)\n",
>> -		       CONFIG_RTC_DRV_AT91SAM9_RTT);
> 
> this are the only places were the Kconfig symbol RTC_DRV_AT91SAM9_RTT
> was used. It is useless now. That matches its help text, that reads:
>     This option is only relevant for legacy board support and
>     won't be used when booting a DT board.
> 
>> -		return;
>> -	}
>> -
>> -	pdev->name = "rtc-at91sam9";
>> -	r[1].start = AT91SAM9263_BASE_GPBR + 4 * CONFIG_RTC_DRV_AT91SAM9_GPBR;
>> -	r[1].end = r[1].start + 3;
>> -	r[2].start = NR_IRQS_LEGACY + AT91_ID_SYS;
>> -	r[2].end = NR_IRQS_LEGACY + AT91_ID_SYS;
>> -}
>> -#else
>> -static void __init at91_add_device_rtt_rtc(void)
>> -{
>> -	/* Only one resource is needed: RTT not used as RTC */
>> -	at91sam9263_rtt0_device.num_resources = 1;
>> -	at91sam9263_rtt1_device.num_resources = 1;
>> -}
>> -#endif
>> -
>> -static void __init at91_add_device_rtt(void)
>> -{
>> -	at91_add_device_rtt_rtc();
>> -	platform_device_register(&at91sam9263_rtt0_device);
>> -	platform_device_register(&at91sam9263_rtt1_device);
>> -}
> 
> Is a patch to remove that symbol from drivers/rtc/Kconfig queued
> somewhere?

Hi Paul,

In fact these config options are flagged as being useless for !DT. As
the modifications of this Kconfig (in a "drivers" branch) and the
removal of !DT boards (in a "cleaup" branch) will happen in 3.19, I was
planning to come back to these 2 options by removing them later in order
to avoid to solve a merge conflict.

https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/drivers/rtc/Kconfig?id=3969eb48ad7f3f3bef61f5474b7214e601fd2d75

As you can see in the commit above, they have been properly tagged by Boris.

So, I suggest to get rid of them during 3.19-rc phase.

Thanks, bye.
-- 
Nicolas Ferre