Merge branch 'camera-v4.7' into camera-v4.8

Pull changes from camera-v4.7 branch. Should reduce differences to mainline.
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index eaecf5ed..4c3c471 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -292,8 +292,7 @@
 		};
 
 		uart2: serial@4806c000 {
-		// This is bluetooth on n900, ttyO1
-			compatible = "not-a-ti,omap3-not-a-uart";
+			compatible = "ti,omap3-uart";
 			reg = <0x4806c000 0x400>;
 			interrupts-extended = <&intc 73>;
 			dmas = <&sdma 51 &sdma 52>;
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index ad10677..07bf39e 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -226,10 +226,6 @@
 # EMU peripherals
 obj-$(CONFIG_HW_PERF_EVENTS)		+= pmu.o
 
-ifneq ($(CONFIG_TIDSPBRIDGE),)
-obj-y					+= dsp.o
-endif
-
 # OMAP2420 MSDI controller integration support ("MMC")
 obj-$(CONFIG_SOC_OMAP2420)		+= msdi.o
 
diff --git a/arch/arm/mach-omap2/board-rx51-compat.c b/arch/arm/mach-omap2/board-rx51-compat.c
index f3a82a3..bc79c44f 100644
--- a/arch/arm/mach-omap2/board-rx51-compat.c
+++ b/arch/arm/mach-omap2/board-rx51-compat.c
@@ -56,7 +56,7 @@
 	return 0;
 }
 
-late_initcall(bootreason_init);
+//late_initcall(bootreason_init);
 
 /*** /proc/component_version ***/
 
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index 31abfe3..1434596 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -27,10 +27,8 @@
 #include <linux/omap-gpmc.h>
 #include <linux/mmc/host.h>
 #include <linux/power/isp1704_charger.h>
-#include <linux/power/bq2415x_charger.h>
 #include <linux/platform_data/spi-omap2-mcspi.h>
 #include <linux/platform_data/mtd-onenand-omap2.h>
-#include <linux/platform_data/bt-nokia-h4p.h>
 
 #include <plat/dmtimer.h>
 
@@ -40,12 +38,10 @@
 #include <linux/omap-dma.h>
 
 #include "board-rx51.h"
-#include "serial.h"
 
 #include <sound/tlv320aic3x.h>
 #include <sound/tpa6130a2-plat.h>
 #include <linux/platform_data/media/si4713.h>
-#include "../../../drivers/staging/media/bcm2048/radio-bcm2048.h"
 #include <linux/platform_data/leds-lp55xx.h>
 
 #include <linux/platform_data/tsl2563.h>
@@ -72,8 +68,6 @@
 #define RX51_WL1251_IRQ_GPIO		42
 #define RX51_FMTX_RESET_GPIO		163
 #define RX51_FMTX_IRQ			53
-#define RX51_FMRX_IRQ			43
-
 #define RX51_LP5523_CHIP_EN_GPIO	41
 
 #define RX51_USB_TRANSCEIVER_RST_GPIO	67
@@ -84,10 +78,6 @@
 #define LIS302_IRQ1_GPIO 181
 #define LIS302_IRQ2_GPIO 180  /* Not yet in use */
 
