All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT] kconfig rc fixes
@ 2010-10-09 22:40 Michal Marek
  2010-11-03 22:29 ` REGRESSION: " Mauro Carvalho Chehab
  0 siblings, 1 reply; 39+ messages in thread
From: Michal Marek @ 2010-10-09 22:40 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: kyle, lacombar, mmarek, linux-kbuild, linux-kernel

Hi Linus,

I have three fixes that should ideally go into 2.6.36:

1) Kyle's make oldnoconfig fix: make oldnoconfig was added and later got
   broken, all in 2.6.36-rc1.
2) Arnaud's fix for a crash in kconfig caused by a use-after-free bug.
   This fix has the unfortunate side effect that most configurations
   (e.g. make defconfig on x86) start printing warnings several lines
   long. These warnings are valid, but were not detected before. To
   avoid receiving tens of reports about this once 2.6.36 is out, I
   decided to comment out the warnings completely for the final release,
   as there is not enough time to fix the root causes.

Please consider for 2.6.36. Or if you are only willing to take either 1)
or 2), let me know and I'll prepare such branch.

Thanks,
Michal


The following changes since commit cb655d0f3d57c23db51b981648e452988c0223f9:

  Linux 2.6.36-rc7 (2010-10-06 13:39:52 -0700)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6.git rc-fixes

Arnaud Lacombe (1):
      kconfig: delay symbol direct dependency initialization

Kyle McMartin (1):
      kbuild: fix oldnoconfig to do the right thing

Michal Marek (1):
      kconfig: Temporarily disable dependency warnings

 scripts/kconfig/conf.c   |    2 +-
 scripts/kconfig/expr.h   |    1 -
 scripts/kconfig/menu.c   |    7 ++-----
 scripts/kconfig/symbol.c |    2 ++
 4 files changed, 5 insertions(+), 7 deletions(-)

^ permalink raw reply	[flat|nested] 39+ messages in thread

* REGRESSION: Re: [GIT] kconfig rc fixes
  2010-10-09 22:40 [GIT] kconfig rc fixes Michal Marek
@ 2010-11-03 22:29 ` Mauro Carvalho Chehab
  2010-11-03 22:47   ` Michal Marek
                     ` (2 more replies)
  0 siblings, 3 replies; 39+ messages in thread
From: Mauro Carvalho Chehab @ 2010-11-03 22:29 UTC (permalink / raw)
  To: Michal Marek
  Cc: Linus Torvalds, kyle, lacombar, linux-kbuild, linux-kernel,
	Linux Media Mailing List

Hi Michal,

Em 09-10-2010 18:40, Michal Marek escreveu:
> Hi Linus,
> 
> I have three fixes that should ideally go into 2.6.36:
> 
> 1) Kyle's make oldnoconfig fix: make oldnoconfig was added and later got
>    broken, all in 2.6.36-rc1.
> 2) Arnaud's fix for a crash in kconfig caused by a use-after-free bug.
>    This fix has the unfortunate side effect that most configurations
>    (e.g. make defconfig on x86) start printing warnings several lines
>    long. These warnings are valid, but were not detected before. To
>    avoid receiving tens of reports about this once 2.6.36 is out, I
>    decided to comment out the warnings completely for the final release,
>    as there is not enough time to fix the root causes.
> 
> Please consider for 2.6.36. Or if you are only willing to take either 1)
> or 2), let me know and I'll prepare such branch.
> 
> Thanks,
> Michal
> 
> 
> The following changes since commit cb655d0f3d57c23db51b981648e452988c0223f9:
> 
>   Linux 2.6.36-rc7 (2010-10-06 13:39:52 -0700)
> 
> are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6.git rc-fixes
> 
> Arnaud Lacombe (1):
>       kconfig: delay symbol direct dependency initialization

This patch generated a regression with V4L build. After applying it, some Kconfig
dependencies that used to work with V4L Kconfig broke.

Basically, we have things there like:

config VIDEO_HELPER_CHIPS_AUTO
	bool "Autoselect pertinent encoders/decoders and other helper chips"

config VIDEO_IVTV
	select VIDEO_WM8739 if VIDEO_HELPER_CHIPS_AUTO

menu "Encoders/decoders and other helper chips"
	depends on !VIDEO_HELPER_CHIPS_AUTO

config VIDEO_WM8739
	tristate "Wolfson Microelectronics WM8739 stereo audio ADC"

The hole idea is that, by default, all I2C drivers that might be used by an 
IVTV variant are compiled by default, but user can opt to un-select the drivers
that he didn't actually need, in order to create a kernel with a smaller footprint.

This works fine on up to 2.6.35. However, with changeset ff5ff6060bf880aac233e68dd666cbe9e39ec620,
this behavior is now broken (see the enclosed logs).

Please take a look on it and provide us some fix.

Thanks!
Mauro.

---

warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_WM8739 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_SAA7127 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_VP27SMPX which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_CX18 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && DVB_CORE && PCI && I2C && EXPERIMENTAL && INPUT && VIDEO_IR) selects VIDEO_CS5345 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_M52790 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_CX88 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_DEV && PCI && I2C && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO || VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR || VIDEO_PVRUSB2 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && VIDEO_V4L2 && I2C && VIDEO_MEDIA) selects VIDEO_WM8775 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_MXB && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && PCI && VIDEO_V4L2 && I2C && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_TDA9840 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && !VIDEO_HELPER_CHIPS_AUTO && I2C)
warning: (VIDEO_ZORAN_BUZ && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO || VIDEO_ZORAN_LML33R10 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO || VIDEO_MXB && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && PCI && VIDEO_V4L2 && I2C && VIDEO_HELPER_CHIPS_AUTO || VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR || VIDEO_PVRUSB2 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && VIDEO_V4L2 && I2C && VIDEO_MEDIA || VIDEO_EM28XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO || VIDEO_USBVISION && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && I2C && VIDEO_V4L2 && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_SAA711X which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_
DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_EM28XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_TVP5150 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_UPD64083 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_MXB && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && PCI && VIDEO_V4L2 && I2C && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_TEA6420 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && !VIDEO_HELPER_CHIPS_AUTO && I2C)
warning: (VIDEO_ZORAN_AVS6EYES && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && EXPERIMENTAL && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_KS0127 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR || VIDEO_PVRUSB2 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && VIDEO_V4L2 && I2C && VIDEO_MEDIA) selects VIDEO_CS53L32A which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_SAA717X which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_UPD64031A which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_CX23885 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && DVB_CORE && VIDEO_DEV && PCI && I2C && INPUT && IR_CORE || VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR || VIDEO_PVRUSB2 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && VIDEO_V4L2 && I2C && VIDEO_MEDIA || VIDEO_CX231XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT && VIDEO_IR || VIDEO_CX25821 && STAGING && !STAGING_EXCLUDE_BUILD && DVB_CORE && VIDEO_DEV && PCI && I2C && INPUT && BKL && VIDEO_IR) selects VIDEO_CX25840 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_ZORAN_DC30 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN && VIDEO_HELPER_CHIPS_AUTO || VIDEO_ZORAN_DC10 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_ADV7175 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (OLPC && X86_32) selects OLPC_OPENFIRMWARE which has unmet direct dependencies (X86_32 && !X86_64 && !X86_PAE)
warning: (VIDEO_ZORAN_LML33R10 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_ADV7170 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_ZORAN_DC30 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_VPX3220 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_ZORAN_LML33 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_BT819 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_CX88_BLACKBIRD && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_CX88 || VIDEO_CX23885 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && DVB_CORE && VIDEO_DEV && PCI && I2C && INPUT && IR_CORE || VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR || VIDEO_CX18 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && DVB_CORE && PCI && I2C && EXPERIMENTAL && INPUT && VIDEO_IR || VIDEO_PVRUSB2 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && VIDEO_V4L2 && I2C && VIDEO_MEDIA || VIDEO_CX231XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT && VIDEO_IR || VIDEO_CX25821 && STAGING && !STAGING_EXCLUDE_BUILD && DVB_CORE && VIDEO_DEV && PCI && I2C && INPUT && BKL && VIDEO_IR) selects VIDEO_CX2341X which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V
4L2 && VIDEO_V4L2_COMMON)
warning: (VIDEO_MXB && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && PCI && VIDEO_V4L2 && I2C && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_TEA6415C which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && !VIDEO_HELPER_CHIPS_AUTO && I2C)
warning: (VIDEO_ZORAN_BUZ && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_SAA7185 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_EM28XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_MT9V011 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && I2C && VIDEO_V4L2)
warning: (VIDEO_BT848 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_DEV && PCI && I2C && VIDEO_V4L2 && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO || VIDEO_SAA7134 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_DEV && PCI && I2C && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_SAA6588 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_BT848 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_DEV && PCI && I2C && VIDEO_V4L2 && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_TDA7432 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_CAFE_CCIC && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && PCI && I2C && VIDEO_V4L2 || VIDEO_VIA_CAMERA && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && FB_VIA) selects VIDEO_OV7670 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && I2C && VIDEO_V4L2)
warning: (VIDEO_BT848 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_DEV && PCI && I2C && VIDEO_V4L2 && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO || VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR || VIDEO_PVRUSB2 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && VIDEO_V4L2 && I2C && VIDEO_MEDIA || VIDEO_EM28XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_MSP3400 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_ZORAN_LML33 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO || VIDEO_ZORAN_AVS6EYES && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && EXPERIMENTAL && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_BT856 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_BT848 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_DEV && PCI && I2C && VIDEO_V4L2 && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_TVAUDIO which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_ZORAN_DC10 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_SAA7110 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_ZORAN_AVS6EYES && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && EXPERIMENTAL && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_BT866 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_WM8739 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_SAA7127 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_VP27SMPX which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_CX18 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && DVB_CORE && PCI && I2C && EXPERIMENTAL && INPUT && VIDEO_IR) selects VIDEO_CS5345 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_M52790 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_CX88 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_DEV && PCI && I2C && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO || VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR || VIDEO_PVRUSB2 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && VIDEO_V4L2 && I2C && VIDEO_MEDIA) selects VIDEO_WM8775 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_MXB && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && PCI && VIDEO_V4L2 && I2C && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_TDA9840 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && !VIDEO_HELPER_CHIPS_AUTO && I2C)
warning: (VIDEO_ZORAN_BUZ && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO || VIDEO_ZORAN_LML33R10 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO || VIDEO_MXB && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && PCI && VIDEO_V4L2 && I2C && VIDEO_HELPER_CHIPS_AUTO || VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR || VIDEO_PVRUSB2 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && VIDEO_V4L2 && I2C && VIDEO_MEDIA || VIDEO_EM28XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO || VIDEO_USBVISION && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && I2C && VIDEO_V4L2 && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_SAA711X which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_
DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_EM28XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_TVP5150 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_UPD64083 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_MXB && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && PCI && VIDEO_V4L2 && I2C && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_TEA6420 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && !VIDEO_HELPER_CHIPS_AUTO && I2C)
warning: (VIDEO_ZORAN_AVS6EYES && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && EXPERIMENTAL && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_KS0127 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR || VIDEO_PVRUSB2 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && VIDEO_V4L2 && I2C && VIDEO_MEDIA) selects VIDEO_CS53L32A which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_SAA717X which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR) selects VIDEO_UPD64031A which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_CX23885 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && DVB_CORE && VIDEO_DEV && PCI && I2C && INPUT && IR_CORE || VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR || VIDEO_PVRUSB2 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && VIDEO_V4L2 && I2C && VIDEO_MEDIA || VIDEO_CX231XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT && VIDEO_IR || VIDEO_CX25821 && STAGING && !STAGING_EXCLUDE_BUILD && DVB_CORE && VIDEO_DEV && PCI && I2C && INPUT && BKL && VIDEO_IR) selects VIDEO_CX25840 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_ZORAN_DC30 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN && VIDEO_HELPER_CHIPS_AUTO || VIDEO_ZORAN_DC10 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_ADV7175 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (OLPC && X86_32) selects OLPC_OPENFIRMWARE which has unmet direct dependencies (X86_32 && !X86_64 && !X86_PAE)
warning: (VIDEO_ZORAN_LML33R10 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_ADV7170 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_ZORAN_DC30 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_VPX3220 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_ZORAN_LML33 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_BT819 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_CX88_BLACKBIRD && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_CX88 || VIDEO_CX23885 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && DVB_CORE && VIDEO_DEV && PCI && I2C && INPUT && IR_CORE || VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR || VIDEO_CX18 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && DVB_CORE && PCI && I2C && EXPERIMENTAL && INPUT && VIDEO_IR || VIDEO_PVRUSB2 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && VIDEO_V4L2 && I2C && VIDEO_MEDIA || VIDEO_CX231XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT && VIDEO_IR || VIDEO_CX25821 && STAGING && !STAGING_EXCLUDE_BUILD && DVB_CORE && VIDEO_DEV && PCI && I2C && INPUT && BKL && VIDEO_IR) selects VIDEO_CX2341X which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V
4L2 && VIDEO_V4L2_COMMON)
warning: (VIDEO_MXB && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && PCI && VIDEO_V4L2 && I2C && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_TEA6415C which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && !VIDEO_HELPER_CHIPS_AUTO && I2C)
warning: (VIDEO_ZORAN_BUZ && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_SAA7185 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_EM28XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_MT9V011 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && I2C && VIDEO_V4L2)
warning: (VIDEO_BT848 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_DEV && PCI && I2C && VIDEO_V4L2 && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO || VIDEO_SAA7134 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_DEV && PCI && I2C && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_SAA6588 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_BT848 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_DEV && PCI && I2C && VIDEO_V4L2 && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_TDA7432 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_CAFE_CCIC && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && PCI && I2C && VIDEO_V4L2 || VIDEO_VIA_CAMERA && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && FB_VIA) selects VIDEO_OV7670 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && I2C && VIDEO_V4L2)
warning: (VIDEO_BT848 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_DEV && PCI && I2C && VIDEO_V4L2 && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO || VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT && VIDEO_IR || VIDEO_PVRUSB2 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && V4L_USB_DRIVERS && USB && VIDEO_V4L2 && I2C && VIDEO_MEDIA || VIDEO_EM28XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_MSP3400 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_ZORAN_LML33 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO || VIDEO_ZORAN_AVS6EYES && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && EXPERIMENTAL && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_BT856 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_BT848 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_DEV && PCI && I2C && VIDEO_V4L2 && INPUT && VIDEO_IR && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_TVAUDIO which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_ZORAN_DC10 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_SAA7110 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)
warning: (VIDEO_ZORAN_AVS6EYES && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_ZORAN_ZR36060 && EXPERIMENTAL && VIDEO_HELPER_CHIPS_AUTO) selects VIDEO_BT866 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && VIDEO_V4L2 && I2C)



^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-03 22:29 ` REGRESSION: " Mauro Carvalho Chehab
@ 2010-11-03 22:47   ` Michal Marek
  2010-11-03 23:02     ` Mauro Carvalho Chehab
  2010-11-04  2:31   ` Arnaud Lacombe
  2010-11-04 18:34   ` REGRESSION: Re: [GIT] kconfig rc fixes Arnaud Lacombe
  2 siblings, 1 reply; 39+ messages in thread
From: Michal Marek @ 2010-11-03 22:47 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Linus Torvalds, kyle, lacombar, linux-kbuild, linux-kernel,
	Linux Media Mailing List

On 3.11.2010 23:29, Mauro Carvalho Chehab wrote:
> Em 09-10-2010 18:40, Michal Marek escreveu:
>> The following changes since commit cb655d0f3d57c23db51b981648e452988c0223f9:
>>
>>   Linux 2.6.36-rc7 (2010-10-06 13:39:52 -0700)
>>
>> are available in the git repository at:
>>   git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6.git rc-fixes
>>
>> Arnaud Lacombe (1):
>>       kconfig: delay symbol direct dependency initialization
> 
> This patch generated a regression with V4L build. After applying it, some Kconfig
> dependencies that used to work with V4L Kconfig broke.

You mean, the dependencies trigger a warning now, right? Also, you are
replying to my pull request for 2.6.36-rc8, but that pull request also
included "kconfig: Temporarily disable dependency warnings", so 2.6.36
final is NOT affected by this, just to clarify. 2.6.37-rc1 reverted this
workaround and I hope we come to some solution now. BTW,
http://www.kerneltrap.com/mailarchive/linux-kernel/2010/10/7/4629122/thread
is how a very similar issue was fixed in the i2c Kconfig (commit 0a57274
in 2.6.37-rc1 now).

Michal

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-03 22:47   ` Michal Marek
@ 2010-11-03 23:02     ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 39+ messages in thread
From: Mauro Carvalho Chehab @ 2010-11-03 23:02 UTC (permalink / raw)
  To: Michal Marek
  Cc: Linus Torvalds, kyle, lacombar, linux-kbuild, linux-kernel,
	Linux Media Mailing List

Em 03-11-2010 18:47, Michal Marek escreveu:
> On 3.11.2010 23:29, Mauro Carvalho Chehab wrote:
>> Em 09-10-2010 18:40, Michal Marek escreveu:
>>> The following changes since commit cb655d0f3d57c23db51b981648e452988c0223f9:
>>>
>>>   Linux 2.6.36-rc7 (2010-10-06 13:39:52 -0700)
>>>
>>> are available in the git repository at:
>>>   git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6.git rc-fixes
>>>
>>> Arnaud Lacombe (1):
>>>       kconfig: delay symbol direct dependency initialization
>>
>> This patch generated a regression with V4L build. After applying it, some Kconfig
>> dependencies that used to work with V4L Kconfig broke.
> 
> You mean, the dependencies trigger a warning now, right? Also, you are
> replying to my pull request for 2.6.36-rc8, but that pull request also
> included "kconfig: Temporarily disable dependency warnings", so 2.6.36
> final is NOT affected by this, just to clarify. 2.6.37-rc1 reverted this
> workaround and I hope we come to some solution now. BTW,
> http://www.kerneltrap.com/mailarchive/linux-kernel/2010/10/7/4629122/thread
> is how a very similar issue was fixed in the i2c Kconfig (commit 0a57274
> in 2.6.37-rc1 now).

Well, I'm seeing those warnings on 2.6.37-rc1, after the patch that re-enable
the warnings. Just reverting the delay symbol direct dependency init changeset 
makes the warnings stop.

I didn't really try to run lots of tests to be sure that they actually break
anything, or if they are just unwanted warnings, but, in any case, we need a
fix before the end of .37 cycle.

A solution like what was done on i2c doesn't seem nice, as it will require lots
of artificial changes at kconfig stuff. Maybe it would be better to just add
some logic at Kconfig file to specify those kind of menus without producing
warnings, of course assuming that actually won't break symbols dependency solve.

Thanks,
Mauro
anything.

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-03 22:29 ` REGRESSION: " Mauro Carvalho Chehab
  2010-11-03 22:47   ` Michal Marek
