Merge branch 'rk_develop-3.10' into rk_develop-3.10-next
authordalon.zhang <dalon.zhang@rock-chips.com>
Thu, 19 Mar 2015 08:42:17 +0000 (16:42 +0800)
committerdalon.zhang <dalon.zhang@rock-chips.com>
Thu, 19 Mar 2015 08:42:17 +0000 (16:42 +0800)
Conflicts:
drivers/mmc/host/rk_sdmmc.c

arch/arm/boot/dts/rk3036.dtsi
arch/arm/boot/dts/rk312x.dtsi
arch/arm/configs/rockchip_defconfig
drivers/media/video/rk_camsys/camsys_internal.h
drivers/media/video/rk_camsys/camsys_marvin.c
drivers/media/video/rk_camsys/camsys_marvin.h
drivers/mmc/host/rk_sdmmc.c
drivers/usb/dwc_otg_310/dwc_otg_pcd_linux.c
include/media/camsys_head.h

index ce3f200ef14e475be874564ef785e9c9cff87ccf..d024f399de4f1520fab79a3510db5c5f117d1a4e 100755 (executable)
                pinctrl-names = "default", "idle", "udbg";
                pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
                pinctrl-1 = <&sdmmc0_gpio>;
-               pinctrl-2 = <&uart2_xfer>;
+               pinctrl-2 = <&uart2_xfer &sdmmc0_dectn>;
                cd-gpios = <&gpio1 GPIO_C1 GPIO_ACTIVE_HIGH>;/*CD GPIO*/
                clocks = <&clk_sdmmc0>, <&clk_gates5 10>;
                clock-names = "clk_mmc", "hclk_mmc";
index 864342eed390a63e2129dd9bc491104bd89ca6ee..58add870beef3d8ffef1ff5b1416f20ea108abe7 100755 (executable)
                pinctrl-names = "default", "idle", "udbg";
                pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd  &sdmmc0_dectn &sdmmc0_bus4>;
                pinctrl-1 = <&sdmmc0_gpio>;
-               pinctrl-2 = <&uart2_xfer>;
+               pinctrl-2 = <&uart2_xfer &sdmmc0_dectn>;
                clocks = <&clk_sdmmc0>, <&clk_gates5 10>;
                clock-names = "clk_mmc", "hclk_mmc";
                dmas = <&pdma 10>;
index c6d5d9b1c13d7c29591a5c3d2723f33966bd1e1d..7903a1192fcc7d2fafd2395753e6de1d10eab669 100755 (executable)
@@ -295,13 +295,6 @@ CONFIG_USB_NET_INT51X1=y
 CONFIG_USB_IPHETH=y
 CONFIG_USB_SIERRA_NET=y
 CONFIG_RTL8188EU=y
-CONFIG_RTL8189ES=m
-CONFIG_RTL8192DU=m
-CONFIG_RTL8723AU=m
-CONFIG_RTL8723BU=m
-CONFIG_RTL8723BS=m
-CONFIG_RTL8723BS_VQ0=m
-CONFIG_RTL8812AU=m
 CONFIG_ESP8089=y
 CONFIG_RKWIFI=y
 CONFIG_AP6335=y
index 4302159d2a02cc9143eed663e0aea49a99580a34..c8f6633b2dee239dd1dd537f2700693872828d38 100755 (executable)
                 1) use of_find_node_by_name to get vpu node instead of of_find_compatible_node
 *v0.0x1c.0:
          1) support rk3368. 
+*v0.0x1d.0:
+         1) enable aclk_rga for rk3368, otherwise, isp reset will cause system halted.
 */
-#define CAMSYS_DRIVER_VERSION                   KERNEL_VERSION(0,0x1c,0)
+#define CAMSYS_DRIVER_VERSION                   KERNEL_VERSION(0,0x1d,0)
 
 
 #define CAMSYS_PLATFORM_DRV_NAME                "RockChip-CamSys"
index 588cea3bc4afb09e3e07bd3c72ecfa32c60dbaf3..bd4ed67345f3113ce5a94eaf9f478d4469effe69 100755 (executable)
@@ -339,6 +339,7 @@ static int camsys_mrv_clkin_cb(void *ptr, unsigned int on)
                if(CHIP_TYPE == 3368){
                        clk_prepare_enable(clk->cif_clk_out);
                        clk_prepare_enable(clk->pclk_dphyrx);
+                       clk_prepare_enable(clk->aclk_rga);
                }else{
                        clk_prepare_enable(clk->pd_isp);
                        clk_prepare_enable(clk->clk_mipi_24m);          
@@ -356,10 +357,11 @@ static int camsys_mrv_clkin_cb(void *ptr, unsigned int on)
         clk_disable_unprepare(clk->hclk_isp);
         clk_disable_unprepare(clk->isp);
         clk_disable_unprepare(clk->isp_jpe);
-        clk_disable_unprepare(clk->pclkin_isp); 
+        clk_disable_unprepare(clk->pclkin_isp);
                if(CHIP_TYPE == 3368){
                clk_disable_unprepare(clk->cif_clk_out);
                        clk_disable_unprepare(clk->pclk_dphyrx);
+                       clk_disable_unprepare(clk->aclk_rga);
                }else{
                clk_disable_unprepare(clk->clk_mipi_24m); 
                        clk_disable_unprepare(clk->pd_isp);
@@ -564,11 +566,11 @@ int camsys_mrv_probe_cb(struct platform_device *pdev, camsys_dev_t *camsys_dev)
            mrv_clk->cif_clk_out = devm_clk_get(&pdev->dev, "clk_cif_out");
            mrv_clk->cif_clk_pll = devm_clk_get(&pdev->dev, "clk_cif_pll");
            mrv_clk->pclk_dphyrx = devm_clk_get(&pdev->dev, "pclk_dphyrx");    
-           
+           mrv_clk->aclk_rga = devm_clk_get(&pdev->dev, "aclk_rga");
            
                if (IS_ERR_OR_NULL(mrv_clk->aclk_isp) || IS_ERR_OR_NULL(mrv_clk->hclk_isp) ||
                IS_ERR_OR_NULL(mrv_clk->isp) || IS_ERR_OR_NULL(mrv_clk->isp_jpe) || IS_ERR_OR_NULL(mrv_clk->pclkin_isp) || 
-               IS_ERR_OR_NULL(mrv_clk->cif_clk_out) || IS_ERR_OR_NULL(mrv_clk->pclk_dphyrx)) {
+               IS_ERR_OR_NULL(mrv_clk->cif_clk_out) || IS_ERR_OR_NULL(mrv_clk->pclk_dphyrx)||IS_ERR_OR_NULL(mrv_clk->aclk_rga)) {
                camsys_err("Get %s clock resouce failed!\n",miscdev_name);
                err = -EINVAL;
                goto clk_failed;
@@ -657,6 +659,9 @@ clk_failed:
                if (!IS_ERR_OR_NULL(mrv_clk->pclk_dphyrx)) {
                    clk_put(mrv_clk->pclk_dphyrx);
                }
+               if (!IS_ERR_OR_NULL(mrv_clk->aclk_rga)) {
+                   clk_put(mrv_clk->aclk_rga);
+               }
                }
 
         kfree(mrv_clk);
index 1c70febf8666e779345cbe53dd3d33a1df139b33..2b4db933bc64e0f20babb9326c57dc29f3addb5f 100755 (executable)
@@ -56,6 +56,7 @@ typedef struct camsys_mrv_clk_s {
     struct clk      *cif_clk_out;
     struct clk      *cif_clk_pll;
        struct clk              *pclk_dphyrx;
+       struct clk              *aclk_rga;
        
     unsigned int     out_on;
 
index 1276d727e6807981f1928017ded8cb3e3b3dd68a..ae0a86ccdec8fe849b8c414e5f277a7413f26c50 100755 (executable)
@@ -48,6 +48,7 @@
 #include <linux/rfkill-wlan.h>
 #include <linux/mfd/syscon.h>
 #include <linux/regmap.h>
+#include <linux/log2.h>
 #include "rk_sdmmc.h"
 #include "rk_sdmmc_dbg.h"
 #include <linux/regulator/rockchip_io_vol_domain.h>
@@ -621,6 +622,7 @@ static void dw_mci_edmac_start_dma(struct dw_mci *host, unsigned int sg_len)
        u32 sg_elems = host->data->sg_len;
        u32 fifoth_val, mburst;
        u32 burst_limit = 0;
+       u32 idx, rx_wmark, tx_wmark;
        int ret = 0;
 
        /* Set external dma config: burst size, burst width*/
@@ -641,7 +643,18 @@ static void dw_mci_edmac_start_dma(struct dw_mci *host, unsigned int sg_len)
 
        if (mburst > burst_limit) {
                mburst = burst_limit;
-               fifoth_val = SDMMC_SET_FIFOTH(mszs[3], mszs[3] - 1, (host->fifo_depth) / 2);
+               idx = (ilog2(mburst) > 0) ? (ilog2(mburst) - 1) : 0;
+
+               if (soc_is_rk3126b()) {
+                       idx = 0;
+                       rx_wmark = (host->fifo_depth) / 2 - 1;
+               } else {
+                       rx_wmark = mszs[idx] - 1;
+               }
+
+               tx_wmark = (host->fifo_depth) / 2;
+               fifoth_val = SDMMC_SET_FIFOTH(idx, rx_wmark, tx_wmark);
+
                mci_writel(host, FIFOTH, fifoth_val);
        }
 
index d234c06bb53f6fe10fe5f6727881c90636b651eb..cc3afa20b6fea14161e54bbe559c535a8bbd32ec 100755 (executable)
@@ -1584,11 +1584,13 @@ static void check_id(struct work_struct *work)
 
        if (last_id != id) {
                pr_info("[otg id chg] last id %d current id %d\n", last_id, id);
+
+               if (pldata->phy_status == USB_PHY_SUSPEND) {
+                       pldata->clock_enable(pldata, 1);
+                       pldata->phy_suspend(pldata, USB_PHY_ENABLED);
+               }
+
                if (!id) { /* Force Host */
-                       if (pldata->phy_status == USB_PHY_SUSPEND) {
-                               pldata->clock_enable(pldata, 1);
-                               pldata->phy_suspend(pldata, USB_PHY_ENABLED);
-       }
                        id_status_change(otg_dev->core_if, id);
                } else { /* Force Device */
                        id_status_change(otg_dev->core_if, id);
index 31a828f7bebf7300ed71076260b2648767e8662e..3eba31f9c430e815ce3574f4369bd71d13f94e1b 100755 (executable)
          1) add dev_name in struct camsys_devio_name_s;
 *v0.a.0:
          1) support external flash IC
+*v0.b.0:
+                1) add CamSys_SensorBit0_CifBit4 in enum camsys_cifio_e. 
 */
-#define CAMSYS_HEAD_VERSION           KERNEL_VERSION(0,0xa,0)
+#define CAMSYS_HEAD_VERSION           KERNEL_VERSION(0,0xb,0)
 
 #define CAMSYS_MARVIN_DEVNAME         "camsys_marvin"           
 #define CAMSYS_CIF0_DEVNAME           "camsys_cif0"
@@ -184,6 +186,7 @@ typedef enum camsys_fmt_e {
 typedef enum camsys_cifio_e {
     CamSys_SensorBit0_CifBit0 = 0x00,
     CamSys_SensorBit0_CifBit2 = 0x01,
+    CamSys_SensorBit0_CifBit4 = 0x02,
 } camsys_cifio_t;
 
 typedef struct camsys_cifphy_s {