-#define RX51_HCI_H4P_RESET_GPIO		91
-#define RX51_HCI_H4P_HOSTWU_GPIO	101
-#define RX51_HCI_H4P_BTWU_GPIO		37
-
 /* List all SPI devices here. Note that the list/probe order seems to matter! */
 enum {
 	RX51_SPI_WL1251,
@@ -331,105 +321,6 @@
 #if defined(CONFIG_OMAP_GPIO_SWITCH) || defined(CONFIG_OMAP_GPIO_SWITCH_MODULE)
 
 static struct omap_gpio_switch rx51_gpio_switches[] __initdata = {
-	{
-		.name			= "cam_focus",
-		.gpio			= RX51_GPIO_CAMERA_FOCUS,
-		.flags			= OMAP_GPIO_SWITCH_FLAG_INVERTED,
-		.type			= OMAP_GPIO_SWITCH_TYPE_ACTIVITY,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}, {
-		.name			= "cam_launch",
-		.gpio			= RX51_GPIO_CAMERA_CAPTURE,
-		.flags			= OMAP_GPIO_SWITCH_FLAG_INVERTED,
-		.type			= OMAP_GPIO_SWITCH_TYPE_ACTIVITY,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}, {
-		.name			= "cam_shutter",
-		.gpio			= RX51_GPIO_CAMERA_LENS_COVER,
-		.flags			= OMAP_GPIO_SWITCH_FLAG_INVERTED,
-		.type			= OMAP_GPIO_SWITCH_TYPE_COVER,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}, {
-		.name			= "cmt_apeslpx",
-		.gpio			= RX51_GPIO_CMT_APESLPX,
-		.flags			= OMAP_GPIO_SWITCH_FLAG_OUTPUT,
-		.type			= OMAP_GPIO_SWITCH_TYPE_ACTIVITY,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}, {
-		.name			= "cmt_bsi",
-		.gpio			= RX51_GPIO_CMT_BSI,
-		.flags			= OMAP_GPIO_SWITCH_FLAG_OUTPUT,
-		.type			= OMAP_GPIO_SWITCH_TYPE_ACTIVITY,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}, {
-		.name			= "cmt_en",
-		.gpio			= RX51_GPIO_CMT_EN,
-		.flags			= OMAP_GPIO_SWITCH_FLAG_OUTPUT,
-		.type			= OMAP_GPIO_SWITCH_TYPE_ACTIVITY,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}, {
-		.name			= "cmt_rst",
-		.gpio			= RX51_GPIO_CMT_RST,
-		.flags			= OMAP_GPIO_SWITCH_FLAG_OUTPUT | OMAP_GPIO_SWITCH_FLAG_OUTPUT_INIT_ACTIVE,
-		.type			= OMAP_GPIO_SWITCH_TYPE_ACTIVITY,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}, {
-		.name			= "cmt_rst_rq",
-		.gpio			= RX51_GPIO_CMT_RST_RQ,
-		.flags			= OMAP_GPIO_SWITCH_FLAG_OUTPUT | OMAP_GPIO_SWITCH_FLAG_OUTPUT_INIT_ACTIVE,
-		.type			= OMAP_GPIO_SWITCH_TYPE_ACTIVITY,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}, {
-		.name			= "cmt_wddis",
-		.gpio			= RX51_GPIO_CMT_WDDIS,
-		.flags			= OMAP_GPIO_SWITCH_FLAG_OUTPUT,
-		.type			= OMAP_GPIO_SWITCH_TYPE_ACTIVITY,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}, {
-		.name			= "headphone",
-		.gpio			= RX51_GPIO_HEADPHONE,
-		.flags			= OMAP_GPIO_SWITCH_FLAG_INVERTED,
-		.type			= OMAP_GPIO_SWITCH_TYPE_CONNECTION,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}, {
-		.name			= "kb_lock",
-		.gpio			= RX51_GPIO_LOCK_BUTTON,
-		.flags			= OMAP_GPIO_SWITCH_FLAG_INVERTED,
-		.type			= OMAP_GPIO_SWITCH_TYPE_COVER,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}, {
-		.name			= "proximity",
-		.gpio			= RX51_GPIO_PROXIMITY,
-		.flags			= 0,
-		.type			= OMAP_GPIO_SWITCH_TYPE_COVER,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}, {
-		.name			= "sleep_ind",
-		.gpio			= RX51_GPIO_SLEEP_IND,
-		.flags			= OMAP_GPIO_SWITCH_FLAG_OUTPUT,
-		.type			= OMAP_GPIO_SWITCH_TYPE_ACTIVITY,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}, {
-		.name			= "slide",
-		.gpio			= RX51_GPIO_KEYPAD_SLIDE,
-		.flags			= 0,
-		.type			= OMAP_GPIO_SWITCH_TYPE_COVER,
-		.debounce_rising	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-		.debounce_falling	= RX51_GPIO_DEBOUNCE_TIMEOUT,
-	}
 };
 
 static void __init rx51_add_gpio_switches(void)
@@ -654,9 +545,6 @@
 
 static struct regulator_consumer_supply rx51_vaux2_supply[] = {
 	REGULATOR_SUPPLY("vdds_csib", "omap3isp"),
-	{
-		.supply		= "vaux2",
-	},
 };
 
 static struct regulator_consumer_supply rx51_vaux3_supply[] = {
@@ -908,25 +796,6 @@
 	gpiod_add_lookup_table(&rx51_fmtx_gpios_table);
 }
 
-static struct platform_device rx51_bcm2048_dev = {
-	.name	= "radio-bcm2048",
-	.id	= -1,
-};
-
-static __init void rx51_init_bcm2048(void)
-{
-	int err;
-
-	err = gpio_request(RX51_FMRX_IRQ, "BCM2048");
-	if (err) {
-		printk(KERN_ERR "Failed to request gpio for FMRX IRQ %d\n", err);
-		return;
-	}
-
-	gpio_direction_input(RX51_FMRX_IRQ);
-	platform_device_register(&rx51_bcm2048_dev);
-}
-
 static int rx51_twlgpio_setup(struct device *dev, unsigned gpio, unsigned n)
 {
 	/* FIXME this gpio setup is just a placeholder for now */
@@ -1106,10 +975,6 @@
 	.resource_config = twl4030_rconfig,
 };
 
-static struct twl4030_power_data rx51_power_data __initdata = {
-	.use_poweroff	= true,
-};
-
 static struct twl4030_vibra_data rx51_vibra_data __initdata = {
 	.coexist	= 0,
 };
@@ -1123,7 +988,7 @@
 	/* platform_data for children goes here */
 	.gpio			= &rx51_gpio_data,
 	.keypad			= &rx51_kp_data,
-	.power			= &rx51_power_data,
+	.power			= &rx51_t2scripts_data,
 	.audio			= &rx51_audio_data,
 
 	.vaux1			= &rx51_vaux1,
@@ -1164,16 +1029,6 @@
 };
 #endif
 
