Merge changes I4b7123e9,I74fa8f0e into msm-3.4

* changes:
  msm: vidc: Adds bus scaling for video codecs
  msm: vidc: Change configuration flag for video.
diff --git a/arch/arm/configs/msm8660_defconfig b/arch/arm/configs/msm8660_defconfig
index f329c81..f1c0aaa 100644
--- a/arch/arm/configs/msm8660_defconfig
+++ b/arch/arm/configs/msm8660_defconfig
@@ -288,8 +288,6 @@
 # CONFIG_I2C_MSM is not set
 CONFIG_I2C_QUP=y
 CONFIG_I2C_SSBI=y
-CONFIG_MSM_IOMMU=y
-# CONFIG_IOMMU_PGTABLES_L2 is not set
 CONFIG_SPI=y
 CONFIG_SPI_QUP=y
 CONFIG_SPI_SPIDEV=m
@@ -420,6 +418,8 @@
 CONFIG_ANDROID_TIMED_GPIO=y
 CONFIG_ANDROID_LOW_MEMORY_KILLER=y
 CONFIG_MSM_SSBI=y
+CONFIG_MSM_IOMMU=y
+# CONFIG_IOMMU_PGTABLES_L2 is not set
 CONFIG_EXT2_FS=y
 CONFIG_EXT2_FS_XATTR=y
 CONFIG_EXT3_FS=y
diff --git a/arch/arm/configs/msm8960-perf_defconfig b/arch/arm/configs/msm8960-perf_defconfig
index 0197f78..c2f4702 100644
--- a/arch/arm/configs/msm8960-perf_defconfig
+++ b/arch/arm/configs/msm8960-perf_defconfig
@@ -88,7 +88,6 @@
 CONFIG_MSM_BUS_RPM_MULTI_TIER_ENABLED=y
 CONFIG_MSM_WATCHDOG=y
 CONFIG_MSM_DLOAD_MODE=y
-CONFIG_MSM_QDSS=y
 CONFIG_MSM_SLEEP_STATS=y
 CONFIG_MSM_EBI_ERP=y
 CONFIG_MSM_CACHE_ERP=y
@@ -345,13 +344,13 @@
 CONFIG_MSM_CAMERA_FLASH_SC628A=y
 CONFIG_MSM_CAMERA_FLASH_TPS61310=y
 CONFIG_OV2720=y
-CONFIG_MSM_CSI20_HEADER=y
 CONFIG_MSM_CAMERA_SENSOR=y
 CONFIG_MSM_ACTUATOR=y
 CONFIG_MSM_EEPROM=y
 CONFIG_IMX074_EEPROM=y
 CONFIG_IMX091_EEPROM=y
 CONFIG_MSM_GEMINI=y
+CONFIG_MSM_CSI20_HEADER=y
 CONFIG_S5K3L1YX=y
 CONFIG_IMX091=y
 CONFIG_RADIO_IRIS=y
@@ -452,6 +451,7 @@
 CONFIG_MSM_IOMMU=y
 CONFIG_MOBICORE_SUPPORT=m
 CONFIG_MOBICORE_API=m
+CONFIG_MSM_QDSS=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT2_FS_XATTR=y
 CONFIG_EXT3_FS=y
diff --git a/arch/arm/configs/msm8960_defconfig b/arch/arm/configs/msm8960_defconfig
index d2aaeb0..a50485d 100644
--- a/arch/arm/configs/msm8960_defconfig
+++ b/arch/arm/configs/msm8960_defconfig
@@ -87,8 +87,6 @@
 CONFIG_MSM_BUS_RPM_MULTI_TIER_ENABLED=y
 CONFIG_MSM_WATCHDOG=y
 CONFIG_MSM_DLOAD_MODE=y
-CONFIG_MSM_QDSS=y
-CONFIG_MSM_QDSS_ETM_DEFAULT_ENABLE=y
 CONFIG_MSM_RTB=y
 CONFIG_MSM_RTB_SEPARATE_CPUS=y
 CONFIG_MSM_EBI_ERP=y
@@ -349,13 +347,13 @@
 CONFIG_IMX074_ACT=y
 CONFIG_MSM_CAMERA_FLASH_SC628A=y
 CONFIG_OV2720=y
-CONFIG_MSM_CSI20_HEADER=y
 CONFIG_MSM_CAMERA_SENSOR=y
 CONFIG_MSM_ACTUATOR=y
 CONFIG_MSM_EEPROM=y
 CONFIG_IMX074_EEPROM=y
 CONFIG_IMX091_EEPROM=y
 CONFIG_MSM_GEMINI=y
