Re: [PATCH v2 3/3] drivers: cleanup Kconfig stuff

From: Felipe Contreras
Date: Tue Oct 19 2010 - 16:52:37 EST


On Tue, Oct 19, 2010 at 6:05 PM, Felipe Balbi <me@xxxxxxxxxxxxxxx> wrote:
> On Tue, 19 Oct 2010 17:32:07 +0300, Felipe Contreras
> <felipe.contreras@xxxxxxxxx> wrote:
>> There are two parts, one part is to fix the Kconfigs, and another was
>> to come up with a way to replace the horrible defconfigs. Part two is
>> mostly fixed thanks to 'make savedefconfig', since the defconfigs are
>> not so horrible any more, but part one is a continued effort.
>>
>> For part two Linus had the idea to use Kconfigs instead of defconfigs,
>> but they would mostly look very similar to the current ones generated
>> by 'make savedefconfig'.
>>
>> I don't know what makes you think Linus didn't want part one to be
>> done. He wanted the Kconfig.rx51 to be human readable, and you are
>> proposing that TWL4030_USB should be manually added there... I don't
>> think TWL4030_USB says anything to human beings.
>
> I don't read anywhere Linus saying we should clutter drivers/*/Kconfig
> with defaults. I think you're inverting things, it's much better
> to select TWL4030_USB when you enable MACH_OMAP_RX51 then default y
> if MACH_OMAP_RX51.

So say, if you have 100 board defconfigs with OMAP3 chips and TWL4030,
each and every one of them should select both USB_MUSB_HDRC and
TWL4030_USB?

And you are saying if somebody is doing 'make menuconfig', that person
should somehow know that _obviously_ he needs TWL4030_USB in order to
use USB_MUSB_HDRC, or USB_G_NOKIA?

That's precisely the opposite to:
---
It's often tedious for other cases too ("I just want to enable a
particular driver, what do I need to do so?")
---
---
In other words, you _can_ encode the information that is in the
xyz_defconfig files by doing it in Kconfig.xyz files instead. But you do
it in a human-readable manner. And the hierarchical thing is absolutely
required for that - otherwise you'd end up with just another form of the
current xyz_defconfig.
---

>> Yes, but how do you get rid of the defconfig while also having a
>> working USB_G_NOKIA? Somehow a transceiver should be automatically
>> selected.
>
> and you do that selection when the board is enabled otherwise the
> drivers Kconfig will be cluttered with default Y if blabla.

If you can imagine a hierarchy like:

drivers/usb/otg/Kconfig
arch/arm/mach-omap2/Kconfig
^ arch/arm/mach-omap2/boards/Kconfig.n900

You would want TWL4030_USB to be up in the hierarchy, so that you
don't have to add one extra line to each and every board file.

But in fact, you don't want TWL4030_USB on the Kconfig because not
everyone might want/need USB support. That should be selected by the
user, and asking the user to somehow know that he needs both
TWL4030_USB and USB_MUSB_HDRC is way too much to ask in my opinion.

The idea would be to keep Kconfig.n900 so minimal that it's not needed at all.

--
Felipe Contreras
--
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/