-static struct bq2415x_platform_data rx51_bq24150a_platform_data = {
-	.current_limit = 100,			/* mA */
-	.weak_battery_voltage = 3400,		/* mV */
-	.battery_regulation_voltage = 4200,	/* mV */
-	.charge_current = 650,			/* mA */
-	.termination_current = 100,		/* mA */
-	.resistor_sense = 68,			/* m ohm */
-	.notify_device = "isp1704",
-};
-
 static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] = {
 #if IS_ENABLED(CONFIG_I2C_SI4713) && IS_ENABLED(CONFIG_PLATFORM_SI4713)
 	{
@@ -1207,11 +1062,7 @@
 	{
 		I2C_BOARD_INFO("tpa6130a2", 0x60),
 		.platform_data = &rx51_tpa6130a2_data,
-	},
-	{
-		I2C_BOARD_INFO("bq24150a", 0x6b),
-		.platform_data = &rx51_bq24150a_platform_data,
-	},
+	}
 };
 
 static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_3[] = {
@@ -1221,10 +1072,6 @@
 		.platform_data = &rx51_lis3lv02d_data,
 	},
 #endif
-	{
-		I2C_BOARD_INFO(BCM2048_NAME, BCM2048_I2C_ADDR),
-	}
-
 };
 
 static int __init rx51_i2c_init(void)
@@ -1264,7 +1111,6 @@
 	rx51_lis3lv02d_data.irq2 = gpio_to_irq(LIS302_IRQ2_GPIO);
 	rx51_peripherals_i2c_board_info_3[0].irq = gpio_to_irq(LIS302_IRQ1_GPIO);
 #endif
-	rx51_peripherals_i2c_board_info_3[1].irq = RX51_FMRX_IRQ;
 	omap_register_i2c_bus(3, 400, rx51_peripherals_i2c_board_info_3,
 			      ARRAY_SIZE(rx51_peripherals_i2c_board_info_3));
 	return 0;
@@ -1352,16 +1198,6 @@
 	 */
 }
 
-static struct platform_device rx51_audio_device = {
-	.name	= "rx51-audio",
-	.id	= -1,
-};
-
-static void __init rx51_init_audio(void)
-{
-	platform_device_register(&rx51_audio_device);
-}
-
 static struct tsc2005_platform_data tsc2005_pdata = {
 	.ts_pressure_max	= 2048,
 	.ts_pressure_fudge	= 2,
@@ -1478,43 +1314,6 @@
 	}
 }
 