+CONFIG_MSM_CSI20_HEADER=y
 CONFIG_S5K3L1YX=y
 CONFIG_IMX091=y
 CONFIG_RADIO_IRIS=y
@@ -455,6 +453,8 @@
 CONFIG_MSM_IOMMU=y
 CONFIG_MOBICORE_SUPPORT=m
 CONFIG_MOBICORE_API=m
+CONFIG_MSM_QDSS=y
+CONFIG_MSM_QDSS_ETM_DEFAULT_ENABLE=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT2_FS_XATTR=y
 CONFIG_EXT3_FS=y
diff --git a/arch/arm/configs/msm8974_defconfig b/arch/arm/configs/msm8974_defconfig
index 622d165..63d2ced 100644
--- a/arch/arm/configs/msm8974_defconfig
+++ b/arch/arm/configs/msm8974_defconfig
@@ -46,18 +46,17 @@
 CONFIG_MSM_PIL_LPASS_QDSP6V5=y
 CONFIG_MSM_PIL_MSS_QDSP6V5=y
 CONFIG_MSM_PIL_MBA=y
-CONFIG_MSM_PIL_PRONTO=y
 CONFIG_MSM_PIL_VENUS=y
+CONFIG_MSM_PIL_PRONTO=y
 CONFIG_MSM_TZ_LOG=y
 CONFIG_MSM_DIRECT_SCLK_ACCESS=y
-CONFIG_MSM_OCMEM=y
 CONFIG_MSM_WATCHDOG_V2=y
+CONFIG_MSM_OCMEM=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_SMP=y
 # CONFIG_SMP_ON_UP is not set
 CONFIG_ARM_ARCH_TIMER=y
-CONFIG_HOTPLUG_CPU=y
 CONFIG_PREEMPT=y
 CONFIG_AEABI=y
 CONFIG_HIGHMEM=y
@@ -101,6 +100,7 @@
 CONFIG_IPV6_SUBTREES=y
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_RAM=y
+CONFIG_QSEECOM=y
 CONFIG_SCSI=y
 CONFIG_SCSI_TGT=y
 CONFIG_BLK_DEV_SD=y
@@ -114,9 +114,9 @@
 CONFIG_BLK_DEV_DM=y
 CONFIG_DM_CRYPT=y
 CONFIG_NETDEVICES=y
+CONFIG_DUMMY=y
 CONFIG_KS8851=m
 # CONFIG_MSM_RMNET is not set
-CONFIG_DUMMY=y
 CONFIG_INPUT_EVDEV=y
 CONFIG_INPUT_EVBUG=m
 CONFIG_INPUT_JOYSTICK=y
@@ -137,7 +137,6 @@
 CONFIG_SPI_SPIDEV=m
 CONFIG_SPMI=y
 CONFIG_SPMI_MSM_PMIC_ARB=y
-CONFIG_MSM_QPNP=y
 CONFIG_MSM_QPNP_INT=y
 CONFIG_SLIMBUS=y
 CONFIG_SLIMBUS_MSM_CTRL=y
@@ -168,6 +167,10 @@
 # CONFIG_LCD_CLASS_DEVICE is not set
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 # CONFIG_BACKLIGHT_GENERIC is not set
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_MSM8974=y
 CONFIG_USB=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_STORAGE=y
@@ -232,25 +235,13 @@
 CONFIG_DEBUG_LL=y
 CONFIG_EARLY_PRINTK=y
 CONFIG_KEYS=y
-CONFIG_CRYPTO_AUTHENC=y
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_HMAC=y
 CONFIG_CRYPTO_MD4=y
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
 CONFIG_CRYPTO_SHA256=y
 CONFIG_CRYPTO_AES=y
 CONFIG_CRYPTO_ARC4=y
-CONFIG_CRYPTO_DES=y
 CONFIG_CRYPTO_TWOFISH=y
-CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRC_CCITT=y
-CONFIG_LIBCRC32C=y
-CONFIG_SOUND=y
-CONFIG_SND=y
-CONFIG_SND_SOC=y
-CONFIG_SND_SOC_MSM8974=y
 CONFIG_CRYPTO_DEV_QCRYPTO=m
 CONFIG_CRYPTO_DEV_QCE=m
 CONFIG_CRYPTO_DEV_QCEDEV=m
