Hi
kernel-adaptation-mrst is unresolvable in Trunk-Testing due to BMC#20234  
<https://bugs.meego.com/show_bug.cgi?id=20235>
It might be building on MeeGo1.2 but not in trunk.

-Chris

On 06/30/2011 01:45 PM, kaccardi wrote:

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

_______________________________________________
MeeGo-packaging mailing list
[email protected]
http://lists.meego.com/listinfo/meego-packaging

Reply via email to