@ 2010-11-04  2:31   ` Arnaud Lacombe
  2010-11-04  3:19     ` Mauro Carvalho Chehab
  2010-11-04 18:34   ` REGRESSION: Re: [GIT] kconfig rc fixes Arnaud Lacombe
  2 siblings, 1 reply; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-04  2:31 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Michal Marek, Linus Torvalds, kyle, linux-kbuild, linux-kernel,
	Linux Media Mailing List

Hi,

On Wed, Nov 3, 2010 at 6:29 PM, Mauro Carvalho Chehab
<mchehab@redhat.com> wrote:
> Em 09-10-2010 18:40, Michal Marek escreveu:
>>
>> Arnaud Lacombe (1):
>>       kconfig: delay symbol direct dependency initialization
>
> This patch generated a regression with V4L build. After applying it,
> some Kconfig dependencies that used to work with V4L Kconfig broke.
>
of course, but they were all-likely buggy. If a compiler version N
outputs a new legitimate warning because of a bug in the code, you do
not switch back to the previous version because the warning wasn't
there, you fix the code.

That said, please point me to a false positive, eventually with a
minimal testcase, and I'll be happy to fix the issue.

 - Arnaud

> Basically, we have things there like:
>
> config VIDEO_HELPER_CHIPS_AUTO
>        bool "Autoselect pertinent encoders/decoders and other helper chips"
>
> config VIDEO_IVTV
>        select VIDEO_WM8739 if VIDEO_HELPER_CHIPS_AUTO
>
> menu "Encoders/decoders and other helper chips"
>        depends on !VIDEO_HELPER_CHIPS_AUTO
>
> config VIDEO_WM8739
>        tristate "Wolfson Microelectronics WM8739 stereo audio ADC"
>
this is broken.

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-04  2:31   ` Arnaud Lacombe
@ 2010-11-04  3:19     ` Mauro Carvalho Chehab
  2010-11-04  4:02       ` Arnaud Lacombe
  2010-11-04  4:15       ` Arnaud Lacombe
  0 siblings, 2 replies; 39+ messages in thread
From: Mauro Carvalho Chehab @ 2010-11-04  3:19 UTC (permalink / raw)
  To: Arnaud Lacombe
  Cc: Michal Marek, Linus Torvalds, kyle, linux-kbuild, linux-kernel,
	Linux Media Mailing List

Em 03-11-2010 22:31, Arnaud Lacombe escreveu:
> Hi,
> 
> On Wed, Nov 3, 2010 at 6:29 PM, Mauro Carvalho Chehab
> <mchehab@redhat.com> wrote:
>> Em 09-10-2010 18:40, Michal Marek escreveu:
>>>
>>> Arnaud Lacombe (1):
>>>       kconfig: delay symbol direct dependency initialization
>>
>> This patch generated a regression with V4L build. After applying it,
>> some Kconfig dependencies that used to work with V4L Kconfig broke.
>>
> of course, but they were all-likely buggy. If a compiler version N
> outputs a new legitimate warning because of a bug in the code, you do
> not switch back to the previous version because the warning wasn't
> there, you fix the code.
> 
> That said, please point me to a false positive, eventually with a
> minimal testcase, and I'll be happy to fix the issue.

Arnaud,

In the case of V4L and DVB drivers, what happens is that the same 
USB (or PCI) bridge driver can be attached to lots of
different chipsets that do analog/digital/audio decoding/encoding.

A normal user won't need to open his USB TV stick just to see TV on it.
It just needs to select a bridge driver, and all possible options for encoders
and decoders are auto-selected.

If you're an advanced user (or are developing an embedded hardware), you
know exactly what are the components inside the board/stick. So, the
Kconfig allows to disable the automatic auto-selection, doing manual
selection.

The logic basically implements it, using Kconfig way, on a logic like:

	auto = ask_user_if_ancillary_drivers_should_be_auto_selected();
	driver_foo = ask_user_if_driver_foo_should_be_selected();
	if (driver_foo && auto) {
		select(bar1);
		select(bar2);
		select(bar3);
		select(bar4);
	}
...
	if (!auto) {
		open_menu()
		ask_user_if_bar1_should_be_selected();
		ask_user_if_bar2_should_be_selected();
		ask_user_if_bar3_should_be_selected();
		ask_user_if_bar4_should_be_selected();
...
		close_menu()
	}

Or, on Kconfig language:

>> config VIDEO_HELPER_CHIPS_AUTO
>>        bool "Autoselect pertinent encoders/decoders and other helper chips"
>>
>> config VIDEO_IVTV
>>        select VIDEO_WM8739 if VIDEO_HELPER_CHIPS_AUTO
>>
>> menu "Encoders/decoders and other helper chips"
>>        depends on !VIDEO_HELPER_CHIPS_AUTO
>>
>> config VIDEO_WM8739
>>        tristate "Wolfson Microelectronics WM8739 stereo audio ADC"
>>

I don't see anything wrong on such logic. It is valid in C, and it is also valid
(and works properly) at Kconfig language.

So, the warning is a false positive.

If you want to see the real logic, just look at drivers/media/.../Kconfig stuff.
You'll see it at almost all Kconfig files. There are hundreds of dependencies
using this kind of logic. This is used by all tuners (21 Kconfig items, at
drivers/media/common/Kconfig), by several I2C devices (40+ Kconfig items at
drivers/media/video/Kconfig), and by almost all bridge drivers.

Mauro.


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-04  3:19     ` Mauro Carvalho Chehab
@ 2010-11-04  4:02       ` Arnaud Lacombe
  2010-11-04  4:15       ` Arnaud Lacombe
  1 sibling, 0 replies; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-04  4:02 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Michal Marek, Linus Torvalds, kyle, linux-kbuild, linux-kernel,
	Linux Media Mailing List

Hi,

On Wed, Nov 3, 2010 at 11:19 PM, Mauro Carvalho Chehab
<mchehab@redhat.com> wrote:
>>> config VIDEO_HELPER_CHIPS_AUTO
>>>        bool "Autoselect pertinent encoders/decoders and other helper chips"
>>>
>>> config VIDEO_IVTV
>>>        select VIDEO_WM8739 if VIDEO_HELPER_CHIPS_AUTO
>>>
>>> menu "Encoders/decoders and other helper chips"
>>>        depends on !VIDEO_HELPER_CHIPS_AUTO
>>>
>>> config VIDEO_WM8739
>>>        tristate "Wolfson Microelectronics WM8739 stereo audio ADC"
>>>
>
> I don't see anything wrong on such logic. It is valid in C, and it is also valid
> (and works properly) at Kconfig language.
no, it is not a valid Kconfig language, or at least, you create an
ambiguity in the dependency tree.

> So, the warning is a false positive.
>
no it is not. By saying:

menu "Encoders/decoders and other helper chips"
       depends on !VIDEO_HELPER_CHIPS_AUTO

you create on all the menu's children an implicit dependency,
!VIDEO_HELPER_CHIPS_AUTO. This is something that has ever been there;
from `Documentation/kbuild/kconfig-language.txt':

"
[...]
menu "Network device support"
        depends on NET

config NETDEVICES
        ...
endmenu

All entries within the "menu" ... "endmenu" block become a submenu of
"Network device support". All subentries inherit the dependencies from
the menu entry, e.g. this means the dependency "NET" is added to the
dependency list of the config option NETDEVICES.
"

Thus the warning as you also have:

config VIDEO_IVTV
       select VIDEO_WM8739 if VIDEO_HELPER_CHIPS_AUTO

ie. VIDEO_IVTV selects VIDEO_WM8739 if VIDEO_HELPER_CHIPS_AUTO, but
VIDEO_WM8739 has inherited the !VIDEO_HELPER_CHIPS_AUTO dependency.

Now, if you want my true feeling, this warning should be fatal.

 - Arnaud

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-04  3:19     ` Mauro Carvalho Chehab
  2010-11-04  4:02       ` Arnaud Lacombe
@ 2010-11-04  4:15       ` Arnaud Lacombe
  2010-11-04 11:10         ` Mauro Carvalho Chehab
  1 sibling, 1 reply; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-04  4:15 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Michal Marek, Linus Torvalds, kyle, linux-kbuild, linux-kernel,
	Linux Media Mailing List

Hi,

On Wed, Nov 3, 2010 at 11:19 PM, Mauro Carvalho Chehab
<mchehab@redhat.com> wrote:
> Em 03-11-2010 22:31, Arnaud Lacombe escreveu:
>> Hi,
>>
>> On Wed, Nov 3, 2010 at 6:29 PM, Mauro Carvalho Chehab
>> <mchehab@redhat.com> wrote:
>>> Em 09-10-2010 18:40, Michal Marek escreveu:
>>>>
>>>> Arnaud Lacombe (1):
>>>>       kconfig: delay symbol direct dependency initialization
>>>
>>> This patch generated a regression with V4L build. After applying it,
>>> some Kconfig dependencies that used to work with V4L Kconfig broke.
>>>
>> of course, but they were all-likely buggy. If a compiler version N
>> outputs a new legitimate warning because of a bug in the code, you do
>> not switch back to the previous version because the warning wasn't
>> there, you fix the code.
>>
>> That said, please point me to a false positive, eventually with a
>> minimal testcase, and I'll be happy to fix the issue.
>
> Arnaud,
>
> In the case of V4L and DVB drivers, what happens is that the same
> USB (or PCI) bridge driver can be attached to lots of
> different chipsets that do analog/digital/audio decoding/encoding.
>
> A normal user won't need to open his USB TV stick just to see TV on it.
> It just needs to select a bridge driver, and all possible options for encoders
> and decoders are auto-selected.
>
> If you're an advanced user (or are developing an embedded hardware), you
> know exactly what are the components inside the board/stick. So, the
> Kconfig allows to disable the automatic auto-selection, doing manual
> selection.
>
> The logic basically implements it, using Kconfig way, on a logic like:
>
>        auto = ask_user_if_ancillary_drivers_should_be_auto_selected();
>        driver_foo = ask_user_if_driver_foo_should_be_selected();
>        if (driver_foo && auto) {
>                select(bar1);
>                select(bar2);
>                select(bar3);
>                select(bar4);
>        }
> ...
>        if (!auto) {
>                open_menu()
>                ask_user_if_bar1_should_be_selected();
>                ask_user_if_bar2_should_be_selected();
>                ask_user_if_bar3_should_be_selected();
>                ask_user_if_bar4_should_be_selected();
> ...
>                close_menu()
>        }
>
no, you are hijacking Kconfig for something "illegal". Note that this
last word is not mine, it is the word used in the language
description:

  Note:
        select should be used with care. select will force
        a symbol to a value without visiting the dependencies.
        By abusing select you are able to select a symbol FOO even
        if FOO depends on BAR that is not set.
        In general use select only for non-visible symbols
        (no prompts anywhere) and for symbols with no dependencies.
        That will limit the usefulness but on the other hand avoid
        the illegal configurations all over.
        kconfig should one day warn about such things.

I guess the last line will need to be dropped, as this day has come.

 - Arnaud

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-04  4:15       ` Arnaud Lacombe
@ 2010-11-04 11:10         ` Mauro Carvalho Chehab
  2010-11-04 17:19           ` Randy Dunlap
  0 siblings, 1 reply; 39+ messages in thread
From: Mauro Carvalho Chehab @ 2010-11-04 11:10 UTC (permalink / raw)
  To: Arnaud Lacombe
  Cc: Michal Marek, Linus Torvalds, kyle, linux-kbuild, linux-kernel,
	Linux Media Mailing List

Em 04-11-2010 00:15, Arnaud Lacombe escreveu:
> Hi,
> 
> On Wed, Nov 3, 2010 at 11:19 PM, Mauro Carvalho Chehab
> <mchehab@redhat.com> wrote:
>> Em 03-11-2010 22:31, Arnaud Lacombe escreveu:
>>> Hi,
>>>
>>> On Wed, Nov 3, 2010 at 6:29 PM, Mauro Carvalho Chehab
>>> <mchehab@redhat.com> wrote:
>>>> Em 09-10-2010 18:40, Michal Marek escreveu:
>>>>>
>>>>> Arnaud Lacombe (1):
>>>>>       kconfig: delay symbol direct dependency initialization
>>>>
>>>> This patch generated a regression with V4L build. After applying it,
>>>> some Kconfig dependencies that used to work with V4L Kconfig broke.
>>>>
>>> of course, but they were all-likely buggy. If a compiler version N
>>> outputs a new legitimate warning because of a bug in the code, you do
>>> not switch back to the previous version because the warning wasn't
>>> there, you fix the code.
>>>
>>> That said, please point me to a false positive, eventually with a
>>> minimal testcase, and I'll be happy to fix the issue.
>>
>> Arnaud,
>>
>> In the case of V4L and DVB drivers, what happens is that the same
>> USB (or PCI) bridge driver can be attached to lots of
>> different chipsets that do analog/digital/audio decoding/encoding.
>>
>> A normal user won't need to open his USB TV stick just to see TV on it.
>> It just needs to select a bridge driver, and all possible options for encoders
>> and decoders are auto-selected.
>>
>> If you're an advanced user (or are developing an embedded hardware), you
>> know exactly what are the components inside the board/stick. So, the
>> Kconfig allows to disable the automatic auto-selection, doing manual
>> selection.
>>
>> The logic basically implements it, using Kconfig way, on a logic like:
>>
>>        auto = ask_user_if_ancillary_drivers_should_be_auto_selected();
>>        driver_foo = ask_user_if_driver_foo_should_be_selected();
>>        if (driver_foo && auto) {
>>                select(bar1);
>>                select(bar2);
>>                select(bar3);
>>                select(bar4);
>>        }
>> ...
>>        if (!auto) {
>>                open_menu()
>>                ask_user_if_bar1_should_be_selected();
>>                ask_user_if_bar2_should_be_selected();
>>                ask_user_if_bar3_should_be_selected();
>>                ask_user_if_bar4_should_be_selected();
>> ...
>>                close_menu()
>>        }
>>
> no, you are hijacking Kconfig for something "illegal". 

It is not a new code that added this logic. The code is there
at least since 2006. It were added on this commit:

commit 1450e6bedc58c731617d99b4670070ed3ccc91b4
Author: Mauro Carvalho Chehab <mchehab@infradead.org>
Date:   Wed Aug 23 10:08:41 2006 -0300

> Note that this
> last word is not mine, it is the word used in the language
> description:
> 
>   Note:
>         select should be used with care. select will force
>         a symbol to a value without visiting the dependencies.
>         By abusing select you are able to select a symbol FOO even
>         if FOO depends on BAR that is not set.
>         In general use select only for non-visible symbols
>         (no prompts anywhere) and for symbols with no dependencies.
>         That will limit the usefulness but on the other hand avoid
>         the illegal configurations all over.
>         kconfig should one day warn about such things.
> 
> I guess the last line will need to be dropped, as this day has come.

All dependencies required by the selected symbols are satisfied. For example,
the simplest case is likely cafe_ccic, as, currently, there's just one possible
driver that can be attached dynamically at runtime to cafe_ccic. We have:

menu "Encoders/decoders and other helper chips"
	depends on !VIDEO_HELPER_CHIPS_AUTO

...
config VIDEO_OV7670
        tristate "OmniVision OV7670 sensor support"
        depends on I2C && VIDEO_V4L2
...
endmenu

config VIDEO_CAFE_CCIC
        tristate "Marvell 88ALP01 (Cafe) CMOS Camera Controller support"
        depends on PCI && I2C && VIDEO_V4L2
        select VIDEO_OV7670

The dependencies needed by ov7670 (I2C and VIDEO_V4L2) are also dependencies of 
cafe_ccic. So, it shouldn't have any problem for it to work (and it doesn't have,
really. This is working as-is during the last 4 years).

It should be noticed that, even if we replace the menu dependencies by an
If, won't solve. I tried the enclosed patch, to see if it would produce something
that the new Kconfig behavior accepts. The same errors apply.

It is fine for me if you want/need to change the way Kconfig works, provided
that it won't break (or produce those annoying warnings) the existing logic, and
won't open the manual select menu, if the user selects the auto mode.
Just send us a patch changing it to some other way of doing it.

Thanks,
Mauro

---
Test patch, replacing depends on by if's. It doesn't really work, as Kconfig
seems to be internally converting if's into depends. So, no warning is removed.

--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -111,8 +111,8 @@ config VIDEO_IR_I2C
 # Encoder / Decoder module configuration
 #
 
+if !VIDEO_HELPER_CHIPS_AUTO
 menu "Encoders/decoders and other helper chips"
-	depends on !VIDEO_HELPER_CHIPS_AUTO
 
 comment "Audio decoders"
 
@@ -516,6 +516,7 @@ config VIDEO_UPD64083
 	  module will be called upd64083.
 
 endmenu # encoder / decoder chips
+endif
 
 config VIDEO_SH_VOU
 	tristate "SuperH VOU video output driver"


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-04 11:10         ` Mauro Carvalho Chehab
@ 2010-11-04 17:19           ` Randy Dunlap
  2010-11-04 18:11             ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 39+ messages in thread
From: Randy Dunlap @ 2010-11-04 17:19 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Arnaud Lacombe, Michal Marek, Linus Torvalds, kyle, linux-kbuild,
	linux-kernel, Linux Media Mailing List

On Thu, 04 Nov 2010 07:10:11 -0400 Mauro Carvalho Chehab wrote:

> All dependencies required by the selected symbols are satisfied. For example,
> the simplest case is likely cafe_ccic, as, currently, there's just one possible
> driver that can be attached dynamically at runtime to cafe_ccic. We have:
> 
> menu "Encoders/decoders and other helper chips"
> 	depends on !VIDEO_HELPER_CHIPS_AUTO
> 
> ...
> config VIDEO_OV7670
>         tristate "OmniVision OV7670 sensor support"
>         depends on I2C && VIDEO_V4L2
> ...
> endmenu
> 
> config VIDEO_CAFE_CCIC
>         tristate "Marvell 88ALP01 (Cafe) CMOS Camera Controller support"
>         depends on PCI && I2C && VIDEO_V4L2
>         select VIDEO_OV7670
> 
> The dependencies needed by ov7670 (I2C and VIDEO_V4L2) are also dependencies of 
> cafe_ccic. So, it shouldn't have any problem for it to work (and it doesn't have,
> really. This is working as-is during the last 4 years).

This warning line:

warning: (VIDEO_CAFE_CCIC && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && PCI && I2C && VIDEO_V4L2 || VIDEO_VIA_CAMERA && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && FB_VIA) selects VIDEO_OV7670 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && I2C && VIDEO_V4L2)

is not caused by CAFE_CCIC -- it's caused by VIDEO_VIA_CAMERA, because
VIDEO_HELPER_CHIPS_AUTO=y, so !VIDEO_HELPER_CHIPS_AUTO is false, so
VIDEO_OV7670 should not be available since it depends on
!VIDEO_HELPER_CHIPS_AUTO.

Below is a simple patch that reduces the kconfig warning count in 2.6.37-rc1
from 240 down to only 88.  :)


> It should be noticed that, even if we replace the menu dependencies by an
> If, won't solve. I tried the enclosed patch, to see if it would produce something
> that the new Kconfig behavior accepts. The same errors apply.

That does not change any kconfig symbol logic/truth values.

> It is fine for me if you want/need to change the way Kconfig works, provided
> that it won't break (or produce those annoying warnings) the existing logic, and
> won't open the manual select menu, if the user selects the auto mode.
> Just send us a patch changing it to some other way of doing it.
> 
> Thanks,
> Mauro
> ---

From: Randy Dunlap <randy.dunlap@oracle.com>

Clean up some video driver dependencies.
Reduces the kconfig warning for unmet dependencies from 240
down to only 88 in 2.6.37-rc1.

This makes the drivers in the VIDEO_HELPER_CHIPS_AUTO menu not
be dependent on that symbol.  Just splash a comment there
instead.  config tools will display the comment when
VIDEO_HELPER_CHIPS_AUTO is false.

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
---
 drivers/media/video/Kconfig |    4 ++++
 1 file changed, 4 insertions(+)

--- linux-2.6.37-rc1-git3.orig/drivers/media/video/Kconfig
+++ linux-2.6.37-rc1-git3/drivers/media/video/Kconfig
@@ -112,6 +112,10 @@ config VIDEO_IR_I2C
 #
 
 menu "Encoders/decoders and other helper chips"
