From f8847331f81df69b5ea2d0874a0f9c68ee5b49b3 Mon Sep 17 00:00:00 2001 From: lintao Date: Sat, 7 Mar 2015 15:14:10 +0800 Subject: [PATCH 1/7] dtsi: sdmmc: add card_detect for udbg Signed-off-by: lintao --- arch/arm/boot/dts/rk3036.dtsi | 2 +- arch/arm/boot/dts/rk312x.dtsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/rk3036.dtsi b/arch/arm/boot/dts/rk3036.dtsi index daba534a2c04..36a626e9e37e 100755 --- a/arch/arm/boot/dts/rk3036.dtsi +++ b/arch/arm/boot/dts/rk3036.dtsi @@ -498,7 +498,7 @@ sdmmc: rksdmmc@10214000 { 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"; diff --git a/arch/arm/boot/dts/rk312x.dtsi b/arch/arm/boot/dts/rk312x.dtsi index 4e0bc5ae0d2f..a532414aaf04 100755 --- a/arch/arm/boot/dts/rk312x.dtsi +++ b/arch/arm/boot/dts/rk312x.dtsi @@ -549,7 +549,7 @@ sdmmc: rksdmmc@10214000 { 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>; From 77d06da6c3b807984155e1f3eef72ea5f3e95c25 Mon Sep 17 00:00:00 2001 From: lintao Date: Tue, 17 Mar 2015 16:49:37 +0800 Subject: [PATCH 2/7] mmc: use ilog2 for fifoth calculation Signed-off-by: lintao --- drivers/mmc/host/rk_sdmmc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/rk_sdmmc.c b/drivers/mmc/host/rk_sdmmc.c index 69c3711c899c..227bc7efa9b2 100755 --- a/drivers/mmc/host/rk_sdmmc.c +++ b/drivers/mmc/host/rk_sdmmc.c @@ -46,6 +46,7 @@ #include #include #include +#include #include "rk_sdmmc.h" #include "rk_sdmmc_dbg.h" #include @@ -639,7 +640,9 @@ 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); + fifoth_val = SDMMC_SET_FIFOTH(ilog2(mburst) - 1, + (host->fifo_depth) / 2 - 1, + (host->fifo_depth) / 2); mci_writel(host, FIFOTH, fifoth_val); } From 52a324603c1c547ec0c36460a8719a18e449b4f7 Mon Sep 17 00:00:00 2001 From: lyz Date: Tue, 17 Mar 2015 18:10:24 +0800 Subject: [PATCH 3/7] usb: dwc_otg: enable clk and exit suspend when usb_core_reset Avoid this warning message "WARN::dwc_otg_core_reset:5543: dwc_otg_core_reset() HANG! AHB Idle GRSTCTL=4000020" --- drivers/usb/dwc_otg_310/dwc_otg_pcd_linux.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/usb/dwc_otg_310/dwc_otg_pcd_linux.c b/drivers/usb/dwc_otg_310/dwc_otg_pcd_linux.c index d234c06bb53f..cc3afa20b6fe 100755 --- a/drivers/usb/dwc_otg_310/dwc_otg_pcd_linux.c +++ b/drivers/usb/dwc_otg_310/dwc_otg_pcd_linux.c @@ -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); From 77e142e21dfd6507f7d1f0464c12f9e5502e1f10 Mon Sep 17 00:00:00 2001 From: xiaoyao Date: Wed, 18 Mar 2015 11:43:16 +0800 Subject: [PATCH 4/7] rk_sdmmc: recalculate audib rx_wmark AudiB contain a less limitation in rx_wmark. Signed-off-by: xiaoyao Signed-off-by: lintao --- drivers/mmc/host/rk_sdmmc.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/rk_sdmmc.c b/drivers/mmc/host/rk_sdmmc.c index 227bc7efa9b2..e4488a8de558 100755 --- a/drivers/mmc/host/rk_sdmmc.c +++ b/drivers/mmc/host/rk_sdmmc.c @@ -620,6 +620,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*/ @@ -640,9 +641,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(ilog2(mburst) - 1, - (host->fifo_depth) / 2 - 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); } From 49a2dd374c3881db681d432ba5cadb2ff400ed26 Mon Sep 17 00:00:00 2001 From: "dalon.zhang" Date: Wed, 18 Mar 2015 21:22:06 +0800 Subject: [PATCH 5/7] camsys_head: v0.0xb.0 --- include/media/camsys_head.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/media/camsys_head.h b/include/media/camsys_head.h index 31a828f7bebf..3eba31f9c430 100755 --- a/include/media/camsys_head.h +++ b/include/media/camsys_head.h @@ -27,8 +27,10 @@ 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 { From d93cf33990c282242c0e9eff12bfc6340a909328 Mon Sep 17 00:00:00 2001 From: hwg Date: Thu, 19 Mar 2015 08:51:22 +0800 Subject: [PATCH 6/7] wifi: remove make modules configs --- arch/arm/configs/rockchip_defconfig | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/arm/configs/rockchip_defconfig b/arch/arm/configs/rockchip_defconfig index c6d5d9b1c13d..7903a1192fcc 100755 --- a/arch/arm/configs/rockchip_defconfig +++ b/arch/arm/configs/rockchip_defconfig @@ -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 From 13549edf67632c7a41dad1ca2fa8d9f0ff19d45a Mon Sep 17 00:00:00 2001 From: "dalon.zhang" Date: Thu, 19 Mar 2015 16:17:47 +0800 Subject: [PATCH 7/7] camsys_drv: v0.0x1d.0 --- drivers/media/video/rk_camsys/camsys_internal.h | 4 +++- drivers/media/video/rk_camsys/camsys_marvin.c | 11 ++++++++--- drivers/media/video/rk_camsys/camsys_marvin.h | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/media/video/rk_camsys/camsys_internal.h b/drivers/media/video/rk_camsys/camsys_internal.h index c70464e45a72..af8d3889c137 100755 --- a/drivers/media/video/rk_camsys/camsys_internal.h +++ b/drivers/media/video/rk_camsys/camsys_internal.h @@ -113,8 +113,10 @@ 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" diff --git a/drivers/media/video/rk_camsys/camsys_marvin.c b/drivers/media/video/rk_camsys/camsys_marvin.c index 588cea3bc4af..bd4ed67345f3 100755 --- a/drivers/media/video/rk_camsys/camsys_marvin.c +++ b/drivers/media/video/rk_camsys/camsys_marvin.c @@ -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 @@ int camsys_mrv_probe_cb(struct platform_device *pdev, camsys_dev_t *camsys_dev) 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); diff --git a/drivers/media/video/rk_camsys/camsys_marvin.h b/drivers/media/video/rk_camsys/camsys_marvin.h index 1c70febf8666..2b4db933bc64 100755 --- a/drivers/media/video/rk_camsys/camsys_marvin.h +++ b/drivers/media/video/rk_camsys/camsys_marvin.h @@ -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;