-/* Allow C6 state {1, 3120, 5788, 10000} */
-#define H4P_WAKEUP_LATENCY	5700
-
-/* Use wakeup latency only for now */
-static void rx51_bt_set_pm_limits(struct device *dev, bool set)
-{
-	omap_pm_set_max_mpu_wakeup_lat(dev, set ? H4P_WAKEUP_LATENCY : -1);
-}
-
-struct hci_h4p_platform_data bt_plat_data = {
-	.chip_type		= 3,
-	.bt_sysclk		= 2,
-	.bt_wakeup_gpio		= RX51_HCI_H4P_BTWU_GPIO,
-	.host_wakeup_gpio	= RX51_HCI_H4P_HOSTWU_GPIO,
-	.reset_gpio		= RX51_HCI_H4P_RESET_GPIO,
-	.reset_gpio_shared	= 0,
-	.uart_irq		= 73 + OMAP_INTC_START,
-	.uart_base		= OMAP3_UART2_BASE,
-	.uart_iclk		= "uart2_ick",
-	.uart_fclk		= "uart2_fck",
-	.set_pm_limits		= rx51_bt_set_pm_limits,
-};
-
-static struct platform_device rx51_bt_device = {
-	.name		= "hci_h4p",
-	.id		= -1,
-	.num_resources	= 0,
-	.dev = {
-		.platform_data = &bt_plat_data,
-	}
-};
-
-void __init rx51_bt_init(void)
-{
-	platform_device_register(&rx51_bt_device);
-}
-
 void __init rx51_peripherals_init(void)
 {
 	rx51_gpio_init();
@@ -1523,12 +1322,9 @@
 	gpmc_onenand_init(board_onenand_data);
 	rx51_add_gpio_keys();
 	rx51_add_gpio_switches();
-	rx51_init_audio();
 	rx51_init_wl1251();
 	rx51_init_tsc2005();
 	rx51_init_lirc();
-	rx51_init_bcm2048();
-	rx51_bt_init();
 	spi_register_board_info(rx51_peripherals_spi_board_info,
 				ARRAY_SIZE(rx51_peripherals_spi_board_info));
 
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c
index 7626354..41161ca9 100644
--- a/arch/arm/mach-omap2/board-rx51.c
+++ b/arch/arm/mach-omap2/board-rx51.c
@@ -83,75 +83,6 @@
 
 #ifdef CONFIG_OMAP_MUX
 static struct omap_board_mux board_mux[] __initdata = {
-	/* OMAP SSI Port 0 */
-	/* ssi1_rdy_tx */
-	OMAP3_MUX(UART1_CTS, OMAP_MUX_MODE1 | OMAP_PIN_INPUT | OMAP_PULL_UP ),
-	/* ssi1_flag_tx */
-	OMAP3_MUX(UART1_RTS, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT),
-	/* ssi1_wake_tx - cawake*/
-	OMAP3_MUX(UART1_RX, OMAP_MUX_MODE4 | OMAP_PIN_INPUT | OMAP_WAKEUP_EN),
-	/* ssi1_dat_tx */
-	OMAP3_MUX(UART1_TX, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT),
-	/* ssi1_dat_rx */
-	OMAP3_MUX(MCBSP4_CLKX, OMAP_MUX_MODE1 | OMAP_PIN_INPUT),
-	/* ssi1_flag_rx */
-	OMAP3_MUX(MCBSP4_DR, OMAP_MUX_MODE1 | OMAP_PIN_INPUT),
-	/* ssi1_rdy_rx */
-	OMAP3_MUX(MCBSP4_DX, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT),
-	/* ssi1_wake */
-	OMAP3_MUX(MCBSP4_FSX, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT),
-	
-
-	/* RAPUYAMA/GAZOO */
-	/* APESLEEPX */
-	OMAP3_MUX(DSS_DATA0,	OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
-	/* APE_RST_RQ */
-	OMAP3_MUX(DSS_DATA2,	OMAP_MUX_MODE4 | OMAP_PIN_INPUT | OMAP_WAKEUP_EN),
-	/* CMT_RST_RQ */
-	OMAP3_MUX(DSS_DATA3,	OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
-	/* CMT_EN */
-	OMAP3_MUX(DSS_DATA4,	OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
-	/* CMT_RST */
-	OMAP3_MUX(DSS_DATA5,	OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
-	/* CMT_BSI */
-	OMAP3_MUX(MCBSP1_FSR,	OMAP_MUX_MODE7 | OMAP_PIN_OUTPUT),
-
-	/* Camera interface */
-	OMAP3_MUX(CAM_HS,	OMAP_MUX_MODE7 | OMAP_PIN_OUTPUT),
-	OMAP3_MUX(CAM_VS,	OMAP_MUX_MODE7 | OMAP_PIN_OUTPUT),
-	OMAP3_MUX(CAM_XCLKA,	OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
-	OMAP3_MUX(CAM_PCLK,	OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
-	OMAP3_MUX(CAM_FLD,	OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
-	OMAP3_MUX(CAM_D0,	OMAP_MUX_MODE4 | OMAP_PIN_INPUT | OMAP_WAKEUP_EN),
-	OMAP3_MUX(CAM_D1,	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP | OMAP_WAKEUP_EN),
-	OMAP3_MUX(CAM_D2,	OMAP_MUX_MODE4 | OMAP_PIN_INPUT | OMAP_WAKEUP_EN),
-	OMAP3_MUX(CAM_D3,	OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
-	OMAP3_MUX(CAM_D4,	OMAP_MUX_MODE7 | OMAP_PIN_OUTPUT),
-	OMAP3_MUX(CAM_D5,	OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
-	OMAP3_MUX(CAM_D6,	OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
-	OMAP3_MUX(CAM_D7,	OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
-	OMAP3_MUX(CAM_D8,	OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
-	OMAP3_MUX(CAM_D9,	OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
-	OMAP3_MUX(CAM_D10,	OMAP_MUX_MODE7 | OMAP_PIN_OUTPUT),
-	OMAP3_MUX(CAM_D11,	OMAP_MUX_MODE4 | OMAP_PIN_INPUT | OMAP_WAKEUP_EN),
-	OMAP3_MUX(CAM_XCLKB,	OMAP_MUX_MODE7 | OMAP_PIN_OUTPUT),
-	OMAP3_MUX(CAM_WEN,	OMAP_MUX_MODE4 | OMAP_PIN_INPUT),
-	OMAP3_MUX(CAM_STROBE,	OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
-	/* cam_focus*/
-	OMAP3_MUX(DSS_VSYNC,	OMAP_MUX_MODE4 | OMAP_PIN_INPUT | OMAP_WAKEUP_EN),
-
-	/* uSD cover gpio_160 */
-	OMAP3_MUX(MCBSP_CLKS,	OMAP_MUX_MODE4 | OMAP_PIN_INPUT | OMAP_WAKEUP_EN),
-
-	/* ECI */
-	OMAP3_MUX(GPMC_NBE1,	OMAP_MUX_MODE4 | OMAP_PIN_INPUT | OMAP_WAKEUP_EN),
-
-	/* LCD RESET gpio_90*/
-	OMAP3_MUX(DSS_DATA20,	OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT | OMAP_PULL_UP),
-
-	/* OneNAND IRQ gpio_65*/
-	OMAP3_MUX(GPMC_WAIT3,	OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP | OMAP_WAKEUP_EN),
-
 	{ .reg_offset = OMAP_MUX_TERMINATOR },
 };
 #endif
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
index 2f47e26..70b3eaf 100644
--- a/arch/arm/mach-omap2/display.c
+++ b/arch/arm/mach-omap2/display.c
@@ -28,7 +28,6 @@
 #include <linux/slab.h>
 #include <linux/mfd/syscon.h>
 #include <linux/regmap.h>
-#include <linux/of_reserved_mem.h>
 
 #include <linux/platform_data/omapdss.h>
 #include "omap_hwmod.h"
@@ -667,9 +666,6 @@
 		return r;
 	}
 
-	/* Init fb reserved memory, there may be none so ignore the result */
-	of_reserved_mem_device_init(&pdev->dev);
-
 	/* create V4L2 display device */
 	r = omap_init_vout();
 	if (r < 0) {
diff --git a/arch/arm/mach-omap2/dsp.c b/arch/arm/mach-omap2/dsp.c
deleted file mode 100644
index ebb0c09..0000000
--- a/arch/arm/mach-omap2/dsp.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * TI's OMAP DSP platform device registration
- *
- * Copyright (C) 2005-2006 Texas Instruments, Inc.
- * Copyright (C) 2009 Nokia Corporation
- *
- * Written by Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-/*
- * XXX The function pointers to the PRM/CM functions are incorrect and
- * should be removed.  No device driver should be changing PRM/CM bits
- * directly; that's a layering violation -- those bits are the responsibility
- * of the OMAP PM core code.
- */
-
-#include <linux/dma-mapping.h>
-#include <linux/of.h>
-#include <linux/of_reserved_mem.h>
-
-
-static int rmem_dsp_device_init(struct reserved_mem *rmem, struct device *dev)
-{
-	int dma;
-
-	if (rmem->priv)
-		return 0;
-
-	dma = dma_declare_coherent_memory(dev, rmem->base,
-					  rmem->base, rmem->size,
-					  DMA_MEMORY_MAP |
-					  DMA_MEMORY_EXCLUSIVE);
-	if (!(dma & DMA_MEMORY_MAP)) {
-			pr_err("dsp: dma_declare_coherent_memory failed\n");
-			return -ENOMEM;
-	}
-	else
-		rmem->priv = dev->dma_mem;
-
-	return 0;
-}
-
-static void rmem_dsp_device_release(struct reserved_mem *rmem,
-				    struct device *dev)
-{
-	dma_release_declared_memory(dev);
-	rmem->priv = 0;
-}
-
-static const struct reserved_mem_ops rmem_dsp_ops = {
-	.device_init    = rmem_dsp_device_init,
-	.device_release = rmem_dsp_device_release,
-};
-
-static int __init rmem_dsp_setup(struct reserved_mem *rmem)
-{
-	pr_info("dsp: reserved %d bytes at %pa\n", rmem->size, &rmem->base);
-	rmem->ops = &rmem_dsp_ops;
-
-	return 0;
-}
-
-RESERVEDMEM_OF_DECLARE(dsp, "ti,dsp-memsize", rmem_dsp_setup);
diff --git a/arch/arm/mach-omap2/fb.c b/arch/arm/mach-omap2/fb.c
index 021496d..1f1ecf8 100644
--- a/arch/arm/mach-omap2/fb.c
+++ b/arch/arm/mach-omap2/fb.c
@@ -28,7 +28,6 @@
 #include <linux/io.h>
 #include <linux/omapfb.h>
 #include <linux/dma-mapping.h>
-#include <linux/of_reserved_mem.h>
 
 #include <asm/mach/map.h>
 
@@ -111,48 +110,6 @@
 {
 	return platform_device_register(&omap_fb_device);
 }
-
-static int rmem_omapfb_device_init(struct reserved_mem *rmem, struct device *dev)
-{
-	int dma;
-
-	if (rmem->priv)
-		return 0;
-
-	dma = dma_declare_coherent_memory(&omap_fb_device.dev, rmem->base,
-					  rmem->base, rmem->size,
-					  DMA_MEMORY_MAP |
-					  DMA_MEMORY_EXCLUSIVE);
-	if (!(dma & DMA_MEMORY_MAP)) {
-			pr_err("omapfb: dma_declare_coherent_memory failed\n");
-			return -ENOMEM;
-	}
-	else
-		rmem->priv = omap_fb_device.dev.dma_mem;
-
-	return 0;
-}
-
-static void rmem_omapfb_device_release(struct reserved_mem *rmem,
-				       struct device *dev)
-{
-	dma_release_declared_memory(&omap_fb_device.dev);
-}
-
-static const struct reserved_mem_ops rmem_omapfb_ops = {
-	.device_init    = rmem_omapfb_device_init,
-	.device_release = rmem_omapfb_device_release,
-};
-
-static int __init rmem_omapfb_setup(struct reserved_mem *rmem)
-{
-	rmem->ops = &rmem_omapfb_ops;
-	pr_info("omapfb: reserved %d bytes at %pa\n", rmem->size, &rmem->base);
-
-	return 0;
-}
-
-RESERVEDMEM_OF_DECLARE(dss, "ti,omapfb-memsize", rmem_omapfb_setup);
 #else
 int __init omap_init_fb(void) { return 0; }
 #endif
diff --git a/arch/arm/mach-omap2/omap-pm.h b/arch/arm/mach-omap2/omap-pm.h
index e6009d7..109bef5 100644
--- a/arch/arm/mach-omap2/omap-pm.h
+++ b/arch/arm/mach-omap2/omap-pm.h
@@ -19,20 +19,6 @@
 #include <linux/clk.h>
 #include <linux/pm_opp.h>
 
-/**
- * struct omap_opp - clock frequency-to-OPP ID table for DSP, MPU
- * @rate: target clock rate
- * @opp_id: OPP ID
- * @min_vdd: minimum VDD1 voltage (in millivolts) for this OPP
- *
- * Operating performance point data.  Can vary by OMAP chip and board.
- */
-struct omap_opp {
-	unsigned long rate;
-	u8 opp_id;
-	u16 vsel;
-};
-
 /*
  * agent_id values for use with omap_pm_set_min_bus_tput():
  *
diff --git a/arch/arm/mach-omap2/omap34xx.h b/arch/arm/mach-omap2/omap34xx.h
index 9d7df0c..ed0024d 100644
--- a/arch/arm/mach-omap2/omap34xx.h
+++ b/arch/arm/mach-omap2/omap34xx.h
@@ -65,57 +65,5 @@
 #define OMAP34XX_SEC_SHA1MD5_BASE	(OMAP34XX_SEC_BASE + 0x23000)
 #define OMAP34XX_SEC_AES_BASE	(OMAP34XX_SEC_BASE + 0x25000)
 
-/* VDD1 OPPS */
-#define VDD1_OPP1	0x1
-#define VDD1_OPP2	0x2
-#define VDD1_OPP3	0x3
-#define VDD1_OPP4	0x4
-#define VDD1_OPP5	0x5
-#define VDD1_OPP6	0x6
-#define VDD1_OPP7	0x7
-#define VDD1_OPP8	0x8
-#define VDD1_OPP9	0x9
-#define VDD1_OPP10	0xA
-#define VDD1_OPP11	0xB
-#define VDD1_OPP12	0xC
-#define VDD1_OPP13	0xD
-
-/* VDD2 OPPS */
-#define VDD2_OPP1	0x1
-#define VDD2_OPP2	0x2
-#define VDD2_OPP3	0x3
-
-#define MIN_VDD1_OPP	VDD1_OPP1
-#define MAX_VDD1_OPP	VDD1_OPP13
-#define MIN_VDD2_OPP	VDD2_OPP1
-#define MAX_VDD2_OPP	VDD2_OPP3
-
-/* MPU speeds */
-#define S1150M  1150000000
-#define S1100M  1100000000
-#define S1000M  1000000000
-#define S950M   950000000
-#define S900M   900000000
-#define S850M   850000000
-#define S805M   805000000
-#define S720M   720000000
-#define S600M   600000000
-#define S550M   550000000
-#define S500M   500000000
-#define S250M   250000000
-#define S125M   125000000
-
-/* DSP speeds */
-#define S520M   520000000
-#define S430M   430000000
-#define S400M   400000000
-#define S360M   360000000
-#define S180M   180000000
-#define S90M    90000000
-
-/* L3 speeds */
-#define S83M    83000000
-#define S166M   166000000
-
 #endif /* __ASM_ARCH_OMAP3_H */
 
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index f2f2c10..05e20aa 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -38,8 +38,6 @@
 #include "omap-secure.h"
 #include "soc.h"
 #include "hsmmc.h"
-#include "cm2xxx_3xxx.h"
-#include "prm2xxx_3xxx.h"
 
 static struct omap_hsmmc_platform_data __maybe_unused mmc_pdata[2];
 
@@ -525,69 +523,6 @@
 	{ /* sentinel */ },
 };
 
-#if IS_ENABLED(CONFIG_TIDSPBRIDGE)
-static void omap_pm_dsp_set_min_opp(u8 opp_id)
-{
-	return;
-}
-static u8 omap_pm_dsp_get_opp(void)
-{
-	return 2;
-}
-
-static void omap_pm_cpu_set_freq(unsigned long f)
-{
-	return;
-}
-
-static unsigned long omap_pm_cpu_get_freq(void)
-{
-	return 250000000;
-}
-
-int omap_dsp_deassert_reset(struct platform_device *pdev)
-{
-	int ret;
-
-	ret = omap_device_deassert_hardreset(pdev, "seq1");
-	if (!ret)
-		ret = omap_device_deassert_hardreset(pdev, "logic");
-
-	return ret;
-}
-
-int omap_dsp_assert_reset(struct platform_device *pdev)
-{
-	int ret;
-
-	ret = omap_device_assert_hardreset(pdev, "logic");
-	if (!ret)
-		ret = omap_device_assert_hardreset(pdev, "seq1");
-
-	return ret;
-}
-
-struct omap_dsp_platform_data omap_dsp_pdata = {
-#ifdef CONFIG_TIDSPBRIDGE_DVFS
-	.dsp_set_min_opp = omap_pm_dsp_set_min_opp,
-	.dsp_get_opp = omap_pm_dsp_get_opp,
-	.cpu_set_freq = omap_pm_cpu_set_freq,
-	.cpu_get_freq = omap_pm_cpu_get_freq,
-#endif
-	.dsp_prm_read = omap2_prm_read_mod_reg,
-	.dsp_prm_write = omap2_prm_write_mod_reg,
-	.dsp_prm_rmw_bits = omap2_prm_rmw_mod_reg_bits,
-	.dsp_cm_read = omap2_cm_read_mod_reg,
-	.dsp_cm_write = omap2_cm_write_mod_reg,
-	.dsp_cm_rmw_bits = omap2_cm_rmw_mod_reg_bits,
-
-	.set_bootaddr = omap_ctrl_write_dsp_boot_addr,
-	.set_bootmode = omap_ctrl_write_dsp_boot_mode,
-	.assert_reset = omap_dsp_assert_reset,
-	.deassert_reset = omap_dsp_deassert_reset
-};
-#endif
-
 static struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
 #ifdef CONFIG_MACH_NOKIA_N8X0
 	OF_DEV_AUXDATA("ti,omap2420-mmc", 0x4809c000, "mmci-omap.0", NULL),
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index 1eb0629..9f6009d 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -20,7 +20,6 @@
 obj-$(CONFIG_IIO)		+= iio/
 obj-$(CONFIG_FB_SM750)		+= sm750fb/
 obj-$(CONFIG_FB_XGI)		+= xgifb/
-obj-$(CONFIG_TIDSPBRIDGE)	+= tidspbridge/
 obj-$(CONFIG_USB_EMXX)		+= emxx_udc/
 obj-$(CONFIG_SPEAKUP)		+= speakup/
 obj-$(CONFIG_MFD_NVEC)		+= nvec/
diff --git a/drivers/usb/musb/musb_debugfs.c b/drivers/usb/musb/musb_debugfs.c
index 62c13a2..9b22d94 100644
--- a/drivers/usb/musb/musb_debugfs.c
+++ b/drivers/usb/musb/musb_debugfs.c
@@ -147,34 +147,28 @@
 
 	test = musb_readb(musb->mregs, MUSB_TESTMODE);
 
-	if (test & (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS))
-		seq_printf(s, "force host full-speed\n");
-
-	else if (test & (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS))
-		seq_printf(s, "force host high-speed\n");
-
-	else if (test & MUSB_TEST_FORCE_HOST)
+	if (test & MUSB_TEST_FORCE_HOST)
 		seq_printf(s, "force host\n");
 
-	else if (test & MUSB_TEST_FIFO_ACCESS)
+	if (test & MUSB_TEST_FIFO_ACCESS)
 		seq_printf(s, "fifo access\n");
 
-	else if (test & MUSB_TEST_FORCE_FS)
+	if (test & MUSB_TEST_FORCE_FS)
 		seq_printf(s, "force full-speed\n");
 
-	else if (test & MUSB_TEST_FORCE_HS)
+	if (test & MUSB_TEST_FORCE_HS)
 		seq_printf(s, "force high-speed\n");
 
-	else if (test & MUSB_TEST_PACKET)
+	if (test & MUSB_TEST_PACKET)
 		seq_printf(s, "test packet\n");
 
-	else if (test & MUSB_TEST_K)
+	if (test & MUSB_TEST_K)
 		seq_printf(s, "test K\n");
 
-	else if (test & MUSB_TEST_J)
+	if (test & MUSB_TEST_J)
 		seq_printf(s, "test J\n");
 
-	else if (test & MUSB_TEST_SE0_NAK)
+	if (test & MUSB_TEST_SE0_NAK)
 		seq_printf(s, "test SE0 NAK\n");
 
 	return 0;
@@ -212,36 +206,30 @@
 	if (copy_from_user(buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
 		return -EFAULT;
 
-	if (strstarts(buf, "force host full-speed"))
-		test = MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS;
-
-	else if (strstarts(buf, "force host high-speed"))
-		test = MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_HS;
-
-	else if (strstarts(buf, "force host"))
+	if (strstarts(buf, "force host"))
 		test = MUSB_TEST_FORCE_HOST;
 
-	else if (strstarts(buf, "fifo access"))
+	if (strstarts(buf, "fifo access"))
 		test = MUSB_TEST_FIFO_ACCESS;
 
-	else if (strstarts(buf, "force full-speed"))
+	if (strstarts(buf, "force full-speed"))
 		test = MUSB_TEST_FORCE_FS;
 
-	else if (strstarts(buf, "force high-speed"))
+	if (strstarts(buf, "force high-speed"))
 		test = MUSB_TEST_FORCE_HS;
 
-	else if (strstarts(buf, "test packet")) {
+	if (strstarts(buf, "test packet")) {
 		test = MUSB_TEST_PACKET;
 		musb_load_testpacket(musb);
 	}
 
-	else if (strstarts(buf, "test K"))
+	if (strstarts(buf, "test K"))
 		test = MUSB_TEST_K;
 
-	else if (strstarts(buf, "test J"))
+	if (strstarts(buf, "test J"))
 		test = MUSB_TEST_J;
 
-	else if (strstarts(buf, "test SE0 NAK"))
+	if (strstarts(buf, "test SE0 NAK"))
 		test = MUSB_TEST_SE0_NAK;
 
 	musb_writeb(musb->mregs, MUSB_TESTMODE, test);
diff --git a/drivers/video/fbdev/omap2/omapfb/dss/dispc.c b/drivers/video/fbdev/omap2/omapfb/dss/dispc.c
index f002a4d..7a75dfd 100644
--- a/drivers/video/fbdev/omap2/omapfb/dss/dispc.c
+++ b/drivers/video/fbdev/omap2/omapfb/dss/dispc.c
@@ -738,17 +738,6 @@
 	dispc_write_reg(DISPC_OVL_BA0(plane), paddr);
 }
 
-void omap_dispc_set_plane_ba0(enum omap_channel channel, enum omap_plane plane,
-			      u32 paddr)
-{
-	if (dispc_runtime_get())
-		return;
-	dispc_ovl_set_ba0(plane, paddr);
-	dispc_mgr_go(channel);
-	dispc_runtime_put();
-}
-EXPORT_SYMBOL_GPL(omap_dispc_set_plane_ba0);
-
 static void dispc_ovl_set_ba1(enum omap_plane plane, u32 paddr)
 {
 	dispc_write_reg(DISPC_OVL_BA1(plane), paddr);
diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c
index d6e3215..2bcb86e 100644
--- a/fs/kernfs/file.c
+++ b/fs/kernfs/file.c
@@ -802,10 +802,10 @@
 	if (of->event != atomic_read(&on->event))
 		goto trigger;
 
-	return 0;
+	return DEFAULT_POLLMASK;
 
  trigger:
-	return POLLERR|POLLPRI;
+	return DEFAULT_POLLMASK|POLLERR|POLLPRI;
 }
 
 static void kernfs_notify_workfn(struct work_struct *work)
diff --git a/include/linux/platform_data/dsp-omap.h b/include/linux/platform_data/dsp-omap.h
deleted file mode 100644
index ec1816c..0000000
--- a/include/linux/platform_data/dsp-omap.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef __OMAP_DSP_H__
-#define __OMAP_DSP_H__
-
-#include <linux/types.h>
-#include <linux/platform_device.h>
-
-struct omap_dsp_platform_data {
-	void (*dsp_set_min_opp) (u8 opp_id);
-	u8 (*dsp_get_opp) (void);
-	void (*cpu_set_freq) (unsigned long f);
-	unsigned long (*cpu_get_freq) (void);
-	unsigned long mpu_speed[6];
-
-	/* functions to write and read PRCM registers */
-	void (*dsp_prm_write)(u32, s16 , u16);
-	u32 (*dsp_prm_read)(s16 , u16);
-	u32 (*dsp_prm_rmw_bits)(u32, u32, s16, s16);
-	void (*dsp_cm_write)(u32, s16 , u16);
-	u32 (*dsp_cm_read)(s16 , u16);
-	u32 (*dsp_cm_rmw_bits)(u32, u32, s16, s16);
-
-	void (*set_bootaddr)(u32);
-	void (*set_bootmode)(u8);
-
-	int (*assert_reset)(struct platform_device *pdev);
-	int (*deassert_reset)(struct platform_device *pdev);
-};
-
-#endif
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 0b1bd56..18b285e 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -2103,9 +2103,6 @@
 	if (unlikely(skb->len < len_rthdr))
 		goto fail; /* skb too short for claimed rt header extent */
 
-	dev->stats.tx_packets++;
-	dev->stats.tx_bytes += skb->len;
-
 	/*
 	 * fix up the pointers accounting for the radiotap
 	 * header still being in there.  We are being given