-CONFIG_QSEECOM=y
+CONFIG_CRC_CCITT=y
+CONFIG_LIBCRC32C=y
diff --git a/arch/arm/configs/msm9615_defconfig b/arch/arm/configs/msm9615_defconfig
index 5acfd24..db94f13 100644
--- a/arch/arm/configs/msm9615_defconfig
+++ b/arch/arm/configs/msm9615_defconfig
@@ -78,11 +78,11 @@
 CONFIG_PACKET=y
 CONFIG_UNIX=y
 CONFIG_INET=y
-CONFIG_IP_ADVANCED_ROUTER=y
 CONFIG_IP_MULTICAST=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_IP_MROUTE=y
+CONFIG_IP_ADVANCED_ROUTER=y
 CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V2=y
 # CONFIG_INET_XFRM_MODE_TRANSPORT is not set
 # CONFIG_INET_XFRM_MODE_TUNNEL is not set
 # CONFIG_INET_XFRM_MODE_BEET is not set
diff --git a/arch/arm/configs/msm9625_defconfig b/arch/arm/configs/msm9625_defconfig
index bb3554b..7ca9f49 100644
--- a/arch/arm/configs/msm9625_defconfig
+++ b/arch/arm/configs/msm9625_defconfig
@@ -69,6 +69,9 @@
 # CONFIG_HWMON is not set
 # CONFIG_HID_SUPPORT is not set
 # CONFIG_USB_SUPPORT is not set
+CONFIG_SPS=y
+CONFIG_SPS_SUPPORT_BAMDMA=y
+CONFIG_SPS_SUPPORT_NDP_BAM=y
 CONFIG_VFAT_FS=y
 CONFIG_TMPFS=y
 # CONFIG_MISC_FILESYSTEMS is not set
@@ -85,9 +88,6 @@
 CONFIG_DEBUG_MEMORY_INIT=y
 CONFIG_DYNAMIC_DEBUG=y
 CONFIG_DEBUG_USER=y
-CONFIG_SPS=y
-CONFIG_SPS_SUPPORT_BAMDMA=y
-CONFIG_SPS_SUPPORT_NDP_BAM=y
 CONFIG_KEYS=y
 CONFIG_CRYPTO_AUTHENC=y
 CONFIG_CRYPTO_CBC=y
diff --git a/arch/arm/mach-msm/include/mach/irqs-8064.h b/arch/arm/mach-msm/include/mach/irqs-8064.h
index a5f78f5..973034b 100644
--- a/arch/arm/mach-msm/include/mach/irqs-8064.h
+++ b/arch/arm/mach-msm/include/mach/irqs-8064.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 and
@@ -287,13 +287,14 @@
 #define	PCIE20_INTC				(GIC_SPI_START + 241)
 #define	PCIE20_INTD				(GIC_SPI_START + 242)
 #define	PCIE20_INT_PLS_HP			(GIC_SPI_START + 243)
-#define	PCIE20_INT_PLS_PME			(GIC_SPI_START + 244)
-#define	PCIE20_INT_LINK_UP			(GIC_SPI_START + 245)
-#define	PCIE20_INT_LINK_DOWN			(GIC_SPI_START + 246)
-#define	PCIE20_INT_HP_LEGACY			(GIC_SPI_START + 247)
-#define	PCIE20_AER_LEGACY			(GIC_SPI_START + 248)
-#define	PCIE20_INT_PME_LEGACY			(GIC_SPI_START + 249)
-#define	PCIE20_INT_BRIDGE_FLUSH_N		(GIC_SPI_START + 250)
+#define	PCIE20_INT_PLS_ERR			(GIC_SPI_START + 244)
+#define	PCIE20_INT_PLS_PME			(GIC_SPI_START + 245)
+#define	PCIE20_INT_LINK_UP			(GIC_SPI_START + 246)
+#define	PCIE20_INT_LINK_DOWN			(GIC_SPI_START + 247)
+#define	PCIE20_INT_HP_LEGACY			(GIC_SPI_START + 248)
+#define	PCIE20_INT_AER_LEGACY			(GIC_SPI_START + 249)
+#define	PCIE20_INT_PME_LEGACY			(GIC_SPI_START + 250)
+#define	PCIE20_INT_BRIDGE_FLUSH_N		(GIC_SPI_START + 251)
 
 /* Backwards compatible IRQ macros. */
 #define INT_ADM_AARM				ADM_0_SCSS_0_IRQ
diff --git a/drivers/media/video/msm/sensors/s5k3l1yx.c b/drivers/media/video/msm/sensors/s5k3l1yx.c
index c24da00..f480a1c 100644
--- a/drivers/media/video/msm/sensors/s5k3l1yx.c
+++ b/drivers/media/video/msm/sensors/s5k3l1yx.c
@@ -408,7 +408,7 @@
 	{0x3C13, 0xC0},
 	{0x3C14, 0x70},
 	{0x3C15, 0x80},
-	{0x3C20, 0x00},
+	{0x3C20, 0x04},
 	{0x3C23, 0x03},
 	{0x3C24, 0x00},
 	{0x3C50, 0x72},
diff --git a/drivers/tty/smux_ctl.c b/drivers/tty/smux_ctl.c
index 2b8f028..0078b04 100644
--- a/drivers/tty/smux_ctl.c
+++ b/drivers/tty/smux_ctl.c
@@ -52,6 +52,7 @@
 };
 
 #define SMUX_CTL_NUM_CHANNELS ARRAY_SIZE(smux_ctl_ch_id)
+#define DEFAULT_OPEN_TIMEOUT 5
 
 struct smux_ctl_dev {
 	int id;
@@ -64,6 +65,7 @@
 	int is_channel_reset;
 	int is_high_wm;
 	int write_pending;
+	unsigned open_timeout_val;
 
 	struct mutex rx_lock;
 	uint32_t read_avail;
@@ -149,6 +151,52 @@
 #define SMUXCTL_SET_LOOPBACK(lcid) do {} while (0)
 #endif
 
+static ssize_t open_timeout_store(struct device *d,
+		struct device_attribute *attr,
+		const char *buf,
+		size_t n)
+{
+	int i;
+	unsigned long tmp;
+	for (i = 0; i < SMUX_CTL_NUM_CHANNELS; ++i) {
+		if (smux_ctl_devp[i]->devicep == d)
+			break;
+	}
+	if (i >= SMUX_CTL_NUM_CHANNELS) {
+		pr_err("%s: unable to match device to valid smux ctl port\n",
+				__func__);
+		return -EINVAL;
+	}
+	if (!kstrtoul(buf, 10, &tmp)) {
+		smux_ctl_devp[i]->open_timeout_val = tmp;
+		return n;
+	} else {
+		pr_err("%s: unable to convert: %s to an int\n", __func__,
+				buf);
+		return -EINVAL;
+	}
+}
+
+static ssize_t open_timeout_show(struct device *d,
+		struct device_attribute *attr,
+		char *buf)
+{
+	int i;
+	for (i = 0; i < SMUX_CTL_NUM_CHANNELS; ++i) {
+		if (smux_ctl_devp[i]->devicep == d)
+			break;
+	}
+	if (i >= SMUX_CTL_NUM_CHANNELS) {
+		pr_err("%s: unable to match device to valid smux ctl port\n",
+				__func__);
+		return -EINVAL;
+	}
+	return snprintf(buf, PAGE_SIZE, "%d\n",
+			smux_ctl_devp[i]->open_timeout_val);
+}
+
+static DEVICE_ATTR(open_timeout, 0664, open_timeout_show, open_timeout_store);
+
 static int get_ctl_dev_index(int id)
 {
 	int dev_index;
@@ -323,6 +371,7 @@
 {
 	int r = 0;
 	struct smux_ctl_dev *devp;
+	unsigned wait_time = DEFAULT_OPEN_TIMEOUT * HZ;
 
 	if (!smux_ctl_inited)
 		return -EIO;
@@ -349,11 +398,14 @@
 			return r;
 		}
 
+		if (devp->open_timeout_val)
+			wait_time = devp->open_timeout_val * HZ;
+
 		r = wait_event_interruptible_timeout(
 				devp->write_wait_queue,
 				(devp->state == SMUX_CONNECTED ||
-				 devp->abort_wait),
-				(5 * HZ));
+				devp->abort_wait),
+				wait_time);
 		if (r == 0)
 			r = -ETIMEDOUT;
 
@@ -822,6 +874,11 @@
 			kfree(smux_ctl_devp[i]);
 			goto error2;
 		}
+		if (device_create_file(smux_ctl_devp[i]->devicep,
+				&dev_attr_open_timeout))
+			pr_err("%s: unable to create device attr for" \
+				" smux ctl dev id:%d\n", __func__, i);
+
 	}
 
 	smux_ctl_inited = 1;