aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-05-08 15:26:20 +0000
committerArnd Bergmann <arnd@arndb.de>2012-08-22 17:22:35 +0200
commitee6f08d58e6216df1d72ebf569ae6f93f2e3a930 (patch)
treea2743c63308698bee206b55a120e75ee6f07694c
parentbc616594c48d68ba125c56bfd4cbb01a5a2764c3 (diff)
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 <arnd@arndb.de>
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/Kconfig.debug1
-rw-r--r--arch/arm/mach-exynos/common.h1
-rw-r--r--arch/arm/mach-ux500/hotplug.c4
-rw-r--r--arch/arm/plat-mxc/Kconfig1
-rw-r--r--arch/arm/plat-omap/debug-leds.c2
-rw-r--r--drivers/gpio/gpio-pxa.c4
-rw-r--r--drivers/i2c/busses/i2c-designware-core.c1
-rw-r--r--drivers/i2c/busses/i2c-designware-platdrv.c2
-rw-r--r--drivers/iio/Kconfig1
-rw-r--r--drivers/leds/leds-lp5523.c4
-rw-r--r--drivers/media/video/au0828/Kconfig2
-rw-r--r--drivers/media/video/smiapp/smiapp-core.c1
-rw-r--r--drivers/mfd/rc5t583.c2
-rw-r--r--drivers/mfd/wm8994-core.c2
-rw-r--r--drivers/mmc/host/dw_mmc.c5
-rw-r--r--drivers/mtd/devices/Kconfig1
-rw-r--r--drivers/net/wireless/ath/carl9170/Kconfig1
-rw-r--r--drivers/net/wireless/ti/wlcore/main.c2
-rw-r--r--drivers/usb/Kconfig10
-rw-r--r--drivers/usb/host/Kconfig1
-rw-r--r--include/linux/phy.h18
-rw-r--r--include/linux/usb/ulpi.h8
-rw-r--r--sound/soc/Kconfig1
-rw-r--r--sound/soc/omap/Kconfig1
25 files changed, 60 insertions, 17 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 6de14670cca5..e51de7bc61b4 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 f15f82bf3a50..6721f96763bd 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 aed2eeb06517..f91bb4b90494 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 c76f0f456f04..11b38f52890a 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 a54d863e71bd..030d998a7f60 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 2450ab4c5915..3d6c4a6411c3 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 c6440a5651e1..50e1f5c798da 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 1e48bec80edf..368c807ec6e1 100644
--- a/drivers/i2c/busses/i2c-designware-core.c
+++ b/drivers/i2c/busses/i2c-designware-core.c
@@ -33,6 +33,7 @@
#include <linux/io.h>
#include <linux/pm_runtime.h>
#include <linux/delay.h>
+#include <linux/module.h>
#include "i2c-designware-core.h"
/*
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 0506fef8dc00..8e6a78402a3c 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 d4984c8be973..ec8e5898a1da 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 fbc12acada95..6283e2aa07b3 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 23f7fd22f0eb..0a2de7b12a97 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 bfd47c106134..80b973f3485a 100644
--- a/drivers/media/video/smiapp/smiapp-core.c
+++ b/drivers/media/video/smiapp/smiapp-core.c
@@ -34,6 +34,7 @@
#include <linux/slab.h>
#include <linux/regulator/consumer.h>
#include <linux/v4l2-mediabus.h>
+#include <linux/slab.h>
#include <media/v4l2-device.h>
#include "smiapp.h"
diff --git a/drivers/mfd/rc5t583.c b/drivers/mfd/rc5t583.c
index cdc1df7fa0e9..7637ffe78aac 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 eec74aa55fdf..5529c6638852 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 72dc3cde646d..79573eb085c8 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 <linux/blkdev.h>
#include <linux/clk.h>
#include <linux/debugfs.h>
#include <linux/device.h>
@@ -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 4cdb2af7bf44..315c3512dff4 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 267d5dcf82dc..1f1ba8fd689e 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 72548609f711..1faa6ae3dda4 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 a7773a3e02b1..040f1fdda9f7 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 075d2eca8108..6c662c509049 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 93b3cf77f564..d8e3d411b2d1 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 6f033a415ecb..687386298eae 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 c5de0a84566f..7af6f7e1ca56 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 57a2fa751085..90237682d301 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