Re: [PATCH 03/11] gpio: davinci: Modify to platform driver

From: Sekhar Nori
Date: Thu Jun 13 2013 - 04:30:48 EST


On 6/13/2013 1:02 PM, Philip, Avinash wrote:

> With tnetv107x_defconfig build is failing
>
> arch/arm/mach-davinci/board-tnetv107x-evm.c:282:15: error:
> 'davinci_timer_init' undeclared here (not in a function)
> arch/arm/mach-davinci/board-tnetv107x-evm.c:284:15: error:
> 'davinci_init_late' undeclared here (not in a function)
> make[1]: *** [arch/arm/mach-davinci/board-tnetv107x-evm.o] Error 1
>
> Following patch fixes the build above breakage

The error you are seeing and the patch you provided below have no
correlation.

>
> diff --git a/arch/arm/mach-davinci/board-tnetv107x-evm.c b/arch/arm/mach-davinci/board-tnetv107x-evm.c
> index ba79837..4a9c320 100644
> --- a/arch/arm/mach-davinci/board-tnetv107x-evm.c
> +++ b/arch/arm/mach-davinci/board-tnetv107x-evm.c
> @@ -30,6 +30,7 @@
> #include <asm/mach/arch.h>
> #include <asm/mach-types.h>
>
> +#include <mach/common.h>
> #include <mach/irqs.h>
> #include <mach/edma.h>
> #include <mach/mux.h>
> @@ -147,7 +148,7 @@ static struct davinci_nand_pdata nand_config = {
> .ecc_bits = 1,
> };
>
> -static struct davinci_uart_config serial_config __initconst = {
> +static struct davinci_uart_config serial_config = {
> .enabled_uarts = BIT(1),
> };

You can make this __initdata instead - assuming its okay to have this
memory discarded at init.

>
> @@ -245,7 +246,7 @@ static struct ti_ssp_data ssp_config = {
> },
> };
>
> -static struct tnetv107x_device_info evm_device_info __initconst = {
> +static struct tnetv107x_device_info evm_device_info = {

Same here. You can make this __initdata.

Please send a formal patch for the errors you have seen.

> .serial_config = &serial_config,
> .mmc_config[1] = &mmc_config, /* controller 1 */
> .nand_config[0] = &nand_config, /* chip select 0 */
>
>
>
>>
>>>
>>> So I prefer to leave tnetv107x platform for now.
>>
>> I don't think that's acceptable. At least by me.
>
> I think 2 options are available
> 1. Convert gpio-tnetv107x.c to platform driver. This will help in
> removing gpio references in davinci_soc_info structure.
> 2. Remove inline gpio api support and start use gpiolib support.
>
> I prefer first option. It will help in removing
> <arch/arm/mach-davinci/include/mach/gpio-davinci.h>.

Okay. Can you take this up in this series? I understand you may not have
an tnetv107x board, but at least you can get to a series that builds.

Even if you choose to do just option #2, I am OK. What I really want to
see is inline API gone completely (not just remain largely unused). This
will also help you avoid exposing internal data structures like
davinci_gpio_controller exposed to the whole kernel. The worse part
right now is you have two copies of the same structure exposed globally
from two different include folders.

Thanks,
Sekhar
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/