From aa8698bd303cfcbd78493b737905cc5606fb006c Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Tue, 8 May 2012 15:26:20 +0000 Subject: ARM: random randconfig fixes for testing multiplatform These patches fix or work around problems that existed before the multiplatform support got added. They should be addressed one by one with an appropriate patch. Signed-off-by: Arnd Bergmann --- arch/arm/Kconfig | 1 + arch/arm/Kconfig.debug | 1 + arch/arm/mach-exynos/common.h | 1 + arch/arm/mach-ux500/hotplug.c | 4 ++-- arch/arm/plat-mxc/Kconfig | 1 + arch/arm/plat-omap/debug-leds.c | 2 ++ drivers/gpio/gpio-pxa.c | 4 ++-- drivers/i2c/busses/i2c-designware-core.c | 1 + drivers/i2c/busses/i2c-designware-platdrv.c | 2 +- drivers/iio/Kconfig | 1 + drivers/leds/leds-lp5523.c | 4 +++- drivers/media/video/au0828/Kconfig | 2 +- drivers/media/video/smiapp/smiapp-core.c | 1 + drivers/mfd/rc5t583.c | 2 +- drivers/mfd/wm8994-core.c | 2 +- drivers/mmc/host/dw_mmc.c | 5 ++--- drivers/mtd/devices/Kconfig | 1 + drivers/net/wireless/ath/carl9170/Kconfig | 1 + drivers/net/wireless/ti/wlcore/main.c | 2 ++ drivers/usb/Kconfig | 10 +++++----- drivers/usb/host/Kconfig | 1 + include/linux/phy.h | 18 ++++++++++++++++++ include/linux/usb/ulpi.h | 8 ++++++++ sound/soc/Kconfig | 1 + sound/soc/omap/Kconfig | 1 + 25 files changed, 60 insertions(+), 17 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 6de14670cca..e51de7bc61b 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -262,6 +262,7 @@ config ARCH_MULTIPLATFORM select SPARSE_IRQ select MULTI_IRQ_HANDLER select AUTO_ZRELADDR + select ARM_PATCH_PHYS_VIRT depends on MMU config ARCH_SOCFPGA diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index f15f82bf3a5..6721f96763b 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -392,6 +392,7 @@ config OC_ETM config ARM_KPROBES_TEST tristate "Kprobes test module" depends on KPROBES && MODULES + depends on CPU_V6 || CPU_V7 help Perform tests of kprobes API and instruction set simulation. diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h index aed2eeb0651..f91bb4b9049 100644 --- a/arch/arm/mach-exynos/common.h +++ b/arch/arm/mach-exynos/common.h @@ -13,6 +13,7 @@ #define __ARCH_ARM_MACH_EXYNOS_COMMON_H extern struct sys_timer exynos4_timer; +struct map_desc; void exynos_init_io(struct map_desc *mach_desc, int size); void exynos4_init_irq(void); diff --git a/arch/arm/mach-ux500/hotplug.c b/arch/arm/mach-ux500/hotplug.c index c76f0f456f0..11b38f52890 100644 --- a/arch/arm/mach-ux500/hotplug.c +++ b/arch/arm/mach-ux500/hotplug.c @@ -23,8 +23,8 @@ static inline void platform_do_lowpower(unsigned int cpu) /* we put the platform to just WFI */ for (;;) { - __asm__ __volatile__("dsb\n\t" "wfi\n\t" - : : : "memory"); + dsb(); + wfi(); if (pen_release == cpu_logical_map(cpu)) { /* * OK, proper wakeup, we're done diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig index a54d863e71b..030d998a7f6 100644 --- a/arch/arm/plat-mxc/Kconfig +++ b/arch/arm/plat-mxc/Kconfig @@ -66,6 +66,7 @@ config HAVE_EPIT config MXC_USE_EPIT bool "Use EPIT instead of GPT" depends on HAVE_EPIT + depends on BROKEN help Use EPIT as the system timer on systems that have it. Normally you don't have a reason to do so as the EPIT has the same features and diff --git a/arch/arm/plat-omap/debug-leds.c b/arch/arm/plat-omap/debug-leds.c index 2450ab4c591..3d6c4a6411c 100644 --- a/arch/arm/plat-omap/debug-leds.c +++ b/arch/arm/plat-omap/debug-leds.c @@ -62,6 +62,7 @@ static u16 led_state, hw_led_state; #define GPIO_IDLE GPIO_LED_GREEN #define GPIO_TIMER GPIO_LED_RED +#ifdef CONFIG_LEDS static void h2p2_dbg_leds_event(led_event_t evt) { unsigned long flags; @@ -179,6 +180,7 @@ static void h2p2_dbg_leds_event(led_event_t evt) done: spin_unlock_irqrestore(&lock, flags); } +#endif /*-------------------------------------------------------------------------*/ diff --git a/drivers/gpio/gpio-pxa.c b/drivers/gpio/gpio-pxa.c index c6440a5651e..50e1f5c798d 100644 --- a/drivers/gpio/gpio-pxa.c +++ b/drivers/gpio/gpio-pxa.c @@ -494,6 +494,7 @@ static int pxa_gpio_nums(void) return count; } +#ifdef CONFIG_OF static struct of_device_id pxa_gpio_dt_ids[] = { { .compatible = "mrvl,pxa-gpio" }, { .compatible = "mrvl,mmp-gpio", .data = (void *)MMP_GPIO }, @@ -513,7 +514,6 @@ const struct irq_domain_ops pxa_irq_domain_ops = { .map = pxa_irq_domain_map, }; -#ifdef CONFIG_OF static int __devinit pxa_gpio_probe_dt(struct platform_device *pdev) { int ret, nr_banks, nr_gpios, irq_base; @@ -659,7 +659,7 @@ static struct platform_driver pxa_gpio_driver = { .probe = pxa_gpio_probe, .driver = { .name = "pxa-gpio", - .of_match_table = pxa_gpio_dt_ids, + .of_match_table = of_match_ptr(pxa_gpio_dt_ids), }, }; diff --git a/drivers/i2c/busses/i2c-designware-core.c b/drivers/i2c/busses/i2c-designware-core.c index 1e48bec80ed..368c807ec6e 100644 --- a/drivers/i2c/busses/i2c-designware-core.c +++ b/drivers/i2c/busses/i2c-designware-core.c @@ -33,6 +33,7 @@ #include #include #include +#include #include "i2c-designware-core.h" /* diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c index 0506fef8dc0..8e6a78402a3 100644 --- a/drivers/i2c/busses/i2c-designware-platdrv.c +++ b/drivers/i2c/busses/i2c-designware-platdrv.c @@ -199,7 +199,7 @@ static const struct of_device_id dw_i2c_of_match[] = { MODULE_DEVICE_TABLE(of, dw_i2c_of_match); #endif -#ifdef CONFIG_PM +#ifdef CONFIG_PM_SLEEP static int dw_i2c_suspend(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); diff --git a/drivers/iio/Kconfig b/drivers/iio/Kconfig index d4984c8be97..ec8e5898a1d 100644 --- a/drivers/iio/Kconfig +++ b/drivers/iio/Kconfig @@ -5,6 +5,7 @@ menuconfig IIO tristate "Industrial I/O support" depends on GENERIC_HARDIRQS + select ANON_INODES help The industrial I/O subsystem provides a unified framework for drivers for many different types of embedded sensors using a diff --git a/drivers/leds/leds-lp5523.c b/drivers/leds/leds-lp5523.c index fbc12acada9..6283e2aa07b 100644 --- a/drivers/leds/leds-lp5523.c +++ b/drivers/leds/leds-lp5523.c @@ -243,7 +243,9 @@ static int lp5523_configure(struct i2c_client *client) /* Let the programs run for couple of ms and check the engine status */ usleep_range(3000, 6000); - lp5523_read(client, LP5523_REG_STATUS, &status); + ret = lp5523_read(client, LP5523_REG_STATUS, &status); + if (ret) + return ret; status &= LP5523_ENG_STATUS_MASK; if (status == LP5523_ENG_STATUS_MASK) { diff --git a/drivers/media/video/au0828/Kconfig b/drivers/media/video/au0828/Kconfig index 23f7fd22f0e..0a2de7b12a9 100644 --- a/drivers/media/video/au0828/Kconfig +++ b/drivers/media/video/au0828/Kconfig @@ -2,11 +2,11 @@ config VIDEO_AU0828 tristate "Auvitek AU0828 support" depends on I2C && INPUT && DVB_CORE && USB && VIDEO_V4L2 + depends on DVB_AU8522_DTV depends on DVB_CAPTURE_DRIVERS select I2C_ALGOBIT select VIDEO_TVEEPROM select VIDEOBUF_VMALLOC - select DVB_AU8522_DTV if !DVB_FE_CUSTOMISE select DVB_AU8522_V4L if !DVB_FE_CUSTOMISE select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMISE select MEDIA_TUNER_MXL5007T if !MEDIA_TUNER_CUSTOMISE diff --git a/drivers/media/video/smiapp/smiapp-core.c b/drivers/media/video/smiapp/smiapp-core.c index bfd47c10613..80b973f3485 100644 --- a/drivers/media/video/smiapp/smiapp-core.c +++ b/drivers/media/video/smiapp/smiapp-core.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include "smiapp.h" diff --git a/drivers/mfd/rc5t583.c b/drivers/mfd/rc5t583.c index cdc1df7fa0e..7637ffe78aa 100644 --- a/drivers/mfd/rc5t583.c +++ b/drivers/mfd/rc5t583.c @@ -97,7 +97,7 @@ static int __rc5t583_set_ext_pwrreq1_control(struct device *dev, en_bit = deepsleep_data[id].ds_pos_bit; slot_bit = en_bit + 1; ret = rc5t583_read(dev, deepsleep_data[id].reg_add, &sleepseq_val); - if (ret < 0) { + if (ret) { dev_err(dev, "Error in reading reg 0x%x\n", deepsleep_data[id].reg_add); return ret; diff --git a/drivers/mfd/wm8994-core.c b/drivers/mfd/wm8994-core.c index eec74aa55fd..5529c663885 100644 --- a/drivers/mfd/wm8994-core.c +++ b/drivers/mfd/wm8994-core.c @@ -405,7 +405,7 @@ static __devinit int wm8994_device_init(struct wm8994 *wm8994, int irq) struct regmap_config *regmap_config; const struct reg_default *regmap_patch = NULL; const char *devname; - int ret, i, patch_regs; + int ret, i, uninitialized_var(patch_regs); int pulls = 0; dev_set_drvdata(wm8994->dev, wm8994); diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c index 72dc3cde646..79573eb085c 100644 --- a/drivers/mmc/host/dw_mmc.c +++ b/drivers/mmc/host/dw_mmc.c @@ -11,7 +11,6 @@ * (at your option) any later version. */ -#include #include #include #include @@ -1760,7 +1759,7 @@ static void dw_mci_work_routine_card(struct work_struct *work) } } -static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id) +static int __devinit dw_mci_init_slot(struct dw_mci *host, unsigned int id) { struct mmc_host *mmc; struct dw_mci_slot *slot; @@ -1935,7 +1934,7 @@ static bool mci_wait_reset(struct device *dev, struct dw_mci *host) return false; } -int dw_mci_probe(struct dw_mci *host) +int __devinit dw_mci_probe(struct dw_mci *host) { int width, i, ret = 0; u32 fifo_size; diff --git a/drivers/mtd/devices/Kconfig b/drivers/mtd/devices/Kconfig index 4cdb2af7bf4..315c3512dff 100644 --- a/drivers/mtd/devices/Kconfig +++ b/drivers/mtd/devices/Kconfig @@ -264,6 +264,7 @@ config MTD_DOCG3 tristate "M-Systems Disk-On-Chip G3" select BCH select BCH_CONST_PARAMS + select BITREVERSE ---help--- This provides an MTD device driver for the M-Systems DiskOnChip G3 devices. diff --git a/drivers/net/wireless/ath/carl9170/Kconfig b/drivers/net/wireless/ath/carl9170/Kconfig index 267d5dcf82d..1f1ba8fd689 100644 --- a/drivers/net/wireless/ath/carl9170/Kconfig +++ b/drivers/net/wireless/ath/carl9170/Kconfig @@ -1,6 +1,7 @@ config CARL9170 tristate "Linux Community AR9170 802.11n USB support" depends on USB && MAC80211 && EXPERIMENTAL + select BITREVERSE select FW_LOADER select CRC32 help diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c index 72548609f71..1faa6ae3dda 100644 --- a/drivers/net/wireless/ti/wlcore/main.c +++ b/drivers/net/wireless/ti/wlcore/main.c @@ -1426,6 +1426,7 @@ int wl1271_rx_filter_alloc_field(struct wl12xx_rx_filter *filter, return 0; } +#endif int wl1271_rx_filter_get_fields_size(struct wl12xx_rx_filter *filter) { @@ -1458,6 +1459,7 @@ void wl1271_rx_filter_flatten_fields(struct wl12xx_rx_filter *filter, } } +#ifdef CONFIG_PM /* * Allocates an RX filter returned through f * which needs to be freed using rx_filter_free() diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig index a7773a3e02b..040f1fdda9f 100644 --- a/drivers/usb/Kconfig +++ b/drivers/usb/Kconfig @@ -55,6 +55,11 @@ config USB_ARCH_HAS_XHCI boolean default PCI +config USB_COMMON + tristate + default y + depends on USB || USB_GADGET + menuconfig USB_SUPPORT bool "USB support" depends on HAS_IOMEM @@ -65,11 +70,6 @@ menuconfig USB_SUPPORT if USB_SUPPORT -config USB_COMMON - tristate - default y - depends on USB || USB_GADGET - # Host-side USB depends on having a host controller # NOTE: dummy_hcd is always an option, but it's ignored here ... # NOTE: SL-811 option should be board-specific ... diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index 075d2eca810..6c662c50904 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig @@ -145,6 +145,7 @@ config USB_EHCI_FSL config USB_EHCI_MXC bool "Support for Freescale i.MX on-chip EHCI USB controller" depends on USB_EHCI_HCD && ARCH_MXC + depends on !USB_EHCI_HCD_OMAP select USB_EHCI_ROOT_HUB_TT ---help--- Variation of ARC USB block used in some Freescale chips. diff --git a/include/linux/phy.h b/include/linux/phy.h index 93b3cf77f56..d8e3d411b2d 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -548,12 +548,30 @@ int phy_start_interrupts(struct phy_device *phydev); void phy_print_status(struct phy_device *phydev); void phy_device_free(struct phy_device *phydev); +#if IS_ENABLED(CONFIG_PHYLIB) int phy_register_fixup(const char *bus_id, u32 phy_uid, u32 phy_uid_mask, int (*run)(struct phy_device *)); int phy_register_fixup_for_id(const char *bus_id, int (*run)(struct phy_device *)); int phy_register_fixup_for_uid(u32 phy_uid, u32 phy_uid_mask, int (*run)(struct phy_device *)); +#else +static inline int phy_register_fixup(const char *bus_id, u32 phy_uid, u32 phy_uid_mask, + int (*run)(struct phy_device *)) +{ + return 0; +} +static inline int phy_register_fixup_for_id(const char *bus_id, + int (*run)(struct phy_device *)) +{ + return 0; +} +static inline int phy_register_fixup_for_uid(u32 phy_uid, u32 phy_uid_mask, + int (*run)(struct phy_device *)) +{ + return 0; +} +#endif int phy_scan_fixups(struct phy_device *phydev); int phy_init_eee(struct phy_device *phydev, bool clk_stop_enable); diff --git a/include/linux/usb/ulpi.h b/include/linux/usb/ulpi.h index 6f033a415ec..687386298ea 100644 --- a/include/linux/usb/ulpi.h +++ b/include/linux/usb/ulpi.h @@ -181,8 +181,16 @@ /*-------------------------------------------------------------------------*/ +#ifdef CONFIG_USB_ULPI struct usb_phy *otg_ulpi_create(struct usb_phy_io_ops *ops, unsigned int flags); +#else +static inline struct usb_phy *otg_ulpi_create(struct usb_phy_io_ops *ops, + unsigned int flags) +{ + return NULL; +} +#endif #ifdef CONFIG_USB_ULPI_VIEWPORT /* access ops for controllers with a viewport register */ diff --git a/sound/soc/Kconfig b/sound/soc/Kconfig index c5de0a84566..7af6f7e1ca5 100644 --- a/sound/soc/Kconfig +++ b/sound/soc/Kconfig @@ -7,6 +7,7 @@ menuconfig SND_SOC select SND_PCM select AC97_BUS if SND_SOC_AC97_BUS select SND_JACK if INPUT=y || INPUT=SND + depends on I2C || !I2C select REGMAP_I2C if I2C select REGMAP_SPI if SPI_MASTER ---help--- diff --git a/sound/soc/omap/Kconfig b/sound/soc/omap/Kconfig index 57a2fa75108..90237682d30 100644 --- a/sound/soc/omap/Kconfig +++ b/sound/soc/omap/Kconfig @@ -112,6 +112,7 @@ config SND_OMAP_SOC_OMAP_ABE_TWL6040 config SND_OMAP_SOC_OMAP_HDMI tristate "SoC Audio support for Texas Instruments OMAP HDMI" depends on SND_OMAP_SOC && OMAP4_DSS_HDMI && OMAP2_DSS + depends on BROKEN select SND_OMAP_SOC_HDMI select SND_SOC_OMAP_HDMI_CODEC select OMAP4_DSS_HDMI_AUDIO -- cgit v1.2.3