+
+comment "Only change these kconfig Helper/Auto settings if you are sure"
+	depends on !VIDEO_HELPER_CHIPS_AUTO
+comment "that you know what you are doing"
 	depends on !VIDEO_HELPER_CHIPS_AUTO
 
 comment "Audio decoders"

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-04 17:19           ` Randy Dunlap
@ 2010-11-04 18:11             ` Mauro Carvalho Chehab
  2010-11-04 18:32               ` Arnaud Lacombe
  0 siblings, 1 reply; 39+ messages in thread
From: Mauro Carvalho Chehab @ 2010-11-04 18:11 UTC (permalink / raw)
  To: Randy Dunlap
  Cc: Arnaud Lacombe, Michal Marek, Linus Torvalds, kyle, linux-kbuild,
	linux-kernel, Linux Media Mailing List

Em 04-11-2010 13:19, Randy Dunlap escreveu:
> On Thu, 04 Nov 2010 07:10:11 -0400 Mauro Carvalho Chehab wrote:
> 
>> All dependencies required by the selected symbols are satisfied. For example,
>> the simplest case is likely cafe_ccic, as, currently, there's just one possible
>> driver that can be attached dynamically at runtime to cafe_ccic. We have:
>>
>> menu "Encoders/decoders and other helper chips"
>> 	depends on !VIDEO_HELPER_CHIPS_AUTO
>>
>> ...
>> config VIDEO_OV7670
>>         tristate "OmniVision OV7670 sensor support"
>>         depends on I2C && VIDEO_V4L2
>> ...
>> endmenu
>>
>> config VIDEO_CAFE_CCIC
>>         tristate "Marvell 88ALP01 (Cafe) CMOS Camera Controller support"
>>         depends on PCI && I2C && VIDEO_V4L2
>>         select VIDEO_OV7670
>>
>> The dependencies needed by ov7670 (I2C and VIDEO_V4L2) are also dependencies of 
>> cafe_ccic. So, it shouldn't have any problem for it to work (and it doesn't have,
>> really. This is working as-is during the last 4 years).
> 
> This warning line:
> 
> warning: (VIDEO_CAFE_CCIC && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && PCI && I2C && VIDEO_V4L2 || VIDEO_VIA_CAMERA && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && FB_VIA) selects VIDEO_OV7670 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && !VIDEO_HELPER_CHIPS_AUTO && I2C && VIDEO_V4L2)
> 
> is not caused by CAFE_CCIC -- it's caused by VIDEO_VIA_CAMERA, because
> VIDEO_HELPER_CHIPS_AUTO=y, so !VIDEO_HELPER_CHIPS_AUTO is false, so
> VIDEO_OV7670 should not be available since it depends on
> !VIDEO_HELPER_CHIPS_AUTO.
> 
> Below is a simple patch that reduces the kconfig warning count in 2.6.37-rc1
> from 240 down to only 88.  :)

Yes, but this makes things worse: it will allow compiling drivers that Kernel
will never use, as they won't work without an I2C adapter, and the I2C adapter
is not compiled.

Worse than that: if you go into all V4L bridge drivers, that implements the I2C
adapters and disable them, the I2C ancillary adapters will still be compiled
(as they won't return to 'n'), but they will never ever be used...

So, no, this is not a solution.

What we need is to prompt the menu only if the user wants to do some manual configuration.
Otherwise, just use the selects done by the drivers that implement the I2C bus adapters,
and have some code to use those selected I2C devices.

Cheers,
Mauro.

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-04 18:11             ` Mauro Carvalho Chehab
@ 2010-11-04 18:32               ` Arnaud Lacombe
  2010-11-04 18:51                 ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-04 18:32 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Randy Dunlap, Michal Marek, Linus Torvalds, kyle, linux-kbuild,
	linux-kernel, Linux Media Mailing List

Hi,

On Thu, Nov 4, 2010 at 2:11 PM, Mauro Carvalho Chehab
<mchehab@redhat.com> wrote:
> [...]
> Yes, but this makes things worse: it will allow compiling drivers that Kernel
> will never use, as they won't work without an I2C adapter, and the I2C adapter
> is not compiled.
>
> Worse than that: if you go into all V4L bridge drivers, that implements the I2C
> adapters and disable them, the I2C ancillary adapters will still be compiled
> (as they won't return to 'n'), but they will never ever be used...
>
> So, no, this is not a solution.
>
> What we need is to prompt the menu only if the user wants to do some manual configuration.
> Otherwise, just use the selects done by the drivers that implement the I2C bus adapters,
> and have some code to use those selected I2C devices.
>
These is an easy solution: doing as
`Documentation/kbuild/kconfig-language.txt' say it should be done:

config MODULES
        bool "modules ?"
        default y

config AUTO
        bool "AUTO"

config IVTV
        tristate "IVTV"
        select WM42 if AUTO

menu "TV"
        depends on !AUTO

config WM42_USER
        tristate "WM42"
        select WM42

endmenu

config WM42
        tristate
        default n

 - Arnaud

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-03 22:29 ` REGRESSION: " Mauro Carvalho Chehab
  2010-11-03 22:47   ` Michal Marek
  2010-11-04  2:31   ` Arnaud Lacombe
@ 2010-11-04 18:34   ` Arnaud Lacombe
  2010-11-04 18:43     ` Mauro Carvalho Chehab
  2 siblings, 1 reply; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-04 18:34 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Michal Marek, Linus Torvalds, kyle, linux-kbuild, linux-kernel,
	Linux Media Mailing List

Hi,

On Wed, Nov 3, 2010 at 6:29 PM, Mauro Carvalho Chehab
<mchehab@redhat.com> wrote:
> Basically, we have things there like:
>
> config VIDEO_HELPER_CHIPS_AUTO
>        bool "Autoselect pertinent encoders/decoders and other helper chips"
>
> config VIDEO_IVTV
>        select VIDEO_WM8739 if VIDEO_HELPER_CHIPS_AUTO
>
> menu "Encoders/decoders and other helper chips"
>        depends on !VIDEO_HELPER_CHIPS_AUTO
>
> config VIDEO_WM8739
>        tristate "Wolfson Microelectronics WM8739 stereo audio ADC"
>
Where do you get that code from ? this particular one is not in 2.6.37-rc1:

% git describe
v2.6.37-rc1-27-gff8b16d

% head -20 drivers/media/video/ivtv/Kconfig
config VIDEO_IVTV
        tristate "Conexant cx23416/cx23415 MPEG encoder/decoder support"
        depends on VIDEO_V4L2 && PCI && I2C
        depends on INPUT   # due to VIDEO_IR
        select I2C_ALGOBIT
        depends on VIDEO_IR
        select VIDEO_TUNER
        select VIDEO_TVEEPROM
        select VIDEO_CX2341X
        select VIDEO_CX25840
        select VIDEO_MSP3400
        select VIDEO_SAA711X
        select VIDEO_SAA717X
        select VIDEO_SAA7127
        select VIDEO_CS53L32A
        select VIDEO_M52790
        select VIDEO_WM8775
        select VIDEO_WM8739
        select VIDEO_VP27SMPX
        select VIDEO_UPD64031A

 - Arnaud

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-04 18:34   ` REGRESSION: Re: [GIT] kconfig rc fixes Arnaud Lacombe
@ 2010-11-04 18:43     ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 39+ messages in thread
From: Mauro Carvalho Chehab @ 2010-11-04 18:43 UTC (permalink / raw)
  To: Arnaud Lacombe
  Cc: Michal Marek, Linus Torvalds, kyle, linux-kbuild, linux-kernel,
	Linux Media Mailing List

Em 04-11-2010 14:34, Arnaud Lacombe escreveu:
> Hi,
> 
> On Wed, Nov 3, 2010 at 6:29 PM, Mauro Carvalho Chehab
> <mchehab@redhat.com> wrote:
>> Basically, we have things there like:
>>
>> config VIDEO_HELPER_CHIPS_AUTO
>>        bool "Autoselect pertinent encoders/decoders and other helper chips"
>>
>> config VIDEO_IVTV
>>        select VIDEO_WM8739 if VIDEO_HELPER_CHIPS_AUTO
>>
>> menu "Encoders/decoders and other helper chips"
>>        depends on !VIDEO_HELPER_CHIPS_AUTO
>>
>> config VIDEO_WM8739
>>        tristate "Wolfson Microelectronics WM8739 stereo audio ADC"
>>
> Where do you get that code from ? this particular one is not in 2.6.37-rc1:

The I2C drivers can/are used by other drivers, so they are not at ivtv/Kconfig.
They are at drivers/media/video/Kconfig.

I'm using here just v2.6.37-rc1 (c8ddb2713c624f432fa5fe3c7ecffcdda46ea0d4):

$ grep VIDEO_WM8739 drivers/media/video/Kconfig -A2
config VIDEO_WM8739
	tristate "Wolfson Microelectronics WM8739 stereo audio ADC"
	depends on VIDEO_V4L2 && I2C

$ grep VIDEO_HELPER_CHIPS_AUTO drivers/media/video/Kconfig -A2|head -3
config VIDEO_HELPER_CHIPS_AUTO
	bool "Autoselect pertinent encoders/decoders and other helper chips"
	default y if !EMBEDDED


> 
> % git describe
> v2.6.37-rc1-27-gff8b16d
> 
> % head -20 drivers/media/video/ivtv/Kconfig
> config VIDEO_IVTV
>         tristate "Conexant cx23416/cx23415 MPEG encoder/decoder support"
>         depends on VIDEO_V4L2 && PCI && I2C
>         depends on INPUT   # due to VIDEO_IR
>         select I2C_ALGOBIT
>         depends on VIDEO_IR
>         select VIDEO_TUNER
>         select VIDEO_TVEEPROM
>         select VIDEO_CX2341X
>         select VIDEO_CX25840
>         select VIDEO_MSP3400
>         select VIDEO_SAA711X
>         select VIDEO_SAA717X
>         select VIDEO_SAA7127
>         select VIDEO_CS53L32A
>         select VIDEO_M52790
>         select VIDEO_WM8775
>         select VIDEO_WM8739
>         select VIDEO_VP27SMPX
>         select VIDEO_UPD64031A
> 
>  - Arnaud


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-04 18:32               ` Arnaud Lacombe
@ 2010-11-04 18:51                 ` Mauro Carvalho Chehab
  2010-11-05 12:02                   ` Jean Delvare
                                     ` (6 more replies)
  0 siblings, 7 replies; 39+ messages in thread
From: Mauro Carvalho Chehab @ 2010-11-04 18:51 UTC (permalink / raw)
  To: Arnaud Lacombe
  Cc: Randy Dunlap, Michal Marek, Linus Torvalds, kyle, linux-kbuild,
	linux-kernel, Linux Media Mailing List

Em 04-11-2010 14:32, Arnaud Lacombe escreveu:
> Hi,
> 
> On Thu, Nov 4, 2010 at 2:11 PM, Mauro Carvalho Chehab
> <mchehab@redhat.com> wrote:
>> [...]
>> Yes, but this makes things worse: it will allow compiling drivers that Kernel
>> will never use, as they won't work without an I2C adapter, and the I2C adapter
>> is not compiled.
>>
>> Worse than that: if you go into all V4L bridge drivers, that implements the I2C
>> adapters and disable them, the I2C ancillary adapters will still be compiled
>> (as they won't return to 'n'), but they will never ever be used...
>>
>> So, no, this is not a solution.
>>
>> What we need is to prompt the menu only if the user wants to do some manual configuration.
>> Otherwise, just use the selects done by the drivers that implement the I2C bus adapters,
>> and have some code to use those selected I2C devices.
>>
> These is an easy solution: doing as
> `Documentation/kbuild/kconfig-language.txt' say it should be done:
> 
> config MODULES
>         bool "modules ?"
>         default y
> 
> config AUTO
>         bool "AUTO"
> 
> config IVTV
>         tristate "IVTV"
>         select WM42 if AUTO
> 
> menu "TV"
>         depends on !AUTO
> 
> config WM42_USER
>         tristate "WM42"
>         select WM42
> 
> endmenu
> 
> config WM42
>         tristate
>         default n
> 
>  - Arnaud

This may work, but it means that every single I2C/frontend/tuner will require two
entries for each driver. This means to create and manage around 100+ new symbols.
The drivers/media Kconfig files are complex enough as-is, without adding those 100+
new artificial symbols. We should work to make things simple and improve users experience,
and not to create artificial complexity that will make Kconfig almost unreadable.

I still think that the easiest way to solve this is to add some logic that will
hide the menu if a condition doesn't happen. Something like:
	menu FOO
		prompt if BAR

or
	menu FOO
		show if BAR

Mauro.

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-04 18:51                 ` Mauro Carvalho Chehab
@ 2010-11-05 12:02                   ` Jean Delvare
  2010-11-06 21:30                   ` [PATCH 0/5] " Arnaud Lacombe
                                     ` (5 subsequent siblings)
  6 siblings, 0 replies; 39+ messages in thread
From: Jean Delvare @ 2010-11-05 12:02 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Michal Marek
  Cc: Arnaud Lacombe, Randy Dunlap, Linus Torvalds, kyle, linux-kbuild,
	linux-kernel, Linux Media Mailing List

On Thu, 04 Nov 2010 14:51:24 -0400, Mauro Carvalho Chehab wrote:
> Em 04-11-2010 14:32, Arnaud Lacombe escreveu:
> > Hi,
> > 
> > On Thu, Nov 4, 2010 at 2:11 PM, Mauro Carvalho Chehab
> > <mchehab@redhat.com> wrote:
> >> [...]
> >> Yes, but this makes things worse: it will allow compiling drivers that Kernel
> >> will never use, as they won't work without an I2C adapter, and the I2C adapter
> >> is not compiled.
> >>
> >> Worse than that: if you go into all V4L bridge drivers, that implements the I2C
> >> adapters and disable them, the I2C ancillary adapters will still be compiled
> >> (as they won't return to 'n'), but they will never ever be used...
> >>
> >> So, no, this is not a solution.
> >>
> >> What we need is to prompt the menu only if the user wants to do some manual configuration.
> >> Otherwise, just use the selects done by the drivers that implement the I2C bus adapters,
> >> and have some code to use those selected I2C devices.
> >>
> > These is an easy solution: doing as
> > `Documentation/kbuild/kconfig-language.txt' say it should be done:
> > 
> > config MODULES
> >         bool "modules ?"
> >         default y
> > 
> > config AUTO
> >         bool "AUTO"
> > 
> > config IVTV
> >         tristate "IVTV"
> >         select WM42 if AUTO
> > 
> > menu "TV"
> >         depends on !AUTO
> > 
> > config WM42_USER
> >         tristate "WM42"
> >         select WM42
> > 
> > endmenu
> > 
> > config WM42
> >         tristate
> >         default n
> > 
> >  - Arnaud
> 
> This may work, but it means that every single I2C/frontend/tuner will require two
> entries for each driver. This means to create and manage around 100+ new symbols.
> The drivers/media Kconfig files are complex enough as-is, without adding those 100+
> new artificial symbols. We should work to make things simple and improve users experience,
> and not to create artificial complexity that will make Kconfig almost unreadable.
> 
> I still think that the easiest way to solve this is to add some logic that will
> hide the menu if a condition doesn't happen. Something like:
> 	menu FOO
> 		prompt if BAR
> 
> or
> 	menu FOO
> 		show if BAR

I totally second Mauro's concerns and proposal. My own proposal was
along the lines of:

	menu FOO
		hide if BAR

but obviously the idea is the same, so it doesn't matter which of the 3
proposals gets implemented. The basic idea is to have a weak form of
"depends" for menus, which hides the menu from the user but preserves
all the symbols defines under that menu.

Michal, is the above something you would be able to implement in
Kconfig?

Thanks,
-- 
Jean Delvare

^ permalink raw reply	[flat|nested] 39+ messages in thread

* [PATCH 0/5] Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-04 18:51                 ` Mauro Carvalho Chehab
  2010-11-05 12:02                   ` Jean Delvare
@ 2010-11-06 21:30                   ` Arnaud Lacombe
  2010-11-06 22:28                     ` Mauro Carvalho Chehab
  2010-11-09 17:32                     ` Mauro Carvalho Chehab
  2010-11-06 21:30                   ` [PATCH 1/5] kconfig: add an option to determine a menu's visibility Arnaud Lacombe
                                     ` (4 subsequent siblings)
  6 siblings, 2 replies; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-06 21:30 UTC (permalink / raw)
  To: linux-kbuild, linux-media
  Cc: Mauro Carvalho Chehab, Michal Marek, Arnaud Lacombe

Hi,

This should do the job.

A.

Arnaud Lacombe (5):
  kconfig: add an option to determine a menu's visibility
  kconfig: regen parser
  Revert "i2c: Fix Kconfig dependencies"
  media/video: convert Kconfig to use the menu's `visible' keyword
  i2c/algos: convert Kconfig to use the menu's `visible' keyword

 drivers/i2c/Kconfig                  |    3 +-
 drivers/i2c/algos/Kconfig            |   14 +-
 drivers/media/video/Kconfig          |    2 +-
 scripts/kconfig/expr.h               |    1 +
 scripts/kconfig/lkc.h                |    1 +
 scripts/kconfig/menu.c               |   11 +
 scripts/kconfig/zconf.gperf          |    1 +
 scripts/kconfig/zconf.hash.c_shipped |  122 ++++----
 scripts/kconfig/zconf.tab.c_shipped  |  570 +++++++++++++++++----------------
 scripts/kconfig/zconf.y              |   21 +-
 10 files changed, 393 insertions(+), 353 deletions(-)

-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply	[flat|nested] 39+ messages in thread

* [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-04 18:51                 ` Mauro Carvalho Chehab
  2010-11-05 12:02                   ` Jean Delvare
  2010-11-06 21:30                   ` [PATCH 0/5] " Arnaud Lacombe
@ 2010-11-06 21:30                   ` Arnaud Lacombe
  2010-11-15 16:57                     ` Arnaud Lacombe
  2010-11-25 17:06                     ` Arnaud Lacombe
  2010-11-06 21:30                   ` [PATCH 2/5] kconfig: regen parser Arnaud Lacombe
                                     ` (3 subsequent siblings)
  6 siblings, 2 replies; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-06 21:30 UTC (permalink / raw)
  To: linux-kbuild, linux-media
  Cc: Mauro Carvalho Chehab, Michal Marek, Arnaud Lacombe

This option is aimed to add the possibility to control a menu's visibility
without adding dependency to the expression to all the submenu.

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/expr.h      |    1 +
 scripts/kconfig/lkc.h       |    1 +
 scripts/kconfig/menu.c      |   11 +++++++++++
 scripts/kconfig/zconf.gperf |    1 +
 scripts/kconfig/zconf.y     |   21 ++++++++++++++++++---
 5 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h
index 184eb6a..e57826c 100644
--- a/scripts/kconfig/expr.h
+++ b/scripts/kconfig/expr.h
@@ -164,6 +164,7 @@ struct menu {
 	struct menu *list;
 	struct symbol *sym;
 	struct property *prompt;
+	struct expr *visibility;
 	struct expr *dep;
 	unsigned int flags;
 	char *help;
diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
index 753cdbd..3f7240d 100644
--- a/scripts/kconfig/lkc.h
+++ b/scripts/kconfig/lkc.h
@@ -107,6 +107,7 @@ void menu_end_menu(void);
 void menu_add_entry(struct symbol *sym);
 void menu_end_entry(void);
 void menu_add_dep(struct expr *dep);
+void menu_add_visibility(struct expr *dep);
 struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
 struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
 void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index 7e83aef..b9d9aa1 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -152,6 +152,12 @@ struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr
 	return menu_add_prop(type, prompt, NULL, dep);
 }
 
+void menu_add_visibility(struct expr *expr)
+{
+	current_entry->visibility = expr_alloc_and(current_entry->visibility,
+	    expr);
+}
+
 void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep)
 {
 	menu_add_prop(type, NULL, expr, dep);
@@ -410,6 +416,11 @@ bool menu_is_visible(struct menu *menu)
 	if (!menu->prompt)
 		return false;
 
+	if (menu->visibility) {
+		if (expr_calc_value(menu->visibility) == no)
+			return no;
+	}
+
 	sym = menu->sym;
 	if (sym) {
 		sym_calc_value(sym);
diff --git a/scripts/kconfig/zconf.gperf b/scripts/kconfig/zconf.gperf
index d8bc742..c9e690e 100644
--- a/scripts/kconfig/zconf.gperf
+++ b/scripts/kconfig/zconf.gperf
@@ -38,6 +38,7 @@ hex,		T_TYPE,		TF_COMMAND, S_HEX
 string,		T_TYPE,		TF_COMMAND, S_STRING
 select,		T_SELECT,	TF_COMMAND
 range,		T_RANGE,	TF_COMMAND
+visible,	T_VISIBLE,	TF_COMMAND
 option,		T_OPTION,	TF_COMMAND
 on,		T_ON,		TF_PARAM
 modules,	T_OPT_MODULES,	TF_OPTION
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
index 2abd3c7..49fb4ab 100644
--- a/scripts/kconfig/zconf.y
+++ b/scripts/kconfig/zconf.y
@@ -36,7 +36,7 @@ static struct menu *current_menu, *current_entry;
 #define YYERROR_VERBOSE
 #endif
 %}
-%expect 28
+%expect 30
 
 %union
 {
@@ -68,6 +68,7 @@ static struct menu *current_menu, *current_entry;
 %token <id>T_DEFAULT
 %token <id>T_SELECT
 %token <id>T_RANGE
+%token <id>T_VISIBLE
 %token <id>T_OPTION
 %token <id>T_ON
 %token <string> T_WORD
@@ -123,7 +124,7 @@ stmt_list:
 ;
 
 option_name:
-	T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT
+	T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT | T_VISIBLE
 ;
 
 common_stmt:
@@ -359,7 +360,7 @@ menu: T_MENU prompt T_EOL
 	printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
 };
 
-menu_entry: menu depends_list
+menu_entry: menu visibility_list depends_list
 {
 	$$ = menu_add_menu();
 };
@@ -430,6 +431,19 @@ depends: T_DEPENDS T_ON expr T_EOL
 	printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
 };
 
+/* visibility option */
+
+visibility_list:
+	  /* empty */
+	| visibility_list visible
+	| visibility_list T_EOL
+;
+
+visible: T_VISIBLE if_expr
+{
+	menu_add_visibility($2);
+};
+
 /* prompt statement */
 
 prompt_stmt_opt:
@@ -526,6 +540,7 @@ static const char *zconf_tokenname(int token)
 	case T_IF:		return "if";
 	case T_ENDIF:		return "endif";
 	case T_DEPENDS:		return "depends";
+	case T_VISIBLE:		return "visible";
 	}
 	return "<token>";
 }
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 2/5] kconfig: regen parser
  2010-11-04 18:51                 ` Mauro Carvalho Chehab
                                     ` (2 preceding siblings ...)
  2010-11-06 21:30                   ` [PATCH 1/5] kconfig: add an option to determine a menu's visibility Arnaud Lacombe
@ 2010-11-06 21:30                   ` Arnaud Lacombe
  2010-11-06 21:30                   ` [PATCH 3/5] Revert "i2c: Fix Kconfig dependencies" Arnaud Lacombe
                                     ` (2 subsequent siblings)
  6 siblings, 0 replies; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-06 21:30 UTC (permalink / raw)
  To: linux-kbuild, linux-media
  Cc: Mauro Carvalho Chehab, Michal Marek, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 scripts/kconfig/zconf.hash.c_shipped |  122 ++++----
 scripts/kconfig/zconf.tab.c_shipped  |  570 +++++++++++++++++----------------
 2 files changed, 358 insertions(+), 334 deletions(-)

diff --git a/scripts/kconfig/zconf.hash.c_shipped b/scripts/kconfig/zconf.hash.c_shipped
index c1748fa..4055d5d 100644
--- a/scripts/kconfig/zconf.hash.c_shipped
+++ b/scripts/kconfig/zconf.hash.c_shipped
@@ -32,7 +32,7 @@
 struct kconf_id;
 
 static struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
-/* maximum key range = 47, duplicates = 0 */
+/* maximum key range = 50, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -46,32 +46,32 @@ kconf_id_hash (register const char *str, register unsigned int len)
 {
   static unsigned char asso_values[] =
     {
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 11,  5,
-       0,  0,  5, 49,  5, 20, 49, 49,  5, 20,
-       5,  0, 30, 49,  0, 15,  0, 10,  0, 49,
-      25, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
-      49, 49, 49, 49, 49, 49
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 40,  5,
+       0,  0,  5, 52,  0, 20, 52, 52, 10, 20,
+       5,  0, 35, 52,  0, 30,  0, 15,  0, 52,
+      15, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+      52, 52, 52, 52, 52, 52
     };
   register int hval = len;
 
@@ -102,25 +102,26 @@ struct kconf_id_strings_t
     char kconf_id_strings_str12[sizeof("default")];
     char kconf_id_strings_str13[sizeof("def_bool")];
     char kconf_id_strings_str14[sizeof("help")];
-    char kconf_id_strings_str15[sizeof("bool")];
     char kconf_id_strings_str16[sizeof("config")];
     char kconf_id_strings_str17[sizeof("def_tristate")];
-    char kconf_id_strings_str18[sizeof("boolean")];
+    char kconf_id_strings_str18[sizeof("hex")];
     char kconf_id_strings_str19[sizeof("defconfig_list")];
-    char kconf_id_strings_str21[sizeof("string")];
     char kconf_id_strings_str22[sizeof("if")];
     char kconf_id_strings_str23[sizeof("int")];
-    char kconf_id_strings_str26[sizeof("select")];
     char kconf_id_strings_str27[sizeof("modules")];
     char kconf_id_strings_str28[sizeof("tristate")];
     char kconf_id_strings_str29[sizeof("menu")];
-    char kconf_id_strings_str31[sizeof("source")];
     char kconf_id_strings_str32[sizeof("comment")];
-    char kconf_id_strings_str33[sizeof("hex")];
     char kconf_id_strings_str35[sizeof("menuconfig")];
-    char kconf_id_strings_str36[sizeof("prompt")];
-    char kconf_id_strings_str37[sizeof("depends")];
+    char kconf_id_strings_str36[sizeof("string")];
+    char kconf_id_strings_str37[sizeof("visible")];
+    char kconf_id_strings_str41[sizeof("prompt")];
+    char kconf_id_strings_str42[sizeof("depends")];
+    char kconf_id_strings_str44[sizeof("bool")];
+    char kconf_id_strings_str46[sizeof("select")];
+    char kconf_id_strings_str47[sizeof("boolean")];
     char kconf_id_strings_str48[sizeof("mainmenu")];
+    char kconf_id_strings_str51[sizeof("source")];
   };
 static struct kconf_id_strings_t kconf_id_strings_contents =
   {
@@ -136,25 +137,26 @@ static struct kconf_id_strings_t kconf_id_strings_contents =
     "default",
     "def_bool",
     "help",
-    "bool",
     "config",
     "def_tristate",
-    "boolean",
+    "hex",
     "defconfig_list",
-    "string",
     "if",
     "int",
-    "select",
     "modules",
     "tristate",
     "menu",
-    "source",
     "comment",
-    "hex",
     "menuconfig",
+    "string",
+    "visible",
     "prompt",
     "depends",
-    "mainmenu"
+    "bool",
+    "select",
+    "boolean",
+    "mainmenu",
+    "source"
   };
 #define kconf_id_strings ((const char *) &kconf_id_strings_contents)
 #ifdef __GNUC__
@@ -168,11 +170,11 @@ kconf_id_lookup (register const char *str, register unsigned int len)
 {
   enum
     {
-      TOTAL_KEYWORDS = 31,
+      TOTAL_KEYWORDS = 32,
       MIN_WORD_LENGTH = 2,
       MAX_WORD_LENGTH = 14,
       MIN_HASH_VALUE = 2,
-      MAX_HASH_VALUE = 48
+      MAX_HASH_VALUE = 51
     };
 
   static struct kconf_id wordlist[] =
@@ -191,31 +193,35 @@ kconf_id_lookup (register const char *str, register unsigned int len)
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12,	T_DEFAULT,	TF_COMMAND, S_UNKNOWN},
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13,	T_DEFAULT,	TF_COMMAND, S_BOOLEAN},
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14,		T_HELP,		TF_COMMAND},
-      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str15,		T_TYPE,		TF_COMMAND, S_BOOLEAN},
+      {-1},
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str16,		T_CONFIG,	TF_COMMAND},
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17,	T_DEFAULT,	TF_COMMAND, S_TRISTATE},
-      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18,	T_TYPE,		TF_COMMAND, S_BOOLEAN},
+      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18,		T_TYPE,		TF_COMMAND, S_HEX},
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str19,	T_OPT_DEFCONFIG_LIST,TF_OPTION},
-      {-1},
-      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21,		T_TYPE,		TF_COMMAND, S_STRING},
+      {-1}, {-1},
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22,		T_IF,		TF_COMMAND|TF_PARAM},
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23,		T_TYPE,		TF_COMMAND, S_INT},
-      {-1}, {-1},
-      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str26,		T_SELECT,	TF_COMMAND},
+      {-1}, {-1}, {-1},
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27,	T_OPT_MODULES,	TF_OPTION},
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28,	T_TYPE,		TF_COMMAND, S_TRISTATE},
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str29,		T_MENU,		TF_COMMAND},
-      {-1},
-      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31,		T_SOURCE,	TF_COMMAND},
+      {-1}, {-1},
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32,	T_COMMENT,	TF_COMMAND},
-      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33,		T_TYPE,		TF_COMMAND, S_HEX},
-      {-1},
+      {-1}, {-1},
       {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35,	T_MENUCONFIG,	TF_COMMAND},
-      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36,		T_PROMPT,	TF_COMMAND},
-      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37,	T_DEPENDS,	TF_COMMAND},
-      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36,		T_TYPE,		TF_COMMAND, S_STRING},
+      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37,	T_VISIBLE,	TF_COMMAND},
+      {-1}, {-1}, {-1},
+      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41,		T_PROMPT,	TF_COMMAND},
+      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str42,	T_DEPENDS,	TF_COMMAND},
       {-1},
-      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str48,	T_MAINMENU,	TF_COMMAND}
+      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str44,		T_TYPE,		TF_COMMAND, S_BOOLEAN},
+      {-1},
+      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46,		T_SELECT,	TF_COMMAND},
+      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str47,	T_TYPE,		TF_COMMAND, S_BOOLEAN},
+      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str48,	T_MAINMENU,	TF_COMMAND},
+      {-1}, {-1},
+      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str51,		T_SOURCE,	TF_COMMAND}
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
diff --git a/scripts/kconfig/zconf.tab.c_shipped b/scripts/kconfig/zconf.tab.c_shipped
index 699d4b2..4c5495e 100644
--- a/scripts/kconfig/zconf.tab.c_shipped
+++ b/scripts/kconfig/zconf.tab.c_shipped
@@ -160,18 +160,19 @@ static struct menu *current_menu, *current_entry;
      T_DEFAULT = 275,
      T_SELECT = 276,
      T_RANGE = 277,
-     T_OPTION = 278,
-     T_ON = 279,
-     T_WORD = 280,
-     T_WORD_QUOTE = 281,
-     T_UNEQUAL = 282,
-     T_CLOSE_PAREN = 283,
-     T_OPEN_PAREN = 284,
-     T_EOL = 285,
-     T_OR = 286,
-     T_AND = 287,
-     T_EQUAL = 288,
-     T_NOT = 289
+     T_VISIBLE = 278,
+     T_OPTION = 279,
+     T_ON = 280,
+     T_WORD = 281,
+     T_WORD_QUOTE = 282,
+     T_UNEQUAL = 283,
+     T_CLOSE_PAREN = 284,
+     T_OPEN_PAREN = 285,
+     T_EOL = 286,
+     T_OR = 287,
+     T_AND = 288,
+     T_EQUAL = 289,
+     T_NOT = 290
    };
 #endif
 
@@ -419,20 +420,20 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  11
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   277
+#define YYLAST   290
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  35
+#define YYNTOKENS  36
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  48
+#define YYNNTS  50
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  113
+#define YYNRULES  118
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  185
+#define YYNSTATES  191
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   289
+#define YYMAXUTOK   290
 
 #define YYTRANSLATE(YYX)						\
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -468,7 +469,8 @@ static const yytype_uint8 yytranslate[] =
        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35
 };
 
 #if YYDEBUG
@@ -478,72 +480,73 @@ static const yytype_uint16 yyprhs[] =
 {
        0,     0,     3,     6,     8,    11,    13,    14,    17,    20,
       23,    26,    31,    36,    40,    42,    44,    46,    48,    50,
-      52,    54,    56,    58,    60,    62,    64,    66,    70,    73,
-      77,    80,    84,    87,    88,    91,    94,    97,   100,   103,
-     106,   110,   115,   120,   125,   131,   135,   136,   140,   141,
-     144,   148,   151,   153,   157,   158,   161,   164,   167,   170,
-     173,   178,   182,   185,   190,   191,   194,   198,   200,   204,
-     205,   208,   211,   214,   218,   222,   225,   227,   231,   232,
-     235,   238,   241,   245,   249,   252,   255,   258,   259,   262,
-     265,   268,   273,   274,   277,   279,   281,   284,   287,   290,
-     292,   295,   296,   299,   301,   305,   309,   313,   316,   320,
-     324,   326,   328,   329
+      52,    54,    56,    58,    60,    62,    64,    66,    68,    72,
+      75,    79,    82,    86,    89,    90,    93,    96,    99,   102,
+     105,   108,   112,   117,   122,   127,   133,   137,   138,   142,
+     143,   146,   150,   153,   155,   159,   160,   163,   166,   169,
+     172,   175,   180,   184,   187,   192,   193,   196,   200,   202,
+     206,   207,   210,   213,   216,   220,   224,   228,   230,   234,
+     235,   238,   241,   244,   248,   252,   255,   258,   261,   262,
+     265,   268,   271,   276,   277,   280,   283,   286,   287,   290,
+     292,   294,   297,   300,   303,   305,   308,   309,   312,   314,
+     318,   322,   326,   329,   333,   337,   339,   341,   342
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int8 yyrhs[] =
 {
-      36,     0,    -1,    78,    37,    -1,    37,    -1,    62,    38,
-      -1,    38,    -1,    -1,    38,    40,    -1,    38,    54,    -1,
-      38,    66,    -1,    38,    77,    -1,    38,    25,     1,    30,
-      -1,    38,    39,     1,    30,    -1,    38,     1,    30,    -1,
+      37,     0,    -1,    81,    38,    -1,    38,    -1,    63,    39,
+      -1,    39,    -1,    -1,    39,    41,    -1,    39,    55,    -1,
+      39,    67,    -1,    39,    80,    -1,    39,    26,     1,    31,
+      -1,    39,    40,     1,    31,    -1,    39,     1,    31,    -1,
       16,    -1,    18,    -1,    19,    -1,    21,    -1,    17,    -1,
-      22,    -1,    20,    -1,    30,    -1,    60,    -1,    70,    -1,
-      43,    -1,    45,    -1,    68,    -1,    25,     1,    30,    -1,
-       1,    30,    -1,    10,    25,    30,    -1,    42,    46,    -1,
-      11,    25,    30,    -1,    44,    46,    -1,    -1,    46,    47,
-      -1,    46,    48,    -1,    46,    74,    -1,    46,    72,    -1,
-      46,    41,    -1,    46,    30,    -1,    19,    75,    30,    -1,
-      18,    76,    79,    30,    -1,    20,    80,    79,    30,    -1,
-      21,    25,    79,    30,    -1,    22,    81,    81,    79,    30,
-      -1,    23,    49,    30,    -1,    -1,    49,    25,    50,    -1,
-      -1,    33,    76,    -1,     7,    82,    30,    -1,    51,    55,
-      -1,    77,    -1,    52,    57,    53,    -1,    -1,    55,    56,
-      -1,    55,    74,    -1,    55,    72,    -1,    55,    30,    -1,
-      55,    41,    -1,    18,    76,    79,    30,    -1,    19,    75,
-      30,    -1,    17,    30,    -1,    20,    25,    79,    30,    -1,
-      -1,    57,    40,    -1,    14,    80,    78,    -1,    77,    -1,
-      58,    61,    59,    -1,    -1,    61,    40,    -1,    61,    66,
-      -1,    61,    54,    -1,     3,    76,    78,    -1,     4,    76,
-      30,    -1,    63,    73,    -1,    77,    -1,    64,    67,    65,
-      -1,    -1,    67,    40,    -1,    67,    66,    -1,    67,    54,
-      -1,     6,    76,    30,    -1,     9,    76,    30,    -1,    69,
-      73,    -1,    12,    30,    -1,    71,    13,    -1,    -1,    73,
-      74,    -1,    73,    30,    -1,    73,    41,    -1,    16,    24,
-      80,    30,    -1,    -1,    76,    79,    -1,    25,    -1,    26,
-      -1,     5,    30,    -1,     8,    30,    -1,    15,    30,    -1,
-      30,    -1,    78,    30,    -1,    -1,    14,    80,    -1,    81,
-      -1,    81,    33,    81,    -1,    81,    27,    81,    -1,    29,
-      80,    28,    -1,    34,    80,    -1,    80,    31,    80,    -1,
-      80,    32,    80,    -1,    25,    -1,    26,    -1,    -1,    25,
-      -1
+      22,    -1,    20,    -1,    23,    -1,    31,    -1,    61,    -1,
+      71,    -1,    44,    -1,    46,    -1,    69,    -1,    26,     1,
+      31,    -1,     1,    31,    -1,    10,    26,    31,    -1,    43,
+      47,    -1,    11,    26,    31,    -1,    45,    47,    -1,    -1,
+      47,    48,    -1,    47,    49,    -1,    47,    75,    -1,    47,
+      73,    -1,    47,    42,    -1,    47,    31,    -1,    19,    78,
+      31,    -1,    18,    79,    82,    31,    -1,    20,    83,    82,
+      31,    -1,    21,    26,    82,    31,    -1,    22,    84,    84,
+      82,    31,    -1,    24,    50,    31,    -1,    -1,    50,    26,
+      51,    -1,    -1,    34,    79,    -1,     7,    85,    31,    -1,
+      52,    56,    -1,    80,    -1,    53,    58,    54,    -1,    -1,
+      56,    57,    -1,    56,    75,    -1,    56,    73,    -1,    56,
+      31,    -1,    56,    42,    -1,    18,    79,    82,    31,    -1,
+      19,    78,    31,    -1,    17,    31,    -1,    20,    26,    82,
+      31,    -1,    -1,    58,    41,    -1,    14,    83,    81,    -1,
+      80,    -1,    59,    62,    60,    -1,    -1,    62,    41,    -1,
+      62,    67,    -1,    62,    55,    -1,     3,    79,    81,    -1,
+       4,    79,    31,    -1,    64,    76,    74,    -1,    80,    -1,
+      65,    68,    66,    -1,    -1,    68,    41,    -1,    68,    67,
+      -1,    68,    55,    -1,     6,    79,    31,    -1,     9,    79,
+      31,    -1,    70,    74,    -1,    12,    31,    -1,    72,    13,
+      -1,    -1,    74,    75,    -1,    74,    31,    -1,    74,    42,
+      -1,    16,    25,    83,    31,    -1,    -1,    76,    77,    -1,
+      76,    31,    -1,    23,    82,    -1,    -1,    79,    82,    -1,
+      26,    -1,    27,    -1,     5,    31,    -1,     8,    31,    -1,
+      15,    31,    -1,    31,    -1,    81,    31,    -1,    -1,    14,
+      83,    -1,    84,    -1,    84,    34,    84,    -1,    84,    28,
+      84,    -1,    30,    83,    29,    -1,    35,    83,    -1,    83,
+      32,    83,    -1,    83,    33,    83,    -1,    26,    -1,    27,
+      -1,    -1,    26,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   107,   107,   107,   109,   109,   111,   113,   114,   115,
-     116,   117,   118,   122,   126,   126,   126,   126,   126,   126,
-     126,   130,   131,   132,   133,   134,   135,   139,   140,   146,
-     154,   160,   168,   178,   180,   181,   182,   183,   184,   185,
-     188,   196,   202,   212,   218,   224,   227,   229,   240,   241,
-     246,   255,   260,   268,   271,   273,   274,   275,   276,   277,
-     280,   286,   297,   303,   313,   315,   320,   328,   336,   339,
-     341,   342,   343,   348,   355,   362,   367,   375,   378,   380,
-     381,   382,   385,   393,   400,   407,   413,   420,   422,   423,
-     424,   427,   435,   437,   442,   443,   446,   447,   448,   452,
-     453,   456,   457,   460,   461,   462,   463,   464,   465,   466,
-     469,   470,   473,   474
+       0,   108,   108,   108,   110,   110,   112,   114,   115,   116,
+     117,   118,   119,   123,   127,   127,   127,   127,   127,   127,
+     127,   127,   131,   132,   133,   134,   135,   136,   140,   141,
+     147,   155,   161,   169,   179,   181,   182,   183,   184,   185,
+     186,   189,   197,   203,   213,   219,   225,   228,   230,   241,
+     242,   247,   256,   261,   269,   272,   274,   275,   276,   277,
+     278,   281,   287,   298,   304,   314,   316,   321,   329,   337,
+     340,   342,   343,   344,   349,   356,   363,   368,   376,   379,
+     381,   382,   383,   386,   394,   401,   408,   414,   421,   423,
+     424,   425,   428,   436,   438,   439,   442,   449,   451,   456,
+     457,   460,   461,   462,   466,   467,   470,   471,   474,   475,
+     476,   477,   478,   479,   480,   483,   484,   487,   488
 };
 #endif
 
@@ -556,7 +559,7 @@ static const char *const yytname[] =
   "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
   "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
   "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_RANGE",
-  "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL",
+  "T_VISIBLE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL",
   "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL",
   "T_NOT", "$accept", "input", "start", "stmt_list", "option_name",
   "common_stmt", "option_error", "config_entry_start", "config_stmt",
@@ -567,8 +570,8 @@ static const char *const yytname[] =
   "if_entry", "if_end", "if_stmt", "if_block", "mainmenu_stmt", "menu",
   "menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt",
   "comment", "comment_stmt", "help_start", "help", "depends_list",
-  "depends", "prompt_stmt_opt", "prompt", "end", "nl", "if_expr", "expr",
-  "symbol", "word_opt", 0
+  "depends", "visibility_list", "visible", "prompt_stmt_opt", "prompt",
+  "end", "nl", "if_expr", "expr", "symbol", "word_opt", 0
 };
 #endif
 
@@ -580,25 +583,25 @@ static const yytype_uint16 yytoknum[] =
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289
+     285,   286,   287,   288,   289,   290
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,    35,    36,    36,    37,    37,    38,    38,    38,    38,
-      38,    38,    38,    38,    39,    39,    39,    39,    39,    39,
-      39,    40,    40,    40,    40,    40,    40,    41,    41,    42,
-      43,    44,    45,    46,    46,    46,    46,    46,    46,    46,
-      47,    47,    47,    47,    47,    48,    49,    49,    50,    50,
-      51,    52,    53,    54,    55,    55,    55,    55,    55,    55,
-      56,    56,    56,    56,    57,    57,    58,    59,    60,    61,
-      61,    61,    61,    62,    63,    64,    65,    66,    67,    67,
-      67,    67,    68,    69,    70,    71,    72,    73,    73,    73,
-      73,    74,    75,    75,    76,    76,    77,    77,    77,    78,
-      78,    79,    79,    80,    80,    80,    80,    80,    80,    80,
-      81,    81,    82,    82
+       0,    36,    37,    37,    38,    38,    39,    39,    39,    39,
+      39,    39,    39,    39,    40,    40,    40,    40,    40,    40,
+      40,    40,    41,    41,    41,    41,    41,    41,    42,    42,
+      43,    44,    45,    46,    47,    47,    47,    47,    47,    47,
+      47,    48,    48,    48,    48,    48,    49,    50,    50,    51,
+      51,    52,    53,    54,    55,    56,    56,    56,    56,    56,
+      56,    57,    57,    57,    57,    58,    58,    59,    60,    61,
+      62,    62,    62,    62,    63,    64,    65,    66,    67,    68,
+      68,    68,    68,    69,    70,    71,    72,    73,    74,    74,
+      74,    74,    75,    76,    76,    76,    77,    78,    78,    79,
+      79,    80,    80,    80,    81,    81,    82,    82,    83,    83,
+      83,    83,    83,    83,    83,    84,    84,    85,    85
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -606,16 +609,16 @@ static const yytype_uint8 yyr2[] =
 {
        0,     2,     2,     1,     2,     1,     0,     2,     2,     2,
        2,     4,     4,     3,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     3,     2,     3,
-       2,     3,     2,     0,     2,     2,     2,     2,     2,     2,
-       3,     4,     4,     4,     5,     3,     0,     3,     0,     2,
-       3,     2,     1,     3,     0,     2,     2,     2,     2,     2,
-       4,     3,     2,     4,     0,     2,     3,     1,     3,     0,
-       2,     2,     2,     3,     3,     2,     1,     3,     0,     2,
-       2,     2,     3,     3,     2,     2,     2,     0,     2,     2,
-       2,     4,     0,     2,     1,     1,     2,     2,     2,     1,
-       2,     0,     2,     1,     3,     3,     3,     2,     3,     3,
-       1,     1,     0,     1
+       1,     1,     1,     1,     1,     1,     1,     1,     3,     2,
+       3,     2,     3,     2,     0,     2,     2,     2,     2,     2,
+       2,     3,     4,     4,     4,     5,     3,     0,     3,     0,
+       2,     3,     2,     1,     3,     0,     2,     2,     2,     2,
+       2,     4,     3,     2,     4,     0,     2,     3,     1,     3,
+       0,     2,     2,     2,     3,     3,     3,     1,     3,     0,
+       2,     2,     2,     3,     3,     2,     2,     2,     0,     2,
+       2,     2,     4,     0,     2,     2,     2,     0,     2,     1,
+       1,     2,     2,     2,     1,     2,     0,     2,     1,     3,
+       3,     3,     2,     3,     3,     1,     1,     0,     1
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -623,165 +626,172 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       6,     0,    99,     0,     3,     0,     6,     6,    94,    95,
-       0,     1,     0,     0,     0,     0,   112,     0,     0,     0,
+       6,     0,   104,     0,     3,     0,     6,     6,    99,   100,
+       0,     1,     0,     0,     0,     0,   117,     0,     0,     0,
        0,     0,     0,    14,    18,    15,    16,    20,    17,    19,
-       0,    21,     0,     7,    33,    24,    33,    25,    54,    64,
-       8,    69,    22,    87,    78,     9,    26,    87,    23,    10,
-       0,   100,     2,    73,    13,     0,    96,     0,   113,     0,
-      97,     0,     0,     0,   110,   111,     0,     0,     0,   103,
-      98,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    74,    82,    50,    83,    29,    31,     0,   107,     0,
-       0,    66,     0,     0,    11,    12,     0,     0,     0,     0,
-      92,     0,     0,     0,    46,     0,    39,    38,    34,    35,
-       0,    37,    36,     0,     0,    92,     0,    58,    59,    55,
-      57,    56,    65,    53,    52,    70,    72,    68,    71,    67,
-      89,    90,    88,    79,    81,    77,    80,    76,   106,   108,
-     109,   105,   104,    28,    85,     0,   101,     0,   101,   101,
-     101,     0,     0,     0,    86,    62,   101,     0,   101,     0,
-       0,     0,    40,    93,     0,     0,   101,    48,    45,    27,
-       0,    61,     0,    91,   102,    41,    42,    43,     0,     0,
-      47,    60,    63,    44,    49
+      21,     0,    22,     0,     7,    34,    25,    34,    26,    55,
+      65,     8,    70,    23,    93,    79,     9,    27,    88,    24,
+      10,     0,   105,     2,    74,    13,     0,   101,     0,   118,
+       0,   102,     0,     0,     0,   115,   116,     0,     0,     0,
+     108,   103,     0,     0,     0,     0,     0,     0,     0,    88,
+       0,     0,    75,    83,    51,    84,    30,    32,     0,   112,
+       0,     0,    67,     0,     0,    11,    12,     0,     0,     0,
+       0,    97,     0,     0,     0,    47,     0,    40,    39,    35,
+      36,     0,    38,    37,     0,     0,    97,     0,    59,    60,
+      56,    58,    57,    66,    54,    53,    71,    73,    69,    72,
+      68,   106,    95,     0,    94,    80,    82,    78,    81,    77,
+      90,    91,    89,   111,   113,   114,   110,   109,    29,    86,
+       0,   106,     0,   106,   106,   106,     0,     0,     0,    87,
+      63,   106,     0,   106,     0,    96,     0,     0,    41,    98,
+       0,     0,   106,    49,    46,    28,     0,    62,     0,   107,
+      92,    42,    43,    44,     0,     0,    48,    61,    64,    45,
+      50
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     3,     4,     5,    32,    33,   107,    34,    35,    36,
-      37,    73,   108,   109,   152,   180,    38,    39,   123,    40,
-      75,   119,    76,    41,   127,    42,    77,     6,    43,    44,
-     135,    45,    79,    46,    47,    48,   110,   111,    78,   112,
-     147,   148,    49,     7,   161,    68,    69,    59
+      -1,     3,     4,     5,    33,    34,   108,    35,    36,    37,
+      38,    74,   109,   110,   157,   186,    39,    40,   124,    41,
+      76,   120,    77,    42,   128,    43,    78,     6,    44,    45,
+     137,    46,    80,    47,    48,    49,   111,   112,    81,   113,
+      79,   134,   152,   153,    50,     7,   165,    69,    70,    60
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -89
+#define YYPACT_NINF -90
 static const yytype_int16 yypact[] =
 {
-       3,     4,   -89,    20,   -89,   100,   -89,     7,   -89,   -89,
-      -8,   -89,    17,     4,    28,     4,    37,    36,     4,    68,
-      87,   -18,    69,   -89,   -89,   -89,   -89,   -89,   -89,   -89,
-     128,   -89,   138,   -89,   -89,   -89,   -89,   -89,   -89,   -89,
-     -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,
-     127,   -89,   -89,   110,   -89,   126,   -89,   136,   -89,   137,
-     -89,   147,   150,   152,   -89,   -89,   -18,   -18,   171,   -14,
-     -89,   153,   157,    34,    67,   180,   233,   220,   207,   220,
-     154,   -89,   -89,   -89,   -89,   -89,   -89,     0,   -89,   -18,
-     -18,   110,    44,    44,   -89,   -89,   163,   174,   182,     4,
-       4,   -18,   194,    44,   -89,   219,   -89,   -89,   -89,   -89,
-     223,   -89,   -89,   203,     4,     4,   215,   -89,   -89,   -89,
-     -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,
-     -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   213,
-     -89,   -89,   -89,   -89,   -89,   -18,   232,   227,   232,    -5,
-     232,    44,    35,   234,   -89,   -89,   232,   235,   232,   224,
-     -18,   236,   -89,   -89,   237,   238,   232,   216,   -89,   -89,
-     240,   -89,   241,   -89,    71,   -89,   -89,   -89,   242,     4,
-     -89,   -89,   -89,   -89,   -89
+       4,    42,   -90,    96,   -90,   111,   -90,    15,   -90,   -90,
+      75,   -90,    82,    42,   104,    42,   110,   107,    42,   115,
+     125,    -4,   121,   -90,   -90,   -90,   -90,   -90,   -90,   -90,
+     -90,   162,   -90,   163,   -90,   -90,   -90,   -90,   -90,   -90,
+     -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,
+     -90,   139,   -90,   -90,   138,   -90,   142,   -90,   143,   -90,
+     152,   -90,   164,   167,   168,   -90,   -90,    -4,    -4,    77,
+     -18,   -90,   177,   185,    33,    71,   195,   247,   236,    -2,
+     236,   171,   -90,   -90,   -90,   -90,   -90,   -90,    41,   -90,
+      -4,    -4,   138,    97,    97,   -90,   -90,   186,   187,   194,
+      42,    42,    -4,   196,    97,   -90,   219,   -90,   -90,   -90,
+     -90,   210,   -90,   -90,   204,    42,    42,   199,   -90,   -90,
+     -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,
+     -90,   222,   -90,   223,   -90,   -90,   -90,   -90,   -90,   -90,
+     -90,   -90,   -90,   -90,   215,   -90,   -90,   -90,   -90,   -90,
+      -4,   222,   228,   222,    -5,   222,    97,    35,   229,   -90,
+     -90,   222,   232,   222,    -4,   -90,   135,   233,   -90,   -90,
+     234,   235,   222,   240,   -90,   -90,   237,   -90,   239,   -13,
+     -90,   -90,   -90,   -90,   244,    42,   -90,   -90,   -90,   -90,
+     -90
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-     -89,   -89,   255,   267,   -89,    47,   -57,   -89,   -89,   -89,
-     -89,   239,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   130,
-     -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,   -89,
-     -89,   181,   -89,   -89,   -89,   -89,   -89,   199,   229,    16,
-     162,    -1,    74,    -7,   103,   -65,   -88,   -89
+     -90,   -90,   269,   271,   -90,    23,   -70,   -90,   -90,   -90,
+     -90,   243,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -48,
+     -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,   -90,
+     -90,   -20,   -90,   -90,   -90,   -90,   -90,   206,   205,   -68,
+     -90,   -90,   169,    -1,    27,    -7,   118,   -66,   -89,   -90
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -85
+#define YYTABLE_NINF -86
 static const yytype_int16 yytable[] =
 {
-      10,    87,    88,    53,   141,   142,     1,    64,    65,   160,
-       1,    66,    55,    92,    57,   151,    67,    61,   118,    93,
-      11,   131,     2,   131,   139,   140,    89,    90,   138,     8,
-       9,    89,    90,     2,   -30,    96,   149,    51,   -30,   -30,
-     -30,   -30,   -30,   -30,   -30,   -30,    97,    54,   -30,   -30,
-      98,   -30,    99,   100,   101,   102,   103,   104,    56,   105,
-     167,    91,    58,   166,   106,   168,    60,   -32,    96,    64,
-      65,   -32,   -32,   -32,   -32,   -32,   -32,   -32,   -32,    97,
-     159,   -32,   -32,    98,   -32,    99,   100,   101,   102,   103,
-     104,   121,   105,    62,   132,   174,   132,   106,   146,    70,
-      -5,    12,    89,    90,    13,    14,    15,    16,    17,    18,
-      19,    20,    63,   156,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,   122,   125,    30,   133,    -4,    12,    71,
-      31,    13,    14,    15,    16,    17,    18,    19,    20,    72,
-      51,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-     124,   129,    30,   137,   -84,    96,    81,    31,   -84,   -84,
-     -84,   -84,   -84,   -84,   -84,   -84,    82,    83,   -84,   -84,
-      98,   -84,   -84,   -84,   -84,   -84,   -84,    84,   184,   105,
-      85,    96,    86,    94,   130,   -51,   -51,    95,   -51,   -51,
-     -51,   -51,    97,   143,   -51,   -51,    98,   113,   114,   115,
-     116,     2,    89,    90,   144,   105,   145,   126,    96,   134,
-     117,   -75,   -75,   -75,   -75,   -75,   -75,   -75,   -75,   150,
-     153,   -75,   -75,    98,    13,    14,    15,    16,    17,    18,
-      19,    20,   105,   155,    21,    22,   154,   130,    14,    15,
-     158,    17,    18,    19,    20,    90,   160,    21,    22,   179,
-      31,   163,   164,   165,   173,    89,    90,   162,   128,   170,
-     136,   172,    52,    31,   169,   171,   175,   176,   177,   178,
-     181,   182,   183,    50,   120,    74,    80,   157
+      10,    88,    89,    54,   146,   147,   119,     1,   122,   164,
+      93,   141,    56,   142,    58,   156,    94,    62,     1,    90,
+      91,   131,    65,    66,   144,   145,    67,    90,    91,   132,
+     127,    68,   136,   -31,    97,     2,   154,   -31,   -31,   -31,
+     -31,   -31,   -31,   -31,   -31,    98,    52,   -31,   -31,    99,
+     -31,   100,   101,   102,   103,   104,   -31,   105,   129,   106,
+     138,   173,    92,   141,   107,   142,   174,   172,     8,     9,
+     143,   -33,    97,    90,    91,   -33,   -33,   -33,   -33,   -33,
+     -33,   -33,   -33,    98,   166,   -33,   -33,    99,   -33,   100,
+     101,   102,   103,   104,   -33,   105,    11,   106,   179,   151,
+     123,   126,   107,   135,   125,   130,     2,   139,     2,    90,
+      91,    -5,    12,    55,   161,    13,    14,    15,    16,    17,
+      18,    19,    20,    65,    66,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    57,    59,    31,    61,    -4,
+      12,    63,    32,    13,    14,    15,    16,    17,    18,    19,
+      20,    64,    71,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    72,    73,    31,   180,    90,    91,    52,
+      32,   -85,    97,    82,    83,   -85,   -85,   -85,   -85,   -85,
+     -85,   -85,   -85,    84,   190,   -85,   -85,    99,   -85,   -85,
+     -85,   -85,   -85,   -85,   -85,    85,    97,   106,    86,    87,
+     -52,   -52,   140,   -52,   -52,   -52,   -52,    98,    95,   -52,
+     -52,    99,   114,   115,   116,   117,    96,   148,   149,   150,
+     158,   106,   155,   159,    97,   163,   118,   -76,   -76,   -76,
+     -76,   -76,   -76,   -76,   -76,   160,   164,   -76,   -76,    99,
+      13,    14,    15,    16,    17,    18,    19,    20,    91,   106,
+      21,    22,    14,    15,   140,    17,    18,    19,    20,   168,
+     175,    21,    22,   177,   181,   182,   183,    32,   187,   167,
+     188,   169,   170,   171,   185,   189,    53,    51,    32,   176,
+      75,   178,   121,     0,   133,   162,     0,     0,     0,     0,
+     184
 };
 
-static const yytype_uint8 yycheck[] =
+static const yytype_int16 yycheck[] =
 {
-       1,    66,    67,    10,    92,    93,     3,    25,    26,    14,
-       3,    29,    13,    27,    15,   103,    34,    18,    75,    33,
-       0,    78,    30,    80,    89,    90,    31,    32,    28,    25,
-      26,    31,    32,    30,     0,     1,   101,    30,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    30,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    30,    25,
-      25,    68,    25,   151,    30,    30,    30,     0,     1,    25,
-      26,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-     145,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    75,    25,    25,    78,   160,    80,    30,    99,    30,
-       0,     1,    31,    32,     4,     5,     6,     7,     8,     9,
-      10,    11,    25,   114,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    76,    77,    25,    79,     0,     1,     1,
-      30,     4,     5,     6,     7,     8,     9,    10,    11,     1,
-      30,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      76,    77,    25,    79,     0,     1,    30,    30,     4,     5,
-       6,     7,     8,     9,    10,    11,    30,    30,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    30,   179,    25,
-      30,     1,    30,    30,    30,     5,     6,    30,     8,     9,
-      10,    11,    12,    30,    14,    15,    16,    17,    18,    19,
-      20,    30,    31,    32,    30,    25,    24,    77,     1,    79,
-      30,     4,     5,     6,     7,     8,     9,    10,    11,    25,
-       1,    14,    15,    16,     4,     5,     6,     7,     8,     9,
-      10,    11,    25,    30,    14,    15,    13,    30,     5,     6,
-      25,     8,     9,    10,    11,    32,    14,    14,    15,    33,
-      30,   148,   149,   150,    30,    31,    32,    30,    77,   156,
-      79,   158,     7,    30,    30,    30,    30,    30,    30,   166,
-      30,    30,    30,     6,    75,    36,    47,   115
+       1,    67,    68,    10,    93,    94,    76,     3,    76,    14,
+      28,    81,    13,    81,    15,   104,    34,    18,     3,    32,
+      33,    23,    26,    27,    90,    91,    30,    32,    33,    31,
+      78,    35,    80,     0,     1,    31,   102,     4,     5,     6,
+       7,     8,     9,    10,    11,    12,    31,    14,    15,    16,
+      17,    18,    19,    20,    21,    22,    23,    24,    78,    26,
+      80,    26,    69,   133,    31,   133,    31,   156,    26,    27,
+      29,     0,     1,    32,    33,     4,     5,     6,     7,     8,
+       9,    10,    11,    12,   150,    14,    15,    16,    17,    18,
+      19,    20,    21,    22,    23,    24,     0,    26,   164,   100,
+      77,    78,    31,    80,    77,    78,    31,    80,    31,    32,
+      33,     0,     1,    31,   115,     4,     5,     6,     7,     8,
+       9,    10,    11,    26,    27,    14,    15,    16,    17,    18,
+      19,    20,    21,    22,    23,    31,    26,    26,    31,     0,
+       1,    26,    31,     4,     5,     6,     7,     8,     9,    10,
+      11,    26,    31,    14,    15,    16,    17,    18,    19,    20,
+      21,    22,    23,     1,     1,    26,    31,    32,    33,    31,
+      31,     0,     1,    31,    31,     4,     5,     6,     7,     8,
+       9,    10,    11,    31,   185,    14,    15,    16,    17,    18,
+      19,    20,    21,    22,    23,    31,     1,    26,    31,    31,
+       5,     6,    31,     8,     9,    10,    11,    12,    31,    14,
+      15,    16,    17,    18,    19,    20,    31,    31,    31,    25,
+       1,    26,    26,    13,     1,    26,    31,     4,     5,     6,
+       7,     8,     9,    10,    11,    31,    14,    14,    15,    16,
+       4,     5,     6,     7,     8,     9,    10,    11,    33,    26,
+      14,    15,     5,     6,    31,     8,     9,    10,    11,    31,
+      31,    14,    15,    31,    31,    31,    31,    31,    31,   151,
+      31,   153,   154,   155,    34,    31,     7,     6,    31,   161,
+      37,   163,    76,    -1,    79,   116,    -1,    -1,    -1,    -1,
+     172
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
-       0,     3,    30,    36,    37,    38,    62,    78,    25,    26,
-      76,     0,     1,     4,     5,     6,     7,     8,     9,    10,
+       0,     3,    31,    37,    38,    39,    63,    81,    26,    27,
+      79,     0,     1,     4,     5,     6,     7,     8,     9,    10,
       11,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      25,    30,    39,    40,    42,    43,    44,    45,    51,    52,
-      54,    58,    60,    63,    64,    66,    68,    69,    70,    77,
-      38,    30,    37,    78,    30,    76,    30,    76,    25,    82,
-      30,    76,    25,    25,    25,    26,    29,    34,    80,    81,
-      30,     1,     1,    46,    46,    55,    57,    61,    73,    67,
-      73,    30,    30,    30,    30,    30,    30,    80,    80,    31,
-      32,    78,    27,    33,    30,    30,     1,    12,    16,    18,
-      19,    20,    21,    22,    23,    25,    30,    41,    47,    48,
-      71,    72,    74,    17,    18,    19,    20,    30,    41,    56,
-      72,    74,    40,    53,    77,    40,    54,    59,    66,    77,
-      30,    41,    74,    40,    54,    65,    66,    77,    28,    80,
-      80,    81,    81,    30,    30,    24,    76,    75,    76,    80,
-      25,    81,    49,     1,    13,    30,    76,    75,    25,    80,
-      14,    79,    30,    79,    79,    79,    81,    25,    30,    30,
-      79,    30,    79,    30,    80,    30,    30,    30,    79,    33,
-      50,    30,    30,    30,    76
+      23,    26,    31,    40,    41,    43,    44,    45,    46,    52,
+      53,    55,    59,    61,    64,    65,    67,    69,    70,    71,
+      80,    39,    31,    38,    81,    31,    79,    31,    79,    26,
+      85,    31,    79,    26,    26,    26,    27,    30,    35,    83,
+      84,    31,     1,     1,    47,    47,    56,    58,    62,    76,
+      68,    74,    31,    31,    31,    31,    31,    31,    83,    83,
+      32,    33,    81,    28,    34,    31,    31,     1,    12,    16,
+      18,    19,    20,    21,    22,    24,    26,    31,    42,    48,
+      49,    72,    73,    75,    17,    18,    19,    20,    31,    42,
+      57,    73,    75,    41,    54,    80,    41,    55,    60,    67,
+      80,    23,    31,    74,    77,    41,    55,    66,    67,    80,
+      31,    42,    75,    29,    83,    83,    84,    84,    31,    31,
+      25,    79,    78,    79,    83,    26,    84,    50,     1,    13,
+      31,    79,    78,    26,    14,    82,    83,    82,    31,    82,
+      82,    82,    84,    26,    31,    31,    82,    31,    82,    83,
+      31,    31,    31,    31,    82,    34,    51,    31,    31,    31,
+      79
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -1292,7 +1302,7 @@ yydestruct (yymsg, yytype, yyvaluep)
 
   switch (yytype)
     {
-      case 52: /* "choice_entry" */
+      case 53: /* "choice_entry" */
 
 	{
 	fprintf(stderr, "%s:%d: missing end statement for this entry\n",
@@ -1302,7 +1312,7 @@ yydestruct (yymsg, yytype, yyvaluep)
 };
 
 	break;
-      case 58: /* "if_entry" */
+      case 59: /* "if_entry" */
 
 	{
 	fprintf(stderr, "%s:%d: missing end statement for this entry\n",
@@ -1312,7 +1322,7 @@ yydestruct (yymsg, yytype, yyvaluep)
 };
 
 	break;
-      case 64: /* "menu_entry" */
+      case 65: /* "menu_entry" */
 
 	{
 	fprintf(stderr, "%s:%d: missing end statement for this entry\n",
@@ -1644,17 +1654,17 @@ yyreduce:
     { zconf_error("invalid statement"); ;}
     break;
 
-  case 27:
+  case 28:
 
     { zconf_error("unknown option \"%s\"", (yyvsp[(1) - (3)].string)); ;}
     break;
 
-  case 28:
+  case 29:
 
     { zconf_error("invalid option"); ;}
     break;
 
-  case 29:
+  case 30:
 
     {
 	struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
@@ -1664,7 +1674,7 @@ yyreduce:
 ;}
     break;
 
-  case 30:
+  case 31:
 
     {
 	menu_end_entry();
@@ -1672,7 +1682,7 @@ yyreduce:
 ;}
     break;
 
-  case 31:
+  case 32:
 
     {
 	struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
@@ -1682,7 +1692,7 @@ yyreduce:
 ;}
     break;
 
-  case 32:
+  case 33:
 
     {
 	if (current_entry->prompt)
@@ -1694,7 +1704,7 @@ yyreduce:
 ;}
     break;
 
-  case 40:
+  case 41:
 
     {
 	menu_set_type((yyvsp[(1) - (3)].id)->stype);
@@ -1704,7 +1714,7 @@ yyreduce:
 ;}
     break;
 
-  case 41:
+  case 42:
 
     {
 	menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
@@ -1712,7 +1722,7 @@ yyreduce:
 ;}
     break;
 
-  case 42:
+  case 43:
 
     {
 	menu_add_expr(P_DEFAULT, (yyvsp[(2) - (4)].expr), (yyvsp[(3) - (4)].expr));
@@ -1724,7 +1734,7 @@ yyreduce:
 ;}
     break;
 
-  case 43:
+  case 44:
 
     {
 	menu_add_symbol(P_SELECT, sym_lookup((yyvsp[(2) - (4)].string), 0), (yyvsp[(3) - (4)].expr));
@@ -1732,7 +1742,7 @@ yyreduce:
 ;}
     break;
 
-  case 44:
+  case 45:
 
     {
 	menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[(2) - (5)].symbol), (yyvsp[(3) - (5)].symbol)), (yyvsp[(4) - (5)].expr));
@@ -1740,7 +1750,7 @@ yyreduce:
 ;}
     break;
 
-  case 47:
+  case 48:
 
     {
 	struct kconf_id *id = kconf_id_lookup((yyvsp[(2) - (3)].string), strlen((yyvsp[(2) - (3)].string)));
@@ -1752,17 +1762,17 @@ yyreduce:
 ;}
     break;
 
-  case 48:
+  case 49:
 
     { (yyval.string) = NULL; ;}
     break;
 
-  case 49:
+  case 50:
 
     { (yyval.string) = (yyvsp[(2) - (2)].string); ;}
     break;
 
-  case 50:
+  case 51:
 
     {
 	struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), SYMBOL_CHOICE);
@@ -1773,14 +1783,14 @@ yyreduce:
 ;}
     break;
 
-  case 51:
+  case 52:
 
     {
 	(yyval.menu) = menu_add_menu();
 ;}
     break;
 
-  case 52:
+  case 53:
 
     {
 	if (zconf_endtoken((yyvsp[(1) - (1)].id), T_CHOICE, T_ENDCHOICE)) {
@@ -1790,7 +1800,7 @@ yyreduce:
 ;}
     break;
 
-  case 60:
+  case 61:
 
     {
 	menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
@@ -1798,7 +1808,7 @@ yyreduce:
 ;}
     break;
 
-  case 61:
+  case 62:
 
     {
 	if ((yyvsp[(1) - (3)].id)->stype == S_BOOLEAN || (yyvsp[(1) - (3)].id)->stype == S_TRISTATE) {
@@ -1811,7 +1821,7 @@ yyreduce:
 ;}
     break;
 
-  case 62:
+  case 63:
 
     {
 	current_entry->sym->flags |= SYMBOL_OPTIONAL;
@@ -1819,7 +1829,7 @@ yyreduce:
 ;}
     break;
 
-  case 63:
+  case 64:
 
     {
 	if ((yyvsp[(1) - (4)].id)->stype == S_UNKNOWN) {
@@ -1831,7 +1841,7 @@ yyreduce:
 ;}
     break;
 
-  case 66:
+  case 67:
 
     {
 	printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
@@ -1841,7 +1851,7 @@ yyreduce:
 ;}
     break;
 
-  case 67:
+  case 68:
 
     {
 	if (zconf_endtoken((yyvsp[(1) - (1)].id), T_IF, T_ENDIF)) {
@@ -1851,14 +1861,14 @@ yyreduce:
 ;}
     break;
 
-  case 73:
+  case 74:
 
     {
 	menu_add_prompt(P_MENU, (yyvsp[(2) - (3)].string), NULL);
 ;}
     break;
 
-  case 74:
+  case 75:
 
     {
 	menu_add_entry(NULL);
@@ -1867,14 +1877,14 @@ yyreduce:
 ;}
     break;
 
-  case 75:
+  case 76:
 
     {
 	(yyval.menu) = menu_add_menu();
 ;}
     break;
 
-  case 76:
+  case 77:
 
     {
 	if (zconf_endtoken((yyvsp[(1) - (1)].id), T_MENU, T_ENDMENU)) {
@@ -1884,7 +1894,7 @@ yyreduce:
 ;}
     break;
 
-  case 82:
+  case 83:
 
     {
 	printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string));
@@ -1892,7 +1902,7 @@ yyreduce:
 ;}
     break;
 
-  case 83:
+  case 84:
 
     {
 	menu_add_entry(NULL);
@@ -1901,14 +1911,14 @@ yyreduce:
 ;}
     break;
 
-  case 84:
+  case 85:
 
     {
 	menu_end_entry();
 ;}
     break;
 
-  case 85:
+  case 86:
 
     {
 	printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
@@ -1916,14 +1926,14 @@ yyreduce:
 ;}
     break;
 
-  case 86:
+  case 87:
 
     {
 	current_entry->help = (yyvsp[(2) - (2)].string);
 ;}
     break;
 
-  case 91:
+  case 92:
 
     {
 	menu_add_dep((yyvsp[(3) - (4)].expr));
@@ -1931,84 +1941,91 @@ yyreduce:
 ;}
     break;
 
-  case 93:
+  case 96:
+
+    {
+	menu_add_visibility((yyvsp[(2) - (2)].expr));
+;}
+    break;
+
+  case 98:
 
     {
 	menu_add_prompt(P_PROMPT, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].expr));
 ;}
     break;
 
-  case 96:
+  case 101:
 
     { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
     break;
 
-  case 97:
+  case 102:
 
     { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
     break;
 
-  case 98:
+  case 103:
 
     { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
     break;
 
-  case 101:
+  case 106:
 
     { (yyval.expr) = NULL; ;}
     break;
 
-  case 102:
+  case 107:
 
     { (yyval.expr) = (yyvsp[(2) - (2)].expr); ;}
     break;
 
-  case 103:
+  case 108:
 
     { (yyval.expr) = expr_alloc_symbol((yyvsp[(1) - (1)].symbol)); ;}
     break;
 
-  case 104:
+  case 109:
 
     { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
     break;
 
-  case 105:
+  case 110:
 
     { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
     break;
 
-  case 106:
+  case 111:
 
     { (yyval.expr) = (yyvsp[(2) - (3)].expr); ;}
     break;
 
-  case 107:
+  case 112:
 
     { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[(2) - (2)].expr)); ;}
     break;
 
-  case 108:
+  case 113:
 
     { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
     break;
 
-  case 109:
+  case 114:
 
     { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
     break;
 
-  case 110:
+  case 115:
 
     { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 0); free((yyvsp[(1) - (1)].string)); ;}
     break;
 
-  case 111:
+  case 116:
 
     { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), SYMBOL_CONST); free((yyvsp[(1) - (1)].string)); ;}
     break;
 
-  case 112:
+  case 117:
 
     { (yyval.string) = NULL; ;}
     break;
@@ -2278,6 +2295,7 @@ static const char *zconf_tokenname(int token)
 	case T_IF:		return "if";
 	case T_ENDIF:		return "endif";
 	case T_DEPENDS:		return "depends";
+	case T_VISIBLE:		return "visible";
 	}
 	return "<token>";
 }
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 3/5] Revert "i2c: Fix Kconfig dependencies"
  2010-11-04 18:51                 ` Mauro Carvalho Chehab
                                     ` (3 preceding siblings ...)
  2010-11-06 21:30                   ` [PATCH 2/5] kconfig: regen parser Arnaud Lacombe
@ 2010-11-06 21:30                   ` Arnaud Lacombe
  2010-11-06 21:30                   ` [PATCH 4/5] media/video: convert Kconfig to use the menu's `visible' keyword Arnaud Lacombe
  2010-11-06 21:30                   ` [PATCH 5/5] i2c/algos: " Arnaud Lacombe
  6 siblings, 0 replies; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-06 21:30 UTC (permalink / raw)
  To: linux-kbuild, linux-media
  Cc: Mauro Carvalho Chehab, Michal Marek, Arnaud Lacombe

This reverts commit 0a57274ea026c2b7670683947b6cc08b195148cf.

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 drivers/i2c/Kconfig       |    3 +--
 drivers/i2c/algos/Kconfig |   12 ------------
 2 files changed, 1 insertions(+), 14 deletions(-)

diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig
index b923074..30f06e9 100644
--- a/drivers/i2c/Kconfig
+++ b/drivers/i2c/Kconfig
@@ -75,8 +75,7 @@ config I2C_HELPER_AUTO
 	  In doubt, say Y.
 
 config I2C_SMBUS
-	tristate
-	prompt "SMBus-specific protocols" if !I2C_HELPER_AUTO
+	tristate "SMBus-specific protocols" if !I2C_HELPER_AUTO
 	help
 	  Say Y here if you want support for SMBus extensions to the I2C
 	  specification. At the moment, the only supported extension is
diff --git a/drivers/i2c/algos/Kconfig b/drivers/i2c/algos/Kconfig
index 3998dd6..7b2ce4a 100644
--- a/drivers/i2c/algos/Kconfig
+++ b/drivers/i2c/algos/Kconfig
@@ -15,15 +15,3 @@ config I2C_ALGOPCA
 	tristate "I2C PCA 9564 interfaces"
 
 endmenu
-
-# In automatic configuration mode, we still have to define the
-# symbols to avoid unmet dependencies.
-
-if I2C_HELPER_AUTO
-config I2C_ALGOBIT
-	tristate
-config I2C_ALGOPCF
-	tristate
-config I2C_ALGOPCA
-	tristate
-endif
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 4/5] media/video: convert Kconfig to use the menu's `visible' keyword
  2010-11-04 18:51                 ` Mauro Carvalho Chehab
                                     ` (4 preceding siblings ...)
  2010-11-06 21:30                   ` [PATCH 3/5] Revert "i2c: Fix Kconfig dependencies" Arnaud Lacombe
@ 2010-11-06 21:30                   ` Arnaud Lacombe
  2010-11-06 21:30                   ` [PATCH 5/5] i2c/algos: " Arnaud Lacombe
  6 siblings, 0 replies; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-06 21:30 UTC (permalink / raw)
  To: linux-kbuild, linux-media
  Cc: Mauro Carvalho Chehab, Michal Marek, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 drivers/media/video/Kconfig |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index ac16e81..6830d28 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -112,7 +112,7 @@ config VIDEO_IR_I2C
 #
 
 menu "Encoders/decoders and other helper chips"
-	depends on !VIDEO_HELPER_CHIPS_AUTO
+	visible if !VIDEO_HELPER_CHIPS_AUTO
 
 comment "Audio decoders"
 
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* [PATCH 5/5] i2c/algos: convert Kconfig to use the menu's `visible' keyword
  2010-11-04 18:51                 ` Mauro Carvalho Chehab
                                     ` (5 preceding siblings ...)
  2010-11-06 21:30                   ` [PATCH 4/5] media/video: convert Kconfig to use the menu's `visible' keyword Arnaud Lacombe
@ 2010-11-06 21:30                   ` Arnaud Lacombe
  6 siblings, 0 replies; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-06 21:30 UTC (permalink / raw)
  To: linux-kbuild, linux-media
  Cc: Mauro Carvalho Chehab, Michal Marek, Arnaud Lacombe

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
---
 drivers/i2c/algos/Kconfig |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/i2c/algos/Kconfig b/drivers/i2c/algos/Kconfig
index 7b2ce4a..f1cfe7e 100644
--- a/drivers/i2c/algos/Kconfig
+++ b/drivers/i2c/algos/Kconfig
@@ -3,7 +3,7 @@
 #
 
 menu "I2C Algorithms"
-	depends on !I2C_HELPER_AUTO
+	visible if !I2C_HELPER_AUTO
 
 config I2C_ALGOBIT
 	tristate "I2C bit-banging interfaces"
-- 
1.7.2.30.gc37d7.dirty


^ permalink raw reply related	[flat|nested] 39+ messages in thread

* Re: [PATCH 0/5] Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-06 21:30                   ` [PATCH 0/5] " Arnaud Lacombe
@ 2010-11-06 22:28                     ` Mauro Carvalho Chehab
  2010-11-09 17:32                     ` Mauro Carvalho Chehab
  1 sibling, 0 replies; 39+ messages in thread
From: Mauro Carvalho Chehab @ 2010-11-06 22:28 UTC (permalink / raw)
  To: Arnaud Lacombe; +Cc: linux-kbuild, linux-media, Michal Marek

Em 06-11-2010 17:30, Arnaud Lacombe escreveu:
> Hi,
> 
> This should do the job.
> 

Thank you, Arnaud! Good job!

I'm currently at the airport preparing to take an international flight
to return back home from LPC. I'll test your patch series tomorrow or more likely
during the beginning of the next week. There are probably few more drivers/media
Kconfig files that need to use "visible if" option to remove all warnings, 
but it will be a trivial fix.

Thanks!
Mauro

> A.
> 
> Arnaud Lacombe (5):
>   kconfig: add an option to determine a menu's visibility
>   kconfig: regen parser
>   Revert "i2c: Fix Kconfig dependencies"
>   media/video: convert Kconfig to use the menu's `visible' keyword
>   i2c/algos: convert Kconfig to use the menu's `visible' keyword
> 
>  drivers/i2c/Kconfig                  |    3 +-
>  drivers/i2c/algos/Kconfig            |   14 +-
>  drivers/media/video/Kconfig          |    2 +-
>  scripts/kconfig/expr.h               |    1 +
>  scripts/kconfig/lkc.h                |    1 +
>  scripts/kconfig/menu.c               |   11 +
>  scripts/kconfig/zconf.gperf          |    1 +
>  scripts/kconfig/zconf.hash.c_shipped |  122 ++++----
>  scripts/kconfig/zconf.tab.c_shipped  |  570 +++++++++++++++++----------------
>  scripts/kconfig/zconf.y              |   21 +-
>  10 files changed, 393 insertions(+), 353 deletions(-)
> 


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 0/5] Re: REGRESSION: Re: [GIT] kconfig rc fixes
  2010-11-06 21:30                   ` [PATCH 0/5] " Arnaud Lacombe
  2010-11-06 22:28                     ` Mauro Carvalho Chehab
@ 2010-11-09 17:32                     ` Mauro Carvalho Chehab
  1 sibling, 0 replies; 39+ messages in thread
From: Mauro Carvalho Chehab @ 2010-11-09 17:32 UTC (permalink / raw)
  To: Arnaud Lacombe, Michal Marek; +Cc: linux-kbuild, linux-media

Hi Arnaud,

Em 06-11-2010 19:30, Arnaud Lacombe escreveu:
> Hi,
> 
> This should do the job.
> 
> A.
> 
> Arnaud Lacombe (5):
>   kconfig: add an option to determine a menu's visibility
>   kconfig: regen parser
>   Revert "i2c: Fix Kconfig dependencies"
>   media/video: convert Kconfig to use the menu's `visible' keyword
>   i2c/algos: convert Kconfig to use the menu's `visible' keyword
> 
>  drivers/i2c/Kconfig                  |    3 +-
>  drivers/i2c/algos/Kconfig            |   14 +-
>  drivers/media/video/Kconfig          |    2 +-
>  scripts/kconfig/expr.h               |    1 +
>  scripts/kconfig/lkc.h                |    1 +
>  scripts/kconfig/menu.c               |   11 +
>  scripts/kconfig/zconf.gperf          |    1 +
>  scripts/kconfig/zconf.hash.c_shipped |  122 ++++----
>  scripts/kconfig/zconf.tab.c_shipped  |  570 +++++++++++++++++----------------
>  scripts/kconfig/zconf.y              |   21 +-
>  10 files changed, 393 insertions(+), 353 deletions(-)

Patches look OK to my eyes. One more patch is needed, in order to fix build
warnings when customise is enabled for tuners and/or for DVB frontends.
I'm enclosing the fix.

For this patch series:
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>

Michal,

Would you apply those fixes to your tree, or do you prefer if I send them via
my tree?

Thanks,
Mauro

---


commit f53404d53c026548e03444f7ed33e8027716425d
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
Date:   Tue Nov 9 15:29:05 2010 -0200

    [media] Fix Kconfig errors due to two visible menus
    
    Use the new visible Kconfig keyword to avoid producing error for two menus
    that are visible only if Tuner/frontend customise options are enabled.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

diff --git a/drivers/media/common/tuners/Kconfig b/drivers/media/common/tuners/Kconfig
index 2385e6c..78b0895 100644
--- a/drivers/media/common/tuners/Kconfig
+++ b/drivers/media/common/tuners/Kconfig
@@ -31,7 +31,7 @@ config MEDIA_TUNER
 	select MEDIA_TUNER_TDA9887 if !MEDIA_TUNER_CUSTOMISE
 	select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
 
-menuconfig MEDIA_TUNER_CUSTOMISE
+config MEDIA_TUNER_CUSTOMISE
 	bool "Customize analog and hybrid tuner modules to build"
 	depends on MEDIA_TUNER
 	default y if EMBEDDED
@@ -44,7 +44,8 @@ menuconfig MEDIA_TUNER_CUSTOMISE
 
 	  If unsure say N.
 
-if MEDIA_TUNER_CUSTOMISE
+menu "Customize TV tuners"
+	visible if MEDIA_TUNER_CUSTOMISE
 
 config MEDIA_TUNER_SIMPLE
 	tristate "Simple tuner support"
@@ -185,5 +186,4 @@ config MEDIA_TUNER_TDA18218
 	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  NXP TDA18218 silicon tuner driver.
-
-endif # MEDIA_TUNER_CUSTOMISE
+endmenu
diff --git a/drivers/media/dvb/frontends/Kconfig b/drivers/media/dvb/frontends/Kconfig
index e9062b0..96b2701 100644
--- a/drivers/media/dvb/frontends/Kconfig
+++ b/drivers/media/dvb/frontends/Kconfig
@@ -12,9 +12,8 @@ config DVB_FE_CUSTOMISE
 
 	  If unsure say N.
 
-if DVB_FE_CUSTOMISE
-
 menu "Customise DVB Frontends"
+	visible if DVB_FE_CUSTOMISE
 
 comment "Multistandard (satellite) frontends"
 	depends on DVB_CORE
@@ -619,5 +618,3 @@ config DVB_DUMMY_FE
 	tristate "Dummy frontend driver"
 	default n
 endmenu
-
-endif

^ permalink raw reply related	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-06 21:30                   ` [PATCH 1/5] kconfig: add an option to determine a menu's visibility Arnaud Lacombe
@ 2010-11-15 16:57                     ` Arnaud Lacombe
  2010-11-16 17:44                       ` Mauro Carvalho Chehab
  2010-11-25 17:06                     ` Arnaud Lacombe
  1 sibling, 1 reply; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-15 16:57 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Michal Marek; +Cc: linux-kbuild, linux-media

Hi all

On Sat, Nov 6, 2010 at 5:30 PM, Arnaud Lacombe <lacombar@gmail.com> wrote:
> This option is aimed to add the possibility to control a menu's visibility
> without adding dependency to the expression to all the submenu.
>
> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> ---
>  scripts/kconfig/expr.h      |    1 +
>  scripts/kconfig/lkc.h       |    1 +
>  scripts/kconfig/menu.c      |   11 +++++++++++
>  scripts/kconfig/zconf.gperf |    1 +
>  scripts/kconfig/zconf.y     |   21 ++++++++++++++++++---
>  5 files changed, 32 insertions(+), 3 deletions(-)
>
Michal, I don't think you commented on this ? Mauro, has it been
worked around differently ?

Thanks,
 - Arnaud

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-15 16:57                     ` Arnaud Lacombe
@ 2010-11-16 17:44                       ` Mauro Carvalho Chehab
  2010-11-16 21:41                         ` Arnaud Lacombe
  0 siblings, 1 reply; 39+ messages in thread
From: Mauro Carvalho Chehab @ 2010-11-16 17:44 UTC (permalink / raw)
  To: Arnaud Lacombe; +Cc: Michal Marek, linux-kbuild, linux-media

Em 15-11-2010 14:57, Arnaud Lacombe escreveu:
> Hi all
> 
> On Sat, Nov 6, 2010 at 5:30 PM, Arnaud Lacombe <lacombar@gmail.com> wrote:
>> This option is aimed to add the possibility to control a menu's visibility
>> without adding dependency to the expression to all the submenu.
>>
>> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
>> ---
>>  scripts/kconfig/expr.h      |    1 +
>>  scripts/kconfig/lkc.h       |    1 +
>>  scripts/kconfig/menu.c      |   11 +++++++++++
>>  scripts/kconfig/zconf.gperf |    1 +
>>  scripts/kconfig/zconf.y     |   21 ++++++++++++++++++---
>>  5 files changed, 32 insertions(+), 3 deletions(-)
>>
> Michal, I don't think you commented on this ? Mauro, has it been
> worked around differently ?

Those patches worked fine, and solved all problems we had (I just had to touch
on two other menus that are used, as I answered upstream).

I prefer if Michal could forward those patches upstream, so, there's my ack:

Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Tested-by: Mauro Carvalho Chehab <mchehab@redhat.com>

Cheers,
Mauro

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-16 17:44                       ` Mauro Carvalho Chehab
@ 2010-11-16 21:41                         ` Arnaud Lacombe
  2010-11-16 21:52                           ` Sam Ravnborg
  0 siblings, 1 reply; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-16 21:41 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Sam Ravnborg
  Cc: Michal Marek, linux-kbuild, linux-media

Hi,

On Tue, Nov 16, 2010 at 12:44 PM, Mauro Carvalho Chehab
<mchehab@redhat.com> wrote:
> Em 15-11-2010 14:57, Arnaud Lacombe escreveu:
>> Hi all
>>
>> On Sat, Nov 6, 2010 at 5:30 PM, Arnaud Lacombe <lacombar@gmail.com> wrote:
>>> This option is aimed to add the possibility to control a menu's visibility
>>> without adding dependency to the expression to all the submenu.
>>>
>>> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
>>> ---
>>>  scripts/kconfig/expr.h      |    1 +
>>>  scripts/kconfig/lkc.h       |    1 +
>>>  scripts/kconfig/menu.c      |   11 +++++++++++
>>>  scripts/kconfig/zconf.gperf |    1 +
>>>  scripts/kconfig/zconf.y     |   21 ++++++++++++++++++---
>>>  5 files changed, 32 insertions(+), 3 deletions(-)
>>>
>> Michal, I don't think you commented on this ? Mauro, has it been
>> worked around differently ?
>
> Those patches worked fine, and solved all problems we had (I just had to touch
> on two other menus that are used, as I answered upstream).
>
> I prefer if Michal could forward those patches upstream, so, there's my ack:
>
> Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
> Tested-by: Mauro Carvalho Chehab <mchehab@redhat.com>
>
It would seem Michal is not around lately, his only passage on
linux-kbuild@ is nearly a week old.

Sam, by any chance, could you comment on these patches so that we
could keep moving forward ?

Thanks,
 - Arnaud

ps: yes, I know, I did not upgrade the documentation.

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-16 21:41                         ` Arnaud Lacombe
@ 2010-11-16 21:52                           ` Sam Ravnborg
  0 siblings, 0 replies; 39+ messages in thread
From: Sam Ravnborg @ 2010-11-16 21:52 UTC (permalink / raw)
  To: Arnaud Lacombe
  Cc: Mauro Carvalho Chehab, Michal Marek, linux-kbuild, linux-media

On Tue, Nov 16, 2010 at 04:41:06PM -0500, Arnaud Lacombe wrote:
> Hi,
> 
> On Tue, Nov 16, 2010 at 12:44 PM, Mauro Carvalho Chehab
> <mchehab@redhat.com> wrote:
> > Em 15-11-2010 14:57, Arnaud Lacombe escreveu:
> >> Hi all
> >>
> >> On Sat, Nov 6, 2010 at 5:30 PM, Arnaud Lacombe <lacombar@gmail.com> wrote:
> >>> This option is aimed to add the possibility to control a menu's visibility
> >>> without adding dependency to the expression to all the submenu.
> >>>
> >>> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> >>> ---
> >>>  scripts/kconfig/expr.h      |    1 +
> >>>  scripts/kconfig/lkc.h       |    1 +
> >>>  scripts/kconfig/menu.c      |   11 +++++++++++
> >>>  scripts/kconfig/zconf.gperf |    1 +
> >>>  scripts/kconfig/zconf.y     |   21 ++++++++++++++++++---
> >>>  5 files changed, 32 insertions(+), 3 deletions(-)
> >>>
> >> Michal, I don't think you commented on this ? Mauro, has it been
> >> worked around differently ?
> >
> > Those patches worked fine, and solved all problems we had (I just had to touch
> > on two other menus that are used, as I answered upstream).
> >
> > I prefer if Michal could forward those patches upstream, so, there's my ack:
> >
> > Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
> > Tested-by: Mauro Carvalho Chehab <mchehab@redhat.com>
> >
> It would seem Michal is not around lately, his only passage on
> linux-kbuild@ is nearly a week old.
> 
> Sam, by any chance, could you comment on these patches so that we
> could keep moving forward ?
I will try to take a look in the weekend - daytime job keeps me busy as usual.

> 
> Thanks,
>  - Arnaud
> 
> ps: yes, I know, I did not upgrade the documentation.
And I will toast you for that when I look at the patches :-)

	Sam

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-06 21:30                   ` [PATCH 1/5] kconfig: add an option to determine a menu's visibility Arnaud Lacombe
  2010-11-15 16:57                     ` Arnaud Lacombe
@ 2010-11-25 17:06                     ` Arnaud Lacombe
  2010-11-25 19:09                       ` Sam Ravnborg
  2010-11-26 10:31                       ` Michal Marek
  1 sibling, 2 replies; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-25 17:06 UTC (permalink / raw)
  To: linux-kbuild, linux-media
  Cc: Mauro Carvalho Chehab, Michal Marek, Arnaud Lacombe

Hi folks,

On Sat, Nov 6, 2010 at 5:30 PM, Arnaud Lacombe <lacombar@gmail.com> wrote:
> This option is aimed to add the possibility to control a menu's visibility
> without adding dependency to the expression to all the submenu.
>
> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> ---
>  scripts/kconfig/expr.h      |    1 +
>  scripts/kconfig/lkc.h       |    1 +
>  scripts/kconfig/menu.c      |   11 +++++++++++
>  scripts/kconfig/zconf.gperf |    1 +
>  scripts/kconfig/zconf.y     |   21 ++++++++++++++++++---
>  5 files changed, 32 insertions(+), 3 deletions(-)
>
As there seem to be no interested from Michal to either, ACK, NACK, or
even comment this series, please let me withdraw these patches. If
this mail is not enough to void the patch, I hope to still be able to
withdraw my Signed-off-by from this particular series, and thus no
longer be able to certify the origin of the patches to prevent their
merge.

I guess lot of people will keep being pissed by these warnings.

I hope another solution will be found or someone will have fun wasting
time re-writting the patch.

Thanks,
 - Arnaud

ps: as we all live a world of consensus, I can still be convinced to
change my mind if interest arise.

> diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h
> index 184eb6a..e57826c 100644
> --- a/scripts/kconfig/expr.h
> +++ b/scripts/kconfig/expr.h
> @@ -164,6 +164,7 @@ struct menu {
>        struct menu *list;
>        struct symbol *sym;
>        struct property *prompt;
> +       struct expr *visibility;
>        struct expr *dep;
>        unsigned int flags;
>        char *help;
> diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
> index 753cdbd..3f7240d 100644
> --- a/scripts/kconfig/lkc.h
> +++ b/scripts/kconfig/lkc.h
> @@ -107,6 +107,7 @@ void menu_end_menu(void);
>  void menu_add_entry(struct symbol *sym);
>  void menu_end_entry(void);
>  void menu_add_dep(struct expr *dep);
> +void menu_add_visibility(struct expr *dep);
>  struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
>  struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
>  void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
> diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
> index 7e83aef..b9d9aa1 100644
> --- a/scripts/kconfig/menu.c
> +++ b/scripts/kconfig/menu.c
> @@ -152,6 +152,12 @@ struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr
>        return menu_add_prop(type, prompt, NULL, dep);
>  }
>
> +void menu_add_visibility(struct expr *expr)
> +{
> +       current_entry->visibility = expr_alloc_and(current_entry->visibility,
> +           expr);
> +}
> +
>  void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep)
>  {
>        menu_add_prop(type, NULL, expr, dep);
> @@ -410,6 +416,11 @@ bool menu_is_visible(struct menu *menu)
>        if (!menu->prompt)
>                return false;
>
> +       if (menu->visibility) {
> +               if (expr_calc_value(menu->visibility) == no)
> +                       return no;
> +       }
> +
>        sym = menu->sym;
>        if (sym) {
>                sym_calc_value(sym);
> diff --git a/scripts/kconfig/zconf.gperf b/scripts/kconfig/zconf.gperf
> index d8bc742..c9e690e 100644
> --- a/scripts/kconfig/zconf.gperf
> +++ b/scripts/kconfig/zconf.gperf
> @@ -38,6 +38,7 @@ hex,          T_TYPE,         TF_COMMAND, S_HEX
>  string,                T_TYPE,         TF_COMMAND, S_STRING
>  select,                T_SELECT,       TF_COMMAND
>  range,         T_RANGE,        TF_COMMAND
> +visible,       T_VISIBLE,      TF_COMMAND
>  option,                T_OPTION,       TF_COMMAND
>  on,            T_ON,           TF_PARAM
>  modules,       T_OPT_MODULES,  TF_OPTION
> diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
> index 2abd3c7..49fb4ab 100644
> --- a/scripts/kconfig/zconf.y
> +++ b/scripts/kconfig/zconf.y
> @@ -36,7 +36,7 @@ static struct menu *current_menu, *current_entry;
>  #define YYERROR_VERBOSE
>  #endif
>  %}
> -%expect 28
> +%expect 30
>
>  %union
>  {
> @@ -68,6 +68,7 @@ static struct menu *current_menu, *current_entry;
>  %token <id>T_DEFAULT
>  %token <id>T_SELECT
>  %token <id>T_RANGE
> +%token <id>T_VISIBLE
>  %token <id>T_OPTION
>  %token <id>T_ON
>  %token <string> T_WORD
> @@ -123,7 +124,7 @@ stmt_list:
>  ;
>
>  option_name:
> -       T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT
> +       T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT | T_VISIBLE
>  ;
>
>  common_stmt:
> @@ -359,7 +360,7 @@ menu: T_MENU prompt T_EOL
>        printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
>  };
>
> -menu_entry: menu depends_list
> +menu_entry: menu visibility_list depends_list
>  {
>        $$ = menu_add_menu();
>  };
> @@ -430,6 +431,19 @@ depends: T_DEPENDS T_ON expr T_EOL
>        printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
>  };
>
> +/* visibility option */
> +
> +visibility_list:
> +         /* empty */
> +       | visibility_list visible
> +       | visibility_list T_EOL
> +;
> +
> +visible: T_VISIBLE if_expr
> +{
> +       menu_add_visibility($2);
> +};
> +
>  /* prompt statement */
>
>  prompt_stmt_opt:
> @@ -526,6 +540,7 @@ static const char *zconf_tokenname(int token)
>        case T_IF:              return "if";
>        case T_ENDIF:           return "endif";
>        case T_DEPENDS:         return "depends";
> +       case T_VISIBLE:         return "visible";
>        }
>        return "<token>";
>  }
> --
> 1.7.2.30.gc37d7.dirty
>
>

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-25 17:06                     ` Arnaud Lacombe
@ 2010-11-25 19:09                       ` Sam Ravnborg
  2010-11-26 10:31                       ` Michal Marek
  1 sibling, 0 replies; 39+ messages in thread
From: Sam Ravnborg @ 2010-11-25 19:09 UTC (permalink / raw)
  To: Arnaud Lacombe
  Cc: linux-kbuild, linux-media, Mauro Carvalho Chehab, Michal Marek

On Thu, Nov 25, 2010 at 12:06:46PM -0500, Arnaud Lacombe wrote:
> Hi folks,
> 
> On Sat, Nov 6, 2010 at 5:30 PM, Arnaud Lacombe <lacombar@gmail.com> wrote:
> > This option is aimed to add the possibility to control a menu's visibility
> > without adding dependency to the expression to all the submenu.
> >
> > Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> > ---
> >  scripts/kconfig/expr.h      |    1 +
> >  scripts/kconfig/lkc.h       |    1 +
> >  scripts/kconfig/menu.c      |   11 +++++++++++
> >  scripts/kconfig/zconf.gperf |    1 +
> >  scripts/kconfig/zconf.y     |   21 ++++++++++++++++++---
> >  5 files changed, 32 insertions(+), 3 deletions(-)
> >
> As there seem to be no interested from Michal to either, ACK, NACK, or

Hi Arnaud.
I have these sitting in my TODO pile.
But I have other things that I need to do first and I expect
these other things to take a couple of weeks.
[Not Linux related - just busy at my day-job/night-job]

	Sam

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-25 17:06                     ` Arnaud Lacombe
  2010-11-25 19:09                       ` Sam Ravnborg
@ 2010-11-26 10:31                       ` Michal Marek
  2010-11-26 16:15                         ` Michal Marek
  1 sibling, 1 reply; 39+ messages in thread
From: Michal Marek @ 2010-11-26 10:31 UTC (permalink / raw)
  To: Arnaud Lacombe; +Cc: linux-kbuild, linux-media, Mauro Carvalho Chehab

On 25.11.2010 18:06, Arnaud Lacombe wrote:
> Hi folks,
> 
> On Sat, Nov 6, 2010 at 5:30 PM, Arnaud Lacombe <lacombar@gmail.com> wrote:
>> This option is aimed to add the possibility to control a menu's visibility
>> without adding dependency to the expression to all the submenu.
>>
>> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
>> ---
>>  scripts/kconfig/expr.h      |    1 +
>>  scripts/kconfig/lkc.h       |    1 +
>>  scripts/kconfig/menu.c      |   11 +++++++++++
>>  scripts/kconfig/zconf.gperf |    1 +
>>  scripts/kconfig/zconf.y     |   21 ++++++++++++++++++---
>>  5 files changed, 32 insertions(+), 3 deletions(-)
>>
> As there seem to be no interested from Michal to either, ACK, NACK, or
> even comment this series, please let me withdraw these patches. If
> this mail is not enough to void the patch, I hope to still be able to
> withdraw my Signed-off-by from this particular series, and thus no
> longer be able to certify the origin of the patches to prevent their
> merge.

Hi Arnaud,

I'm sorry, I was sick for longer time and am now going through the
patches that accumulated during that time. I understand your
frustration, but the fact that I commented / applied some other patches
yesterday and not this one does not mean that I'm ignoring it. Please
accept my apologies, I'm looking at your patch right now...

Michal

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-26 10:31                       ` Michal Marek
@ 2010-11-26 16:15                         ` Michal Marek
  2010-11-26 16:17                           ` Randy Dunlap
                                             ` (3 more replies)
  0 siblings, 4 replies; 39+ messages in thread
From: Michal Marek @ 2010-11-26 16:15 UTC (permalink / raw)
  To: Arnaud Lacombe; +Cc: linux-kbuild, linux-media, Mauro Carvalho Chehab

On Fri, Nov 26, 2010 at 11:31:16AM +0100, Michal Marek wrote:
> On 25.11.2010 18:06, Arnaud Lacombe wrote:
> > Hi folks,
> > 
> > On Sat, Nov 6, 2010 at 5:30 PM, Arnaud Lacombe <lacombar@gmail.com> wrote:
> >> This option is aimed to add the possibility to control a menu's visibility
> >> without adding dependency to the expression to all the submenu.
> >>
> >> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> >> ---
> >>  scripts/kconfig/expr.h      |    1 +
> >>  scripts/kconfig/lkc.h       |    1 +
> >>  scripts/kconfig/menu.c      |   11 +++++++++++
> >>  scripts/kconfig/zconf.gperf |    1 +
> >>  scripts/kconfig/zconf.y     |   21 ++++++++++++++++++---
> >>  5 files changed, 32 insertions(+), 3 deletions(-)
> >>
> > As there seem to be no interested from Michal to either, ACK, NACK, or
> > even comment this series, please let me withdraw these patches. If
> > this mail is not enough to void the patch, I hope to still be able to
> > withdraw my Signed-off-by from this particular series, and thus no
> > longer be able to certify the origin of the patches to prevent their
> > merge.
> 
> Hi Arnaud,
> 
> I'm sorry, I was sick for longer time and am now going through the
> patches that accumulated during that time. I understand your
> frustration, but the fact that I commented / applied some other patches
> yesterday and not this one does not mean that I'm ignoring it. Please
> accept my apologies, I'm looking at your patch right now...

So the patches look OK to me, I added your patches to
kbuild-2.6.git#menu-visibility and merged the branch to for-next. The
new syntax should be documented in
Documentation/kbuild/kconfig-language.txt, below is a first attempt at
it. If the patches work fine in linux-next _and_ you give me permission
to push them to Linus, I'll move them to rc-fixes and send a pull
request.

Michal


Subject: [PATCH] kconfig: Document the new "visible if" syntax

Signed-off-by: Michal Marek <mmarek@suse.cz>

diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt
index 2fe93ca..2522cca 100644
--- a/Documentation/kbuild/kconfig-language.txt
+++ b/Documentation/kbuild/kconfig-language.txt
@@ -114,6 +114,13 @@ applicable everywhere (see syntax).
 	the illegal configurations all over.
 	kconfig should one day warn about such things.
 
+- limiting menu display: "visible if" <expr>
+  This attribute is only applicable to menu blocks, if the condition is
+  false, the menu block is not displayed to the user (the symbols
+  contained there can still be selected by other symbols, though). It is
+  similar to a conditional "prompt" attribude for individual menu
+  entries.
+
 - numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
   This allows to limit the range of possible input values for int
   and hex symbols. The user can only input a value which is larger than
@@ -300,7 +307,8 @@ menu:
 	"endmenu"
 
 This defines a menu block, see "Menu structure" above for more
-information. The only possible options are dependencies.
+information. The only possible options are dependencies and "visible"
+attributes.
 
 if:
 

^ permalink raw reply related	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-26 16:15                         ` Michal Marek
@ 2010-11-26 16:17                           ` Randy Dunlap
  2010-11-26 16:41                             ` Arnaud Lacombe
  2011-04-28 17:38                             ` Randy Dunlap
  2010-11-26 16:41                           ` Arnaud Lacombe
                                             ` (2 subsequent siblings)
  3 siblings, 2 replies; 39+ messages in thread
From: Randy Dunlap @ 2010-11-26 16:17 UTC (permalink / raw)
  To: Michal Marek
  Cc: Arnaud Lacombe, linux-kbuild, linux-media, Mauro Carvalho Chehab

On Fri, 26 Nov 2010 17:15:11 +0100 Michal Marek wrote:

> On Fri, Nov 26, 2010 at 11:31:16AM +0100, Michal Marek wrote:
> > On 25.11.2010 18:06, Arnaud Lacombe wrote:
> > > Hi folks,
> > > 
> > > On Sat, Nov 6, 2010 at 5:30 PM, Arnaud Lacombe <lacombar@gmail.com> wrote:
> > >> This option is aimed to add the possibility to control a menu's visibility
> > >> without adding dependency to the expression to all the submenu.
> > >>
> > >> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> > >> ---
> > >>  scripts/kconfig/expr.h      |    1 +
> > >>  scripts/kconfig/lkc.h       |    1 +
> > >>  scripts/kconfig/menu.c      |   11 +++++++++++
> > >>  scripts/kconfig/zconf.gperf |    1 +
> > >>  scripts/kconfig/zconf.y     |   21 ++++++++++++++++++---
> > >>  5 files changed, 32 insertions(+), 3 deletions(-)
> > >>
> > > As there seem to be no interested from Michal to either, ACK, NACK, or
> > > even comment this series, please let me withdraw these patches. If
> > > this mail is not enough to void the patch, I hope to still be able to
> > > withdraw my Signed-off-by from this particular series, and thus no
> > > longer be able to certify the origin of the patches to prevent their
> > > merge.
> > 
> > Hi Arnaud,
> > 
> > I'm sorry, I was sick for longer time and am now going through the
> > patches that accumulated during that time. I understand your
> > frustration, but the fact that I commented / applied some other patches
> > yesterday and not this one does not mean that I'm ignoring it. Please
> > accept my apologies, I'm looking at your patch right now...
> 
> So the patches look OK to me, I added your patches to
> kbuild-2.6.git#menu-visibility and merged the branch to for-next. The
> new syntax should be documented in
> Documentation/kbuild/kconfig-language.txt, below is a first attempt at
> it. If the patches work fine in linux-next _and_ you give me permission
> to push them to Linus, I'll move them to rc-fixes and send a pull
> request.
> 
> Michal
> 
> 
> Subject: [PATCH] kconfig: Document the new "visible if" syntax
> 
> Signed-off-by: Michal Marek <mmarek@suse.cz>
> 
> diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt
> index 2fe93ca..2522cca 100644
> --- a/Documentation/kbuild/kconfig-language.txt
> +++ b/Documentation/kbuild/kconfig-language.txt
> @@ -114,6 +114,13 @@ applicable everywhere (see syntax).
>  	the illegal configurations all over.
>  	kconfig should one day warn about such things.
>  
> +- limiting menu display: "visible if" <expr>
> +  This attribute is only applicable to menu blocks, if the condition is
> +  false, the menu block is not displayed to the user (the symbols
> +  contained there can still be selected by other symbols, though). It is
> +  similar to a conditional "prompt" attribude for individual menu
> +  entries.
> +

Default value of "visible" is true ??

>  - numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
>    This allows to limit the range of possible input values for int
>    and hex symbols. The user can only input a value which is larger than
> @@ -300,7 +307,8 @@ menu:
>  	"endmenu"
>  
>  This defines a menu block, see "Menu structure" above for more
> -information. The only possible options are dependencies.
> +information. The only possible options are dependencies and "visible"
> +attributes.
>  
>  if:
>  
> --


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-26 16:17                           ` Randy Dunlap
@ 2010-11-26 16:41                             ` Arnaud Lacombe
  2011-04-28 17:38                             ` Randy Dunlap
  1 sibling, 0 replies; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-26 16:41 UTC (permalink / raw)
  To: Randy Dunlap
  Cc: Michal Marek, linux-kbuild, linux-media, Mauro Carvalho Chehab

Hi,

On Fri, Nov 26, 2010 at 11:17 AM, Randy Dunlap <rdunlap@xenotime.net> wrote:
> Default value of "visible" is true ??
>
yes, but implicitly... I think I should made this explicit.

 - Arnaud

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-26 16:15                         ` Michal Marek
  2010-11-26 16:17                           ` Randy Dunlap
@ 2010-11-26 16:41                           ` Arnaud Lacombe
  2010-11-26 16:54                           ` Arnaud Lacombe
  2010-11-26 17:19                           ` Mauro Carvalho Chehab
  3 siblings, 0 replies; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-26 16:41 UTC (permalink / raw)
  To: Michal Marek; +Cc: linux-kbuild, linux-media, Mauro Carvalho Chehab

Hi,

On Fri, Nov 26, 2010 at 11:15 AM, Michal Marek <mmarek@suse.cz> wrote:
> So the patches look OK to me, I added your patches to
> kbuild-2.6.git#menu-visibility and merged the branch to for-next. The
> new syntax should be documented in
> Documentation/kbuild/kconfig-language.txt, below is a first attempt at
> it. If the patches work fine in linux-next _and_ you give me permission
> to push them to Linus, I'll move them to rc-fixes and send a pull
> request.
you've got it :).

Thanks,
 - Arnaud

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-26 16:15                         ` Michal Marek
  2010-11-26 16:17                           ` Randy Dunlap
  2010-11-26 16:41                           ` Arnaud Lacombe
@ 2010-11-26 16:54                           ` Arnaud Lacombe
  2010-11-26 17:19                           ` Mauro Carvalho Chehab
  3 siblings, 0 replies; 39+ messages in thread
From: Arnaud Lacombe @ 2010-11-26 16:54 UTC (permalink / raw)
  To: Michal Marek; +Cc: linux-kbuild, linux-media, Mauro Carvalho Chehab

Hi,

On Fri, Nov 26, 2010 at 11:15 AM, Michal Marek <mmarek@suse.cz> wrote:
> So the patches look OK to me, I added your patches to
> kbuild-2.6.git#menu-visibility and merged the branch to for-next. The
> new syntax should be documented in
> Documentation/kbuild/kconfig-language.txt, below is a first attempt at
> it. If the patches work fine in linux-next _and_ you give me permission
> to push them to Linus, I'll move them to rc-fixes and send a pull
> request.
>
last nits, could you maybe use commits from Mauro's branch at:

git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-next.git
kconfig_fixes

They contains one more menu fix and his "Acked" tag.

> Subject: [PATCH] kconfig: Document the new "visible if" syntax
>
> Signed-off-by: Michal Marek <mmarek@suse.cz>
>
> diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt
> index 2fe93ca..2522cca 100644
> --- a/Documentation/kbuild/kconfig-language.txt
> +++ b/Documentation/kbuild/kconfig-language.txt
> @@ -114,6 +114,13 @@ applicable everywhere (see syntax).
>        the illegal configurations all over.
>        kconfig should one day warn about such things.
>
> +- limiting menu display: "visible if" <expr>
> +  This attribute is only applicable to menu blocks, if the condition is
> +  false, the menu block is not displayed to the user (the symbols
> +  contained there can still be selected by other symbols, though). It is
> +  similar to a conditional "prompt" attribude for individual menu
> +  entries.
> +
>  - numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
>   This allows to limit the range of possible input values for int
>   and hex symbols. The user can only input a value which is larger than
> @@ -300,7 +307,8 @@ menu:
>        "endmenu"
>
>  This defines a menu block, see "Menu structure" above for more
> -information. The only possible options are dependencies.
> +information. The only possible options are dependencies and "visible"
> +attributes.
>
Thanks for having done that part!

regards,
 - Arnaud

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-26 16:15                         ` Michal Marek
                                             ` (2 preceding siblings ...)
  2010-11-26 16:54                           ` Arnaud Lacombe
@ 2010-11-26 17:19                           ` Mauro Carvalho Chehab
  3 siblings, 0 replies; 39+ messages in thread
From: Mauro Carvalho Chehab @ 2010-11-26 17:19 UTC (permalink / raw)
  To: Michal Marek; +Cc: Arnaud Lacombe, linux-kbuild, linux-media

Em 26-11-2010 14:15, Michal Marek escreveu:
> On Fri, Nov 26, 2010 at 11:31:16AM +0100, Michal Marek wrote:
>> On 25.11.2010 18:06, Arnaud Lacombe wrote:
>>> Hi folks,
>>>
>>> On Sat, Nov 6, 2010 at 5:30 PM, Arnaud Lacombe <lacombar@gmail.com> wrote:
>>>> This option is aimed to add the possibility to control a menu's visibility
>>>> without adding dependency to the expression to all the submenu.
>>>>
>>>> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
>>>> ---
>>>>  scripts/kconfig/expr.h      |    1 +
>>>>  scripts/kconfig/lkc.h       |    1 +
>>>>  scripts/kconfig/menu.c      |   11 +++++++++++
>>>>  scripts/kconfig/zconf.gperf |    1 +
>>>>  scripts/kconfig/zconf.y     |   21 ++++++++++++++++++---
>>>>  5 files changed, 32 insertions(+), 3 deletions(-)
>>>>
>>> As there seem to be no interested from Michal to either, ACK, NACK, or
>>> even comment this series, please let me withdraw these patches. If
>>> this mail is not enough to void the patch, I hope to still be able to
>>> withdraw my Signed-off-by from this particular series, and thus no
>>> longer be able to certify the origin of the patches to prevent their
>>> merge.
>>
>> Hi Arnaud,
>>
>> I'm sorry, I was sick for longer time and am now going through the
>> patches that accumulated during that time. I understand your
>> frustration, but the fact that I commented / applied some other patches
>> yesterday and not this one does not mean that I'm ignoring it. Please
>> accept my apologies, I'm looking at your patch right now...
> 
> So the patches look OK to me, I added your patches to
> kbuild-2.6.git#menu-visibility and merged the branch to for-next. The
> new syntax should be documented in
> Documentation/kbuild/kconfig-language.txt, below is a first attempt at
> it. If the patches work fine in linux-next _and_ you give me permission
> to push them to Linus, I'll move them to rc-fixes and send a pull
> request.
> 
> Michal
> 
> 
> Subject: [PATCH] kconfig: Document the new "visible if" syntax
> 
> Signed-off-by: Michal Marek <mmarek@suse.cz>

Seems ok to me. I would just add a note, as reminded by Randy, that
visible is the default. Anyway,

Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>

> 
> diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt
> index 2fe93ca..2522cca 100644
> --- a/Documentation/kbuild/kconfig-language.txt
> +++ b/Documentation/kbuild/kconfig-language.txt
> @@ -114,6 +114,13 @@ applicable everywhere (see syntax).
>  	the illegal configurations all over.
>  	kconfig should one day warn about such things.
>  
> +- limiting menu display: "visible if" <expr>
> +  This attribute is only applicable to menu blocks, if the condition is
> +  false, the menu block is not displayed to the user (the symbols
> +  contained there can still be selected by other symbols, though). It is
> +  similar to a conditional "prompt" attribude for individual menu
> +  entries.
> +
>  - numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
>    This allows to limit the range of possible input values for int
>    and hex symbols. The user can only input a value which is larger than
> @@ -300,7 +307,8 @@ menu:
>  	"endmenu"
>  
>  This defines a menu block, see "Menu structure" above for more
> -information. The only possible options are dependencies.
> +information. The only possible options are dependencies and "visible"
> +attributes.
>  
>  if:
>  


^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2010-11-26 16:17                           ` Randy Dunlap
  2010-11-26 16:41                             ` Arnaud Lacombe
@ 2011-04-28 17:38                             ` Randy Dunlap
  2011-05-02 15:33                               ` Michal Marek
  1 sibling, 1 reply; 39+ messages in thread
From: Randy Dunlap @ 2011-04-28 17:38 UTC (permalink / raw)
  To: Michal Marek, Arnaud Lacombe
  Cc: linux-kbuild, linux-media, Mauro Carvalho Chehab

On Fri, 26 Nov 2010 08:17:36 -0800 Randy Dunlap wrote:

> On Fri, 26 Nov 2010 17:15:11 +0100 Michal Marek wrote:
> 
> > On Fri, Nov 26, 2010 at 11:31:16AM +0100, Michal Marek wrote:
> > > On 25.11.2010 18:06, Arnaud Lacombe wrote:
> > > > Hi folks,
> > > > 
> > > > On Sat, Nov 6, 2010 at 5:30 PM, Arnaud Lacombe <lacombar@gmail.com> wrote:
> > > >> This option is aimed to add the possibility to control a menu's visibility
> > > >> without adding dependency to the expression to all the submenu.
> > > >>
> > > >> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> > > >> ---
> > > >>  scripts/kconfig/expr.h      |    1 +
> > > >>  scripts/kconfig/lkc.h       |    1 +
> > > >>  scripts/kconfig/menu.c      |   11 +++++++++++
> > > >>  scripts/kconfig/zconf.gperf |    1 +
> > > >>  scripts/kconfig/zconf.y     |   21 ++++++++++++++++++---
> > > >>  5 files changed, 32 insertions(+), 3 deletions(-)
> > > >>
> > > > As there seem to be no interested from Michal to either, ACK, NACK, or
> > > > even comment this series, please let me withdraw these patches. If
> > > > this mail is not enough to void the patch, I hope to still be able to
> > > > withdraw my Signed-off-by from this particular series, and thus no
> > > > longer be able to certify the origin of the patches to prevent their
> > > > merge.
> > > 
> > > Hi Arnaud,
> > > 
> > > I'm sorry, I was sick for longer time and am now going through the
> > > patches that accumulated during that time. I understand your
> > > frustration, but the fact that I commented / applied some other patches
> > > yesterday and not this one does not mean that I'm ignoring it. Please
> > > accept my apologies, I'm looking at your patch right now...
> > 
> > So the patches look OK to me, I added your patches to
> > kbuild-2.6.git#menu-visibility and merged the branch to for-next. The
> > new syntax should be documented in
> > Documentation/kbuild/kconfig-language.txt, below is a first attempt at
> > it. If the patches work fine in linux-next _and_ you give me permission
> > to push them to Linus, I'll move them to rc-fixes and send a pull
> > request.
> > 
> > Michal
> > 
> > 
> > Subject: [PATCH] kconfig: Document the new "visible if" syntax

Hi,

Can we get this kconfig-language.txt patch added to the kernel source tree, please?


> > Signed-off-by: Michal Marek <mmarek@suse.cz>
> > 
> > diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt
> > index 2fe93ca..2522cca 100644
> > --- a/Documentation/kbuild/kconfig-language.txt
> > +++ b/Documentation/kbuild/kconfig-language.txt
> > @@ -114,6 +114,13 @@ applicable everywhere (see syntax).
> >  	the illegal configurations all over.
> >  	kconfig should one day warn about such things.
> >  
> > +- limiting menu display: "visible if" <expr>
> > +  This attribute is only applicable to menu blocks, if the condition is
> > +  false, the menu block is not displayed to the user (the symbols
> > +  contained there can still be selected by other symbols, though). It is
> > +  similar to a conditional "prompt" attribude for individual menu
> > +  entries.
> > +
> 
> Default value of "visible" is true ??
> 
> >  - numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
> >    This allows to limit the range of possible input values for int
> >    and hex symbols. The user can only input a value which is larger than
> > @@ -300,7 +307,8 @@ menu:
> >  	"endmenu"
> >  
> >  This defines a menu block, see "Menu structure" above for more
> > -information. The only possible options are dependencies.
> > +information. The only possible options are dependencies and "visible"
> > +attributes.
> >  
> >  if:
> >  
> > --


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

^ permalink raw reply	[flat|nested] 39+ messages in thread

* Re: [PATCH 1/5] kconfig: add an option to determine a menu's visibility
  2011-04-28 17:38                             ` Randy Dunlap
@ 2011-05-02 15:33                               ` Michal Marek
  0 siblings, 0 replies; 39+ messages in thread
From: Michal Marek @ 2011-05-02 15:33 UTC (permalink / raw)
  To: Randy Dunlap
  Cc: Arnaud Lacombe, linux-kbuild, linux-media, Mauro Carvalho Chehab

On Thu, Apr 28, 2011 at 10:38:02AM -0700, Randy Dunlap wrote:
> On Fri, 26 Nov 2010 08:17:36 -0800 Randy Dunlap wrote:
> 
> > On Fri, 26 Nov 2010 17:15:11 +0100 Michal Marek wrote:
> > > Subject: [PATCH] kconfig: Document the new "visible if" syntax
> 
> Hi,
> 
> Can we get this kconfig-language.txt patch added to the kernel source tree, please?

Thanks for the reminder, I pushed it to kbuild-2.6.git#kconfig now.

Michal
> 
> 
> > > Signed-off-by: Michal Marek <mmarek@suse.cz>
> > > 
> > > diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt
> > > index 2fe93ca..2522cca 100644
> > > --- a/Documentation/kbuild/kconfig-language.txt
> > > +++ b/Documentation/kbuild/kconfig-language.txt
> > > @@ -114,6 +114,13 @@ applicable everywhere (see syntax).
> > >  	the illegal configurations all over.
> > >  	kconfig should one day warn about such things.
> > >  
> > > +- limiting menu display: "visible if" <expr>
> > > +  This attribute is only applicable to menu blocks, if the condition is
> > > +  false, the menu block is not displayed to the user (the symbols
> > > +  contained there can still be selected by other symbols, though). It is
> > > +  similar to a conditional "prompt" attribude for individual menu
> > > +  entries.
> > > +
> > 
> > Default value of "visible" is true ??
> > 
> > >  - numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
> > >    This allows to limit the range of possible input values for int
> > >    and hex symbols. The user can only input a value which is larger than
> > > @@ -300,7 +307,8 @@ menu:
> > >  	"endmenu"
> > >  
> > >  This defines a menu block, see "Menu structure" above for more
> > > -information. The only possible options are dependencies.
> > > +information. The only possible options are dependencies and "visible"
> > > +attributes.
> > >  
> > >  if:
> > >  
> > > --

^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2011-05-02 15:33 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-09 22:40 [GIT] kconfig rc fixes Michal Marek
2010-11-03 22:29 ` REGRESSION: " Mauro Carvalho Chehab
2010-11-03 22:47   ` Michal Marek
2010-11-03 23:02     ` Mauro Carvalho Chehab
2010-11-04  2:31   ` Arnaud Lacombe
2010-11-04  3:19     ` Mauro Carvalho Chehab
2010-11-04  4:02       ` Arnaud Lacombe
2010-11-04  4:15       ` Arnaud Lacombe
2010-11-04 11:10         ` Mauro Carvalho Chehab
2010-11-04 17:19           ` Randy Dunlap
2010-11-04 18:11             ` Mauro Carvalho Chehab
2010-11-04 18:32               ` Arnaud Lacombe
2010-11-04 18:51                 ` Mauro Carvalho Chehab
2010-11-05 12:02                   ` Jean Delvare
2010-11-06 21:30                   ` [PATCH 0/5] " Arnaud Lacombe
2010-11-06 22:28                     ` Mauro Carvalho Chehab
2010-11-09 17:32                     ` Mauro Carvalho Chehab
2010-11-06 21:30                   ` [PATCH 1/5] kconfig: add an option to determine a menu's visibility Arnaud Lacombe
2010-11-15 16:57                     ` Arnaud Lacombe
2010-11-16 17:44                       ` Mauro Carvalho Chehab
2010-11-16 21:41                         ` Arnaud Lacombe
2010-11-16 21:52                           ` Sam Ravnborg
2010-11-25 17:06                     ` Arnaud Lacombe
2010-11-25 19:09                       ` Sam Ravnborg
2010-11-26 10:31                       ` Michal Marek
2010-11-26 16:15                         ` Michal Marek
2010-11-26 16:17                           ` Randy Dunlap
2010-11-26 16:41                             ` Arnaud Lacombe
2011-04-28 17:38                             ` Randy Dunlap
2011-05-02 15:33                               ` Michal Marek
2010-11-26 16:41                           ` Arnaud Lacombe
2010-11-26 16:54                           ` Arnaud Lacombe
2010-11-26 17:19                           ` Mauro Carvalho Chehab
2010-11-06 21:30                   ` [PATCH 2/5] kconfig: regen parser Arnaud Lacombe
2010-11-06 21:30                   ` [PATCH 3/5] Revert "i2c: Fix Kconfig dependencies" Arnaud Lacombe
2010-11-06 21:30                   ` [PATCH 4/5] media/video: convert Kconfig to use the menu's `visible' keyword Arnaud Lacombe
2010-11-06 21:30                   ` [PATCH 5/5] i2c/algos: " Arnaud Lacombe
2010-11-04 18:34   ` REGRESSION: Re: [GIT] kconfig rc fixes Arnaud Lacombe
2010-11-04 18:43     ` Mauro Carvalho Chehab

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.