2010-11-03 22:29:58

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: REGRESSION: Re: [GIT] kconfig rc fixes

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)


2010-11-03 22:47:23

by Michal Marek

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

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

2010-11-03 23:02:18

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

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.

2010-11-04 02:31:45

by Arnaud Lacombe

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

Hi,

On Wed, Nov 3, 2010 at 6:29 PM, Mauro Carvalho Chehab
<[email protected]> 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.

2010-11-04 03:19:21

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

Em 03-11-2010 22:31, Arnaud Lacombe escreveu:
> Hi,
>
> On Wed, Nov 3, 2010 at 6:29 PM, Mauro Carvalho Chehab
> <[email protected]> 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.

2010-11-04 04:02:51

by Arnaud Lacombe

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

Hi,

On Wed, Nov 3, 2010 at 11:19 PM, Mauro Carvalho Chehab
<[email protected]> 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

2010-11-04 04:15:16

by Arnaud Lacombe

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

Hi,

On Wed, Nov 3, 2010 at 11:19 PM, Mauro Carvalho Chehab
<[email protected]> wrote:
> Em 03-11-2010 22:31, Arnaud Lacombe escreveu:
>> Hi,
>>
>> On Wed, Nov 3, 2010 at 6:29 PM, Mauro Carvalho Chehab
>> <[email protected]> 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

2010-11-04 11:10:59

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

Em 04-11-2010 00:15, Arnaud Lacombe escreveu:
> Hi,
>
> On Wed, Nov 3, 2010 at 11:19 PM, Mauro Carvalho Chehab
> <[email protected]> wrote:
>> Em 03-11-2010 22:31, Arnaud Lacombe escreveu:
>>> Hi,
>>>
>>> On Wed, Nov 3, 2010 at 6:29 PM, Mauro Carvalho Chehab
>>> <[email protected]> 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 <[email protected]>
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"

2010-11-04 17:20:47

by Randy Dunlap

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

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 <[email protected]>

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 <[email protected]>
---
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"

2010-11-04 18:11:53

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

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.

2010-11-04 18:32:10

by Arnaud Lacombe

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

Hi,

On Thu, Nov 4, 2010 at 2:11 PM, Mauro Carvalho Chehab
<[email protected]> 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

2010-11-04 18:34:09

by Arnaud Lacombe

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

Hi,

On Wed, Nov 3, 2010 at 6:29 PM, Mauro Carvalho Chehab
<[email protected]> 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

2010-11-04 18:43:56

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

Em 04-11-2010 14:34, Arnaud Lacombe escreveu:
> Hi,
>
> On Wed, Nov 3, 2010 at 6:29 PM, Mauro Carvalho Chehab
> <[email protected]> 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

2010-11-04 18:51:40

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

Em 04-11-2010 14:32, Arnaud Lacombe escreveu:
> Hi,
>
> On Thu, Nov 4, 2010 at 2:11 PM, Mauro Carvalho Chehab
> <[email protected]> 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.

2010-11-05 12:02:41

by Jean Delvare

[permalink] [raw]
Subject: Re: REGRESSION: Re: [GIT] kconfig rc fixes

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
> > <[email protected]> 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