Hi,
I have made the following changes to kernel-adaptation-mrst in project
Trunk:Testing. Please review and accept ASAP.
Thank You,
kaccardi
[This message was auto-generated]
---
Request #22037:
submit: devel:kernel/kernel-adaptation-mrst(r190) ->
Trunk:Testing/kernel-adaptation-mrst
Message:
* Thu Jun 30 2011 - Kristen Carlson Accardi<[email protected]> -
2.6.37.6
- audio - bypass enabling audio port& yield to i2s bus for bt (BZ 6776, 7056)
- camera - reduce debug output (BZ 9826)
- camera - skip frame when changing resolution (BZ 9947)
State: new 2011-06-30T13:45:34 kaccardi
Comment: None
changes files:
--------------
--- kernel.changes
+++ kernel.changes
@@ -0,0 +1,5 @@
+* Thu Jun 30 2011 - Kristen Carlson Accardi<[email protected]> -
2.6.37.6
+- audio - bypass enabling audio port& yield to i2s bus for bt (BZ 6776, 7056)
+- camera - reduce debug output (BZ 9826)
+- camera - skip frame when changing resolution (BZ 9947)
+
new:
----
linux-2.6.37-camera-ov5640-ov9740-version-0.957_to_0.958.patch
linux-2.6.37-camera-ov5640-ov9740-version-0.958_to_0.959.patch
linux-2.6.37-sst-add-a-new-ioctl-on-intel_sst-to-tristate-PMIC-dy.patch
linux-2.6.37-sst-add-another-meaning-for-device_route-to-bypass-t.patch
spec files:
-----------
--- kernel-adaptation-mrst.spec
+++ kernel-adaptation-mrst.spec
@@ -338,39 +338,43 @@
Patch281: linux-2.6.37-camera-ov5640-ov9740-version-0.954_to_0.955.patch
Patch282: linux-2.6.37-camera-ov5640-ov9740-version-0.955_to_0.956.patch
Patch283: linux-2.6.37-camera-ov5640-ov9740-version-0.956_to_0.957.patch
+Patch284: linux-2.6.37-camera-ov5640-ov9740-version-0.957_to_0.958.patch
+Patch285: linux-2.6.37-camera-ov5640-ov9740-version-0.958_to_0.959.patch
# ehci patches
-Patch284: linux-2.6.37-ehci-runtime-pm.patch
-Patch285: linux-2.6.37-ehci-wakeup.patch
+Patch286: linux-2.6.37-ehci-runtime-pm.patch
+Patch287: linux-2.6.37-ehci-wakeup.patch
# otg patches
#linux-2.6.37-otg-threaded-irq.patch
-Patch286: linux-2.6.37-otg-ignore-data-pulse.patch
-Patch287: linux-2.6.37-mrst-pci-mark-otg-runwake.patch
-Patch288: linux-2.6.37-mrst-pci-assign-d3_delay-to-zero.patch
-Patch289: linux-2.6.37-otg-balance-runtime-pm.patch
+Patch288: linux-2.6.37-otg-ignore-data-pulse.patch
+Patch289: linux-2.6.37-mrst-pci-mark-otg-runwake.patch
+Patch290: linux-2.6.37-mrst-pci-assign-d3_delay-to-zero.patch
+Patch291: linux-2.6.37-otg-balance-runtime-pm.patch
# option (3g) patches
-Patch290: linux-2.6.37-usb_wwan-fix-error-case-in-close.patch
-Patch291: linux-2.6.37-usb_wwan-fix-error-in-marking-device-busy.patch
-Patch292: linux-2.6.37-usb_wwan-fix-runtime-PM-in-error-case.patch
+Patch292: linux-2.6.37-usb_wwan-fix-error-case-in-close.patch
+Patch293: linux-2.6.37-usb_wwan-fix-error-in-marking-device-busy.patch
+Patch294: linux-2.6.37-usb_wwan-fix-runtime-PM-in-error-case.patch
# audio
-Patch293: linux-2.6.37-sst-power-sequence.patch
-Patch294: linux-2.6.37-sst-add-Master-Volume.patch
-Patch295: linux-2.6.37-sst-fix-pop-sound-from-speaker-after-playback.patch
+Patch295: linux-2.6.37-sst-power-sequence.patch
+Patch296: linux-2.6.37-sst-add-Master-Volume.patch
+Patch297: linux-2.6.37-sst-fix-pop-sound-from-speaker-after-playback.patch
+Patch298:
linux-2.6.37-sst-add-another-meaning-for-device_route-to-bypass-t.patch
+Patch299:
linux-2.6.37-sst-add-a-new-ioctl-on-intel_sst-to-tristate-PMIC-dy.patch
# keys
-Patch296: linux-2.6.37-gpio-keys-add-new-power-key.patch
-Patch297: linux-2.6.37-mrst-add-sw-front-proxmity-key.patch
+Patch300: linux-2.6.37-gpio-keys-add-new-power-key.patch
+Patch301: linux-2.6.37-mrst-add-sw-front-proxmity-key.patch
# sensor patches
-Patch298: linux-2.6.37-pca953x-revert-to-handle-nested-irq.patch
-Patch299: linux-2.6.37-ar1520.patch
-Patch300: linux-2.6.37-mrst-add-bma023-platform-data-handler.patch
+Patch302: linux-2.6.37-pca953x-revert-to-handle-nested-irq.patch
+Patch303: linux-2.6.37-ar1520.patch
+Patch304: linux-2.6.37-mrst-add-bma023-platform-data-handler.patch
# serial
-Patch301: linux-2.6.37-max3110-clean-prints.patch
+Patch305: linux-2.6.37-max3110-clean-prints.patch
#
# End of the Moorsetown architecture patches
@@ -794,57 +798,65 @@
%patch282 -p1
# linux-2.6.37-camera-ov5640-ov9740-version-0.956_to_0.957.patch
%patch283 -p1
+# linux-2.6.37-camera-ov5640-ov9740-version-0.957_to_0.958.patch
+%patch284 -p1
+# linux-2.6.37-camera-ov5640-ov9740-version-0.958_to_0.959.patch
+%patch285 -p1
# ehci patches
# linux-2.6.37-ehci-runtime-pm.patch
-%patch284 -p1
+%patch286 -p1
# linux-2.6.37-ehci-wakeup.patch
-%patch285 -p1
+%patch287 -p1
# otg patches
#linux-2.6.37-otg-threaded-irq.patch
# linux-2.6.37-otg-ignore-data-pulse.patch
-%patch286 -p1
+%patch288 -p1
# linux-2.6.37-mrst-pci-mark-otg-runwake.patch
-%patch287 -p1
+%patch289 -p1
# linux-2.6.37-mrst-pci-assign-d3_delay-to-zero.patch
-%patch288 -p1
+%patch290 -p1
# linux-2.6.37-otg-balance-runtime-pm.patch
-%patch289 -p1
+%patch291 -p1
# option (3g) patches
# linux-2.6.37-usb_wwan-fix-error-case-in-close.patch
-%patch290 -p1
+%patch292 -p1
# linux-2.6.37-usb_wwan-fix-error-in-marking-device-busy.patch
-%patch291 -p1
+%patch293 -p1
# linux-2.6.37-usb_wwan-fix-runtime-PM-in-error-case.patch
-%patch292 -p1
+%patch294 -p1
# audio
# linux-2.6.37-sst-power-sequence.patch
-%patch293 -p1
+%patch295 -p1
# linux-2.6.37-sst-add-Master-Volume.patch
-%patch294 -p1
+%patch296 -p1
# linux-2.6.37-sst-fix-pop-sound-from-speaker-after-playback.patch
-%patch295 -p1
+%patch297 -p1
+# linux-2.6.37-sst-add-another-meaning-for-device_route-to-bypass-t.patch
+%patch298 -p1
+# linux-2.6.37-sst-add-a-new-ioctl-on-intel_sst-to-tristate-PMIC-dy.patch
+%patch299 -p1
# keys
# linux-2.6.37-gpio-keys-add-new-power-key.patch
-%patch296 -p1
+%patch300 -p1
# linux-2.6.37-mrst-add-sw-front-proxmity-key.patch
-%patch297 -p1
+%patch301 -p1
# sensor patches
# linux-2.6.37-pca953x-revert-to-handle-nested-irq.patch
-%patch298 -p1
+%patch302 -p1
# linux-2.6.37-ar1520.patch
-%patch299 -p1
+%patch303 -p1
# linux-2.6.37-mrst-add-bma023-platform-data-handler.patch
-%patch300 -p1
+%patch304 -p1
# serial
# linux-2.6.37-max3110-clean-prints.patch
-%patch301 -p1
+%patch305 -p1
#
# End of the Moorsetown architecture patches
other changes:
--------------
++++++ linux-2.6.37-camera-ov5640-ov9740-version-0.957_to_0.958.patch (new)
--- linux-2.6.37-camera-ov5640-ov9740-version-0.957_to_0.958.patch
+++ linux-2.6.37-camera-ov5640-ov9740-version-0.957_to_0.958.patch
+From: Yong He<[email protected]>
+Subject: [PATCH] MRST Tablet camera driver ver-0.958, fix 9826
+
+Bug 9826 - camera driver is very noisy
+
+replace dprintk with sysfs interface debug
+
+Signed-off-by: Yong He<[email protected]>
+Index: linux-2.6.37/drivers/staging/mrstci/mrstisp/include/mrstisp_stdinc.h
+===================================================================
+--- linux-2.6.37/drivers/staging/mrstci/mrstisp/include/mrstisp_stdinc.h
(revision 128)
++++ linux-2.6.37/drivers/staging/mrstci/mrstisp/include/mrstisp_stdinc.h
(working copy)
+@@ -108,9 +108,9 @@
+ printk(KERN_ERR "mrstisp@%s" fmt "\n", \
+ __func__, ## arg);
+
+-#define DBG_entering dprintk(1, "entering");
+-#define DBG_leaving dprintk(1, "leaving");
+-#define DBG_line dprintk(1, " line: %d", __LINE__);
++#define DBG_entering pr_debug("mrstisp@%s:entering\n", __func__);
++#define DBG_leaving pr_debug("mrstisp@%s:leaving\n", __func__);
++#define DBG_line pr_debug(" line: %d\n", __LINE__);
+
+ #include "reg_access.h"
+
+Index: linux-2.6.37/drivers/staging/mrstci/mrstisp/mrstisp_main.c
+===================================================================
+--- linux-2.6.37/drivers/staging/mrstci/mrstisp/mrstisp_main.c (revision 128)
++++ linux-2.6.37/drivers/staging/mrstci/mrstisp/mrstisp_main.c (working copy)
+@@ -32,7 +32,7 @@
+ #define GPIO_STDBY2_PIN 49
+ #define GPIO_RESET_PIN 50
+
+-int mrstisp_debug = 3;
++int mrstisp_debug;
+ module_param(mrstisp_debug, int, 0644);
+ /* For some reason ISP needs some "extra syncs" with sensor mt9d113 */
+ int isp_extra_sync_for_mt9d113;
+@@ -220,30 +220,30 @@
+
+ static void print_snr_cfg(struct ci_sensor_config *cfg)
+ {
+- dprintk(2, "bus width = %x", cfg->bus_width);
+- dprintk(2, "mode = %x", cfg->mode);
+- dprintk(2, "field_inv = %x", cfg->field_inv);
+- dprintk(2, "field_sel = %x", cfg->field_sel);
+- dprintk(2, "ycseq = %x", cfg->ycseq);
+- dprintk(2, "conv422 = %x", cfg->conv422);
+- dprintk(2, "bpat = %x", cfg->bpat);
+- dprintk(2, "hpol = %x", cfg->hpol);
+- dprintk(2, "vpol = %x", cfg->vpol);
+- dprintk(2, "edge = %x", cfg->edge);
+- dprintk(2, "bls = %x", cfg->bls);
+- dprintk(2, "gamma = %x", cfg->gamma);
+- dprintk(2, "cconv = %x", cfg->cconv);
+- dprintk(2, "res = %x", cfg->res);
+- dprintk(2, "blc = %x", cfg->blc);
+- dprintk(2, "agc = %x", cfg->agc);
+- dprintk(2, "awb = %x", cfg->awb);
+- dprintk(2, "aec = %x", cfg->aec);
+- dprintk(2, "cie_profile = %x", cfg->cie_profile);
+- dprintk(2, "flicker_freq = %x", cfg->flicker_freq);
+- dprintk(2, "smia_mode = %x", cfg->smia_mode);
+- dprintk(2, "mipi_mode = %x", cfg->mipi_mode);
+- dprintk(2, "type = %x", cfg->type);
+- dprintk(2, "name = %s", cfg->name);
++ pr_debug("bus width = %x", cfg->bus_width);
++ pr_debug("mode = %x", cfg->mode);
++ pr_debug("field_inv = %x", cfg->field_inv);
++ pr_debug("field_sel = %x", cfg->field_sel);
++ pr_debug("ycseq = %x", cfg->ycseq);
++ pr_debug("conv422 = %x", cfg->conv422);
++ pr_debug("bpat = %x", cfg->bpat);
++ pr_debug("hpol = %x", cfg->hpol);
++ pr_debug("vpol = %x", cfg->vpol);
++ pr_debug("edge = %x", cfg->edge);
++ pr_debug("bls = %x", cfg->bls);
++ pr_debug("gamma = %x", cfg->gamma);
++ pr_debug("cconv = %x", cfg->cconv);
++ pr_debug("res = %x", cfg->res);
++ pr_debug("blc = %x", cfg->blc);
++ pr_debug("agc = %x", cfg->agc);
++ pr_debug("awb = %x", cfg->awb);
++ pr_debug("aec = %x", cfg->aec);
++ pr_debug("cie_profile = %x", cfg->cie_profile);
++ pr_debug("flicker_freq = %x", cfg->flicker_freq);
++ pr_debug("smia_mode = %x", cfg->smia_mode);
++ pr_debug("mipi_mode = %x", cfg->mipi_mode);
++ pr_debug("type = %x", cfg->type);
++ pr_debug("name = %s", cfg->name);
+ }
+
+ static int mrst_isp_defcfg_all_load(struct ci_isp_config *isp_config)
+@@ -424,21 +424,21 @@
+ if (jpg_review->pix_fmt == V4L2_PIX_FMT_YUV420
+ || jpg_review->pix_fmt == V4L2_PIX_FMT_YVU420) {
+
+- dprintk(3, "VF yuv420 fmt");
++ dev_dbg(&isp->vdev->dev, "VF yuv420 fmt");
+ isp_sf_mi_path_conf.ybuffer.size = bufsize;
+ isp_sf_mi_path_conf.cb_buffer.size = bufsize/4;
+ isp_sf_mi_path_conf.cr_buffer.size = bufsize/4;
+
+ } else if (jpg_review->pix_fmt == V4L2_PIX_FMT_YUV422P) {
+
+- dprintk(3, "VF yuv422 fmt");
++ dev_dbg(&isp->vdev->dev, "VF yuv422 fmt");
+ isp_sf_mi_path_conf.ybuffer.size = bufsize;
+ isp_sf_mi_path_conf.cb_buffer.size = bufsize/2;
+ isp_sf_mi_path_conf.cr_buffer.size = bufsize/2;
+
+ } else if (jpg_review->pix_fmt == V4L2_PIX_FMT_NV12) {
+
+- dprintk(3, "VF nv12 fmt");
++ dev_dbg(&isp->vdev->dev, "VF nv12 fmt");
+ isp_sf_mi_path_conf.ybuffer.size = bufsize;
+ isp_sf_mi_path_conf.cb_buffer.size = bufsize/2;
+ isp_sf_mi_path_conf.cr_buffer.size = 0;
+@@ -489,25 +489,25 @@
+ if (isp->pixelformat == V4L2_PIX_FMT_YUV420
+ || isp->pixelformat == V4L2_PIX_FMT_YVU420) {
+
+- dprintk(3, "yuv420 fmt");
++ dev_dbg(&isp->vdev->dev, "yuv420 fmt");
+ isp_mi_path_conf.ybuffer.size = bufsize;
+ isp_mi_path_conf.cb_buffer.size = bufsize/4;
+ isp_mi_path_conf.cr_buffer.size = bufsize/4;
+ } else if (isp->pixelformat == V4L2_PIX_FMT_YUV422P) {
+
+- dprintk(3, "yuv422 fmt");
++ dev_dbg(&isp->vdev->dev, "yuv422 fmt");
+ isp_mi_path_conf.ybuffer.size = bufsize;
+ isp_mi_path_conf.cb_buffer.size = bufsize/2;
+ isp_mi_path_conf.cr_buffer.size = bufsize/2;
+ } else if (isp->pixelformat == V4L2_PIX_FMT_NV12) {
+
+- dprintk(3, "nv12 fmt");
++ dev_dbg(&isp->vdev->dev, "nv12 fmt");
+ isp_mi_path_conf.ybuffer.size = bufsize;
+ isp_mi_path_conf.cb_buffer.size = bufsize/2;
+ isp_mi_path_conf.cr_buffer.size = 0;
+ } else {
+
+- dprintk(3, "jpeg and rgb fmt");
++ dev_dbg(&isp->vdev->dev, "jpeg and rgb fmt");
+ isp_mi_path_conf.ybuffer.size = bufsize;
+ isp_mi_path_conf.cb_buffer.size = 0;
+ isp_mi_path_conf.cr_buffer.size = 0;
+@@ -584,7 +584,7 @@
+
+ if (isp->pixelformat == V4L2_PIX_FMT_JPEG) {
+
+- dprintk(1, "jpeg fmt");
++ dev_dbg(&isp->vdev->dev, "jpeg fmt");
+
+ dp_main.flags = CI_ISP_DPD_ENABLE | CI_ISP_DPD_MODE_ISPJPEG;
+ config->view_finder.flags |= VFFLAG_USE_MAINPATH;
+@@ -594,7 +594,7 @@
+
+ if (isp->sys_conf.jpg_review_enable) {
+
+- dprintk(1, "jpg_review enabled in VF");
++ dev_dbg(&isp->vdev->dev, "jpg_review enabled in VF");
+
+ self_rect.w = jpg_review->width;
+ self_rect.h = jpg_review->height;
+@@ -613,7 +613,7 @@
+ else if (jpg_review->pix_fmt == V4L2_PIX_FMT_YUYV)
+ dp_self.flags |= CI_ISP_DPD_YUV_YUYV;
+
+- dprintk(1, "dp_self.flags is 0x%x", dp_self.flags);
++ dev_dbg(&isp->vdev->dev, "dp_self.flags is 0x%x",
dp_self.flags);
+ }
+
+ } else if (isp->pixelformat == INTEL_PIX_FMT_RAW08) {
+@@ -626,7 +626,7 @@
+ (void)ci_sensor_res2size(isi_config->res,
+ &(dp_main.out_w),&(dp_main.out_h));
+
+- dprintk(1, "RAW08 dp_main.flags is 0x%x", dp_main.flags);
++ dev_dbg(&isp->vdev->dev, "RAW08 dp_main.flags is 0x%x",
dp_main.flags);
+
+ } else if (isp->pixelformat == INTEL_PIX_FMT_RAW10
+ || isp->pixelformat == INTEL_PIX_FMT_RAW12) {
+@@ -640,7 +640,7 @@
+ (void)ci_sensor_res2size(isi_config->res,
+ &(dp_main.out_w),&(dp_main.out_h));
+
+- dprintk(1, "RAW10 dp_main.flags is 0x%x", dp_main.flags);
++ dev_dbg(&isp->vdev->dev, "RAW10 dp_main.flags is 0x%x",
dp_main.flags);
+
+ } /*else if (isp->bufwidth>= 640&& isp->bufheight>= 480) {*/
+ else if (isp->bufwidth>= 32&& isp->bufheight>= 16) {
+@@ -663,7 +663,7 @@
+ } else if (isp->pixelformat == V4L2_PIX_FMT_YUYV)
+ dp_main.flags |= CI_ISP_DPD_YUV_YUYV;
+
+- dprintk(1, "YUV dp_main.flags is 0x%x", dp_main.flags);
(614 more lines skipped)
++++++ linux-2.6.37-camera-ov5640-ov9740-version-0.958_to_0.959.patch (new)
--- linux-2.6.37-camera-ov5640-ov9740-version-0.958_to_0.959.patch
+++ linux-2.6.37-camera-ov5640-ov9740-version-0.958_to_0.959.patch
+From: Yong He<[email protected]>
+Subject: [PATCH] MRST Tablet camera driver ver-0.959, fix 9947
+
+Bug 9947 - when switch to a new resolution,
+Back camera need to skip first frame after turn on streaming
+
+move the delay to ISP for snapshot only (preview do not need delay)
+and increase the total delay time to 450 (3 frame) in order to get
+good picture quality
+
+Signed-off-by: Yong He<[email protected]>
+Index: linux-2.6.37/drivers/staging/mrstci/mrstisp/mrstisp_main.c
+===================================================================
+--- linux-2.6.37/drivers/staging/mrstci/mrstisp/mrstisp_main.c (revision 130)
++++ linux-2.6.37/drivers/staging/mrstci/mrstisp/mrstisp_main.c (revision 132)
+@@ -1090,6 +1090,10 @@
+ if (isp->pixelformat == V4L2_PIX_FMT_JPEG) {
+ mrst_isp_disable_interrupt(isp);
+ v4l2_subdev_call(camera, video, s_stream, 1);
++ if ((!strcmp(to_sensor_config(camera)->name, "ov5640")) ||
++ (!strcmp(to_sensor_config(camera)->name, "ov9740"))) {
++ msleep(400);
++ }
+ dev_dbg(&isp->vdev->dev, "init JPEG encoder");
+ ci_isp_jpe_init_ex(isp->bufwidth, isp->bufheight,
+ isp->sys_conf.isp_cfg.jpeg_enc_ratio,
+Index: linux-2.6.37/drivers/staging/mrstci/mrstov5640/mrstov5640.c
+===================================================================
+--- linux-2.6.37/drivers/staging/mrstci/mrstov5640/mrstov5640.c
(revision 130)
++++ linux-2.6.37/drivers/staging/mrstci/mrstov5640/mrstov5640.c
(revision 132)
+@@ -50,7 +50,7 @@
+ #include "ci_sensor_common.h"
+ #include "ov5640.h"
+
+-#define DRIVER_VERSION "0.957"
++#define DRIVER_VERSION "0.959"
+
+ #define GPIO_FLASH 45
+ static int ov5640_flash=0;
+@@ -2479,7 +2479,7 @@
+ dev_dbg(sd->v4l2_dev->dev, "ov5640_af_init error -
(%d)\n",
+ af_fw_status);
+ }
+- msleep(300);
++ msleep(50);
+ }
+ } else {
+ ov5640_set_aec_agc(client, 0);
+Index: linux-2.6.37/drivers/staging/mrstci/mrstov9740/mrstov9740.c
+===================================================================
+--- linux-2.6.37/drivers/staging/mrstci/mrstov9740/mrstov9740.c
(revision 130)
++++ linux-2.6.37/drivers/staging/mrstci/mrstov9740/mrstov9740.c
(revision 132)
+@@ -47,7 +47,7 @@
+ #include "ci_sensor_common.h"
+ #include "ov9740.h"
+
+-#define DRIVER_VERSION "0.957"
++#define DRIVER_VERSION "0.959"
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #define DBG_entering pr_debug("%s entering", __func__);
+@@ -1957,7 +1957,7 @@
+ "set stream on, sleep 300 ms for sensor
adjusting...\n");
+ ov9740_write(client, 0x0100, 0x01);
+ ov9740_set_aec_agc(client, 1);
+- msleep(300);
++ msleep(50);
+ } else if ((!enable)&& (ov9740_status.stream_on == OV9740_STREAM_ON)) {
+ /* Turn off streaming if current status is on */
+ ov9740_status.stream_on = OV9740_STREAM_OFF;
++++++ linux-2.6.37-sst-add-a-new-ioctl-on-intel_sst-to-tristate-PMIC-dy.patch
(new)
--- linux-2.6.37-sst-add-a-new-ioctl-on-intel_sst-to-tristate-PMIC-dy.patch
+++ linux-2.6.37-sst-add-a-new-ioctl-on-intel_sst-to-tristate-PMIC-dy.patch
+From 22ea27f036a3409843614fa3a9817ea4dda69d8f Mon Sep 17 00:00:00 2001
+From: Lu Guanqun<[email protected]>
+Date: Wed, 22 Jun 2011 07:18:40 +0800
+Subject: [PATCH 2/2] sst: add a new ioctl on intel_sst to tristate PMIC
dynamically
+
+This allows users to tristate PMIC dynamically so that the I2S bus connected
+with PMIC will be tristated. This allows other devices (e.g. Bluetooth chip)
+to drive the I2S bus.
+
+The PMIC register (AUDIOPORT1 - 0x102) is the register to control PCM2 port on
+PMIC, setting it to 0x0 will make it slave, tristate on I2S bus. Setting it
+to 0x98 will make it back to life.
+
+Signed-off-by: Lu Guanqun<[email protected]>
+---
+ drivers/staging/intel_sst/intel_sst.h | 1 +
+ .../staging/intel_sst/intel_sst_app_interface.c | 5 +++++
+ drivers/staging/intel_sst/intel_sst_ioctl.h | 1 +
+ drivers/staging/intel_sst/intelmid_v2_control.c | 15 +++++++++++++++
+ 4 files changed, 22 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/staging/intel_sst/intel_sst.h
b/drivers/staging/intel_sst/intel_sst.h
+index d5886c7..58dcf9a 100644
+--- a/drivers/staging/intel_sst/intel_sst.h
++++ b/drivers/staging/intel_sst/intel_sst.h
+@@ -116,6 +116,7 @@ struct snd_pmic_ops {
+ int (*pmic_jack_enable) (void);
+ int (*pmic_get_mic_bias)(void *intelmaddata);
+ int (*pmic_set_headset_state)(int state);
++ int (*tristate_pmic)(int tristate);
+
+ unsigned int hw_dmic_map[MFLD_MAX_HW_CH];
+ unsigned int available_dmics;
+diff --git a/drivers/staging/intel_sst/intel_sst_app_interface.c
b/drivers/staging/intel_sst/intel_sst_app_interface.c
+index 3357c7d..21eb626 100644
+--- a/drivers/staging/intel_sst/intel_sst_app_interface.c
++++ b/drivers/staging/intel_sst/intel_sst_app_interface.c
+@@ -1447,6 +1447,11 @@ free_iobufs:
+ retval = sst_ioctl_tuning_params(arg);
+ break;
+
++ case _IOC_NR(SNDRV_SST_TRISTATE_PMIC):
++ if (sst_drv_ctx->scard_ops->tristate_pmic)
++ sst_drv_ctx->scard_ops->tristate_pmic(arg);
++ break;
++
+ default:
+ retval = -EINVAL;
+ }
+diff --git a/drivers/staging/intel_sst/intel_sst_ioctl.h
b/drivers/staging/intel_sst/intel_sst_ioctl.h
+index 5da5ee0..dec99df 100644
+--- a/drivers/staging/intel_sst/intel_sst_ioctl.h
++++ b/drivers/staging/intel_sst/intel_sst_ioctl.h
+@@ -436,5 +436,6 @@ struct snd_sst_tuning_params {
+ #define SNDRV_SST_SET_ALGO _IOW('L', 0x30, struct snd_ppp_params *)
+ #define SNDRV_SST_GET_ALGO _IOWR('L', 0x31, struct snd_ppp_params *)
+ #define SNDRV_SST_TUNING_PARAMS _IOW('L', 0x32, struct
snd_sst_tuning_params *)
++#define SNDRV_SST_TRISTATE_PMIC _IOW('L', 0x33, int)
+
+ #endif /* __INTEL_SST_IOCTL_H__ */
+diff --git a/drivers/staging/intel_sst/intelmid_v2_control.c
b/drivers/staging/intel_sst/intelmid_v2_control.c
+index b47c887..ad9d494 100644
+--- a/drivers/staging/intel_sst/intelmid_v2_control.c
++++ b/drivers/staging/intel_sst/intelmid_v2_control.c
+@@ -1146,6 +1146,20 @@ static int nc_jack_enable(void)
+ return 0;
+ }
+
++static int nc_tristate_pmic(int tristate)
++{
++ struct sc_reg_access sc_access;
++
++ sc_access.reg_addr = AUDIOPORT1;
++ if (tristate)
++ sc_access.value = 0x0;
++ else
++ sc_access.value = 0x98;
++ sc_access.mask = 0x0;
++
++ return sst_sc_reg_access(&sc_access, PMIC_WRITE, 1);
++}
++
+ struct snd_pmic_ops snd_pmic_ops_nc = {
+ .input_dev_id = DMIC,
+ .output_dev_id = INTERNAL_SPKR,
+@@ -1167,4 +1181,5 @@ struct snd_pmic_ops snd_pmic_ops_nc = {
+ .power_down_pmic = nc_power_down,
+ .pmic_irq_cb = nc_pmic_irq_cb,
+ .pmic_jack_enable = nc_jack_enable,
++ .tristate_pmic = nc_tristate_pmic,
+ };
+--
+1.7.2.3
+
++++++ linux-2.6.37-sst-add-another-meaning-for-device_route-to-bypass-t.patch
(new)
--- linux-2.6.37-sst-add-another-meaning-for-device_route-to-bypass-t.patch
+++ linux-2.6.37-sst-add-another-meaning-for-device_route-to-bypass-t.patch
+From b0064cf74706faca7acbd8dacfdd1037a83d7b7a Mon Sep 17 00:00:00 2001
+From: Lu Guanqun<[email protected]>
+Date: Wed, 22 Jun 2011 07:01:18 +0800
+Subject: [PATCH 1/2] sst: add another meaning for device_route to bypass the
preparation and activation
+
+When we call SNDRV_SST_SET_TARGET_DEVICE ioctl, sometimes we only need to
+change the sample rate and leave other stuff untouched, we don't need PMIC to
+do the preparation and activation. For these cases, we can pass number 3
+instead of number 0. I admit that's kind of hack.
+
+Signed-off-by: Lu Guanqun<[email protected]>
+---
+ .../staging/intel_sst/intel_sst_stream_encoded.c | 8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/staging/intel_sst/intel_sst_stream_encoded.c
b/drivers/staging/intel_sst/intel_sst_stream_encoded.c
+index 7db72cc..fab4973 100644
+--- a/drivers/staging/intel_sst/intel_sst_stream_encoded.c
++++ b/drivers/staging/intel_sst/intel_sst_stream_encoded.c
+@@ -457,9 +457,13 @@ err:
+ int sst_target_device_select(struct snd_sst_target_device *target)
+ {
+ int retval, i, prepare_count = 0;
++ unsigned int orig_device_route = target->device_route;
+
+ pr_debug("sst: Target Device Select\n");
+
++ if (target->device_route == 3)
++ target->device_route = 0;
++
+ if (target->device_route< 0 || target->device_route> 2) {
+ pr_err("sst: device route is invalid\n");
+ return -EINVAL;
+@@ -476,6 +480,10 @@ int sst_target_device_select(struct snd_sst_target_device
*target)
+ retval = sst_send_target(target);
+ if (retval)
+ return retval;
++
++ if (orig_device_route == 3)
++ return retval;
++
+ for (i = 0; i< SST_MAX_TARGET_DEVICES; i++) {
+ if (target->devices[i].action == SND_SST_PORT_ACTIVATE) {
+ pr_debug("sst: activate called in %d\n", i);
+--
+1.7.2.3
+
++++++ series
--- series
+++ series
@@ -188,6 +188,8 @@
linux-2.6.37-camera-ov5640-ov9740-version-0.954_to_0.955.patch
linux-2.6.37-camera-ov5640-ov9740-version-0.955_to_0.956.patch
linux-2.6.37-camera-ov5640-ov9740-version-0.956_to_0.957.patch
+linux-2.6.37-camera-ov5640-ov9740-version-0.957_to_0.958.patch
+linux-2.6.37-camera-ov5640-ov9740-version-0.958_to_0.959.patch
# ehci patches
linux-2.6.37-ehci-runtime-pm.patch
@@ -209,6 +211,8 @@
linux-2.6.37-sst-power-sequence.patch
linux-2.6.37-sst-add-Master-Volume.patch
linux-2.6.37-sst-fix-pop-sound-from-speaker-after-playback.patch
+linux-2.6.37-sst-add-another-meaning-for-device_route-to-bypass-t.patch
+linux-2.6.37-sst-add-a-new-ioctl-on-intel_sst-to-tristate-PMIC-dy.patch
# keys
linux-2.6.37-gpio-keys-add-new-power-key.patch
_______________________________________________
MeeGo-commits mailing list
[email protected]
http://lists.meego.com/listinfo/meego-commits