* Re: [PATCH v5 15/36] drm/bridge: analogix_dp: Fix incorrect usage of enhanced mode
From: Archit Taneja @ 2018-03-14 6:17 UTC (permalink / raw)
To: Enric Balletbo i Serra, inki.dae, thierry.reding, hjc, seanpaul,
airlied, tfiga, heiko
Cc: dri-devel, linux-kernel, Laurent.pinchart, ykk, kernel,
m.szyprowski, linux-samsung-soc, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, jeffy.chen, linux-arm-kernel,
mark.yao, wzz, hl, jingoohan1, sw0312.kim, dianders,
kyungmin.park, kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-16-enric.balletbo@collabora.com>
On Saturday 10 March 2018 03:53 AM, Enric Balletbo i Serra wrote:
> From: zain wang <wzz@rock-chips.com>
>
> Enhanced mode is required by the eDP 1.2 specification, and not doing it
> early could result in a period of time where we have a link transmitting
> idle packets without it. Since there is no reason to disable it, we just
> enable it at the beginning of link training and then keep it on all the
> time.
Reviewed-by: Archit Taneja <architt@codeaurora.org>
Thanks,
Archit
>
> Cc: Tomasz Figa <tfiga@chromium.org>
> Signed-off-by: zain wang <wzz@rock-chips.com>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index 6cbde8473f58..1eed35f9eb8d 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -281,6 +281,8 @@ static int analogix_dp_link_start(struct analogix_dp_device *dp)
> retval = drm_dp_dpcd_write(&dp->aux, DP_LINK_BW_SET, buf, 2);
> if (retval < 0)
> return retval;
> + /* set enhanced mode if available */
> + analogix_dp_set_enhanced_mode(dp);
>
> /* Set TX pre-emphasis to minimum */
> for (lane = 0; lane < lane_count; lane++)
> @@ -593,8 +595,6 @@ static int analogix_dp_process_equalizer_training(struct analogix_dp_device *dp)
> dev_dbg(dp->dev, "fast link training %s\n",
> dp->fast_train_enable ? "supported" : "unsupported");
>
> - /* set enhanced mode if available */
> - analogix_dp_set_enhanced_mode(dp);
> dp->link_train.lt_state = FINISHED;
>
> return 0;
> @@ -940,8 +940,6 @@ static int analogix_dp_commit(struct analogix_dp_device *dp)
> }
>
> analogix_dp_enable_scramble(dp, 1);
> - analogix_dp_enable_rx_to_enhanced_mode(dp, 1);
> - analogix_dp_enable_enhanced_mode(dp, 1);
>
> analogix_dp_init_video(dp);
> ret = analogix_dp_config_video(dp);
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply
* Re: [PATCH v5 16/36] drm/bridge: analogix_dp: Check dpcd write/read status
From: Archit Taneja @ 2018-03-14 6:19 UTC (permalink / raw)
To: Enric Balletbo i Serra, inki.dae, thierry.reding, hjc, seanpaul,
airlied, tfiga, heiko
Cc: dri-devel, linux-kernel, Laurent.pinchart, ykk,
Kristian H . Kristensen, kernel, m.szyprowski, linux-samsung-soc,
rydberg, krzk, linux-rockchip, kgene, linux-input, orjan.eide,
wxt, jeffy.chen, linux-arm-kernel, mark.yao, wzz, hl, jingoohan1,
sw0312.kim, dianders, kyungmin.park, kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-17-enric.balletbo@collabora.com>
On Saturday 10 March 2018 03:53 AM, Enric Balletbo i Serra wrote:
> From: Lin Huang <hl@rock-chips.com>
>
> We need to check the dpcd write/read return value to see whether the
> write/read was successful
>
Reviewed-by: Archit Taneja <architt@codeaurora.org>
Thanks,
Archit
> Cc: Kristian H. Kristensen <hoegsberg@chromium.org>
> Signed-off-by: Lin Huang <hl@rock-chips.com>
> Signed-off-by: zain wang <wzz@rock-chips.com>
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 169 ++++++++++++++++-----
> 1 file changed, 127 insertions(+), 42 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index 1eed35f9eb8d..be6eddd0d0a7 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -160,80 +160,137 @@ int analogix_dp_disable_psr(struct analogix_dp_device *dp)
> }
> EXPORT_SYMBOL_GPL(analogix_dp_disable_psr);
>
> -static bool analogix_dp_detect_sink_psr(struct analogix_dp_device *dp)
> +static int analogix_dp_detect_sink_psr(struct analogix_dp_device *dp)
> {
> unsigned char psr_version;
> + int ret;
> +
> + ret = drm_dp_dpcd_readb(&dp->aux, DP_PSR_SUPPORT, &psr_version);
> + if (ret != 1) {
> + dev_err(dp->dev, "failed to get PSR version, disable it\n");
> + return ret;
> + }
>
> - drm_dp_dpcd_readb(&dp->aux, DP_PSR_SUPPORT, &psr_version);
> dev_dbg(dp->dev, "Panel PSR version : %x\n", psr_version);
>
> - return (psr_version & DP_PSR_IS_SUPPORTED) ? true : false;
> + dp->psr_enable = (psr_version & DP_PSR_IS_SUPPORTED) ? true : false;
> +
> + return 0;
> }
>
> -static void analogix_dp_enable_sink_psr(struct analogix_dp_device *dp)
> +static int analogix_dp_enable_sink_psr(struct analogix_dp_device *dp)
> {
> unsigned char psr_en;
> + int ret;
>
> /* Disable psr function */
> - drm_dp_dpcd_readb(&dp->aux, DP_PSR_EN_CFG, &psr_en);
> + ret = drm_dp_dpcd_readb(&dp->aux, DP_PSR_EN_CFG, &psr_en);
> + if (ret != 1) {
> + dev_err(dp->dev, "failed to get psr config\n");
> + goto end;
> + }
> +
> psr_en &= ~DP_PSR_ENABLE;
> - drm_dp_dpcd_writeb(&dp->aux, DP_PSR_EN_CFG, psr_en);
> + ret = drm_dp_dpcd_writeb(&dp->aux, DP_PSR_EN_CFG, psr_en);
> + if (ret != 1) {
> + dev_err(dp->dev, "failed to disable panel psr\n");
> + goto end;
> + }
>
> /* Main-Link transmitter remains active during PSR active states */
> psr_en = DP_PSR_MAIN_LINK_ACTIVE | DP_PSR_CRC_VERIFICATION;
> - drm_dp_dpcd_writeb(&dp->aux, DP_PSR_EN_CFG, psr_en);
> + ret = drm_dp_dpcd_writeb(&dp->aux, DP_PSR_EN_CFG, psr_en);
> + if (ret != 1) {
> + dev_err(dp->dev, "failed to set panel psr\n");
> + goto end;
> + }
>
> /* Enable psr function */
> psr_en = DP_PSR_ENABLE | DP_PSR_MAIN_LINK_ACTIVE |
> DP_PSR_CRC_VERIFICATION;
> - drm_dp_dpcd_writeb(&dp->aux, DP_PSR_EN_CFG, psr_en);
> + ret = drm_dp_dpcd_writeb(&dp->aux, DP_PSR_EN_CFG, psr_en);
> + if (ret != 1) {
> + dev_err(dp->dev, "failed to set panel psr\n");
> + goto end;
> + }
>
> analogix_dp_enable_psr_crc(dp);
> +
> + return 0;
> +end:
> + dev_err(dp->dev, "enable psr fail, force to disable psr\n");
> + dp->psr_enable = false;
> +
> + return ret;
> }
>
> -static void
> +static int
> analogix_dp_enable_rx_to_enhanced_mode(struct analogix_dp_device *dp,
> bool enable)
> {
> u8 data;
> + int ret;
>
> - drm_dp_dpcd_readb(&dp->aux, DP_LANE_COUNT_SET, &data);
> + ret = drm_dp_dpcd_readb(&dp->aux, DP_LANE_COUNT_SET, &data);
> + if (ret != 1)
> + return ret;
>
> if (enable)
> - drm_dp_dpcd_writeb(&dp->aux, DP_LANE_COUNT_SET,
> - DP_LANE_COUNT_ENHANCED_FRAME_EN |
> - DPCD_LANE_COUNT_SET(data));
> + ret = drm_dp_dpcd_writeb(&dp->aux, DP_LANE_COUNT_SET,
> + DP_LANE_COUNT_ENHANCED_FRAME_EN |
> + DPCD_LANE_COUNT_SET(data));
> else
> - drm_dp_dpcd_writeb(&dp->aux, DP_LANE_COUNT_SET,
> - DPCD_LANE_COUNT_SET(data));
> + ret = drm_dp_dpcd_writeb(&dp->aux, DP_LANE_COUNT_SET,
> + DPCD_LANE_COUNT_SET(data));
> +
> + return ret < 0 ? ret : 0;
> }
>
> -static int analogix_dp_is_enhanced_mode_available(struct analogix_dp_device *dp)
> +static int analogix_dp_is_enhanced_mode_available(struct analogix_dp_device *dp,
> + u8 *enhanced_mode_support)
> {
> u8 data;
> - int retval;
> + int ret;
>
> - drm_dp_dpcd_readb(&dp->aux, DP_MAX_LANE_COUNT, &data);
> - retval = DPCD_ENHANCED_FRAME_CAP(data);
> + ret = drm_dp_dpcd_readb(&dp->aux, DP_MAX_LANE_COUNT, &data);
> + if (ret != 1) {
> + *enhanced_mode_support = 0;
> + return ret;
> + }
>
> - return retval;
> + *enhanced_mode_support = DPCD_ENHANCED_FRAME_CAP(data);
> +
> + return 0;
> }
>
> -static void analogix_dp_set_enhanced_mode(struct analogix_dp_device *dp)
> +static int analogix_dp_set_enhanced_mode(struct analogix_dp_device *dp)
> {
> u8 data;
> + int ret;
> +
> + ret = analogix_dp_is_enhanced_mode_available(dp, &data);
> + if (ret < 0)
> + return ret;
> +
> + ret = analogix_dp_enable_rx_to_enhanced_mode(dp, data);
> + if (ret < 0)
> + return ret;
>
> - data = analogix_dp_is_enhanced_mode_available(dp);
> - analogix_dp_enable_rx_to_enhanced_mode(dp, data);
> analogix_dp_enable_enhanced_mode(dp, data);
> +
> + return 0;
> }
>
> -static void analogix_dp_training_pattern_dis(struct analogix_dp_device *dp)
> +static int analogix_dp_training_pattern_dis(struct analogix_dp_device *dp)
> {
> + int ret;
> +
> analogix_dp_set_training_pattern(dp, DP_NONE);
>
> - drm_dp_dpcd_writeb(&dp->aux, DP_TRAINING_PATTERN_SET,
> - DP_TRAINING_PATTERN_DISABLE);
> + ret = drm_dp_dpcd_writeb(&dp->aux, DP_TRAINING_PATTERN_SET,
> + DP_TRAINING_PATTERN_DISABLE);
> +
> + return ret < 0 ? ret : 0;
> }
>
> static void
> @@ -282,7 +339,11 @@ static int analogix_dp_link_start(struct analogix_dp_device *dp)
> if (retval < 0)
> return retval;
> /* set enhanced mode if available */
> - analogix_dp_set_enhanced_mode(dp);
> + retval = analogix_dp_set_enhanced_mode(dp);
> + if (retval < 0) {
> + dev_err(dp->dev, "failed to set enhance mode\n");
> + return retval;
> + }
>
> /* Set TX pre-emphasis to minimum */
> for (lane = 0; lane < lane_count; lane++)
> @@ -567,10 +628,11 @@ static int analogix_dp_process_equalizer_training(struct analogix_dp_device *dp)
>
> if (!analogix_dp_channel_eq_ok(link_status, link_align, lane_count)) {
> /* traing pattern Set to Normal */
> - analogix_dp_training_pattern_dis(dp);
> + retval = analogix_dp_training_pattern_dis(dp);
> + if (retval < 0)
> + return retval;
>
> dev_info(dp->dev, "Link Training success!\n");
> -
> analogix_dp_get_link_bandwidth(dp, ®);
> dp->link_train.link_rate = reg;
> dev_dbg(dp->dev, "final bandwidth = %.2x\n",
> @@ -867,24 +929,32 @@ static int analogix_dp_config_video(struct analogix_dp_device *dp)
> return 0;
> }
>
> -static void analogix_dp_enable_scramble(struct analogix_dp_device *dp,
> - bool enable)
> +static int analogix_dp_enable_scramble(struct analogix_dp_device *dp,
> + bool enable)
> {
> u8 data;
> + int ret;
>
> if (enable) {
> analogix_dp_enable_scrambling(dp);
>
> - drm_dp_dpcd_readb(&dp->aux, DP_TRAINING_PATTERN_SET, &data);
> - drm_dp_dpcd_writeb(&dp->aux, DP_TRAINING_PATTERN_SET,
> + ret = drm_dp_dpcd_readb(&dp->aux, DP_TRAINING_PATTERN_SET,
> + &data);
> + if (ret != 1)
> + return ret;
> + ret = drm_dp_dpcd_writeb(&dp->aux, DP_TRAINING_PATTERN_SET,
> (u8)(data & ~DP_LINK_SCRAMBLING_DISABLE));
> } else {
> analogix_dp_disable_scrambling(dp);
>
> - drm_dp_dpcd_readb(&dp->aux, DP_TRAINING_PATTERN_SET, &data);
> - drm_dp_dpcd_writeb(&dp->aux, DP_TRAINING_PATTERN_SET,
> + ret = drm_dp_dpcd_readb(&dp->aux, DP_TRAINING_PATTERN_SET,
> + &data);
> + if (ret != 1)
> + return ret;
> + ret = drm_dp_dpcd_writeb(&dp->aux, DP_TRAINING_PATTERN_SET,
> (u8)(data | DP_LINK_SCRAMBLING_DISABLE));
> }
> + return ret < 0 ? ret : 0;
> }
>
> static irqreturn_t analogix_dp_hardirq(int irq, void *arg)
> @@ -939,23 +1009,36 @@ static int analogix_dp_commit(struct analogix_dp_device *dp)
> return ret;
> }
>
> - analogix_dp_enable_scramble(dp, 1);
> + ret = analogix_dp_enable_scramble(dp, 1);
> + if (ret < 0) {
> + dev_err(dp->dev, "can not enable scramble\n");
> + return ret;
> + }
>
> analogix_dp_init_video(dp);
> ret = analogix_dp_config_video(dp);
> - if (ret)
> + if (ret) {
> dev_err(dp->dev, "unable to config video\n");
> + return ret;
> + }
>
> /* Safe to enable the panel now */
> if (dp->plat_data->panel) {
> - if (drm_panel_enable(dp->plat_data->panel))
> + ret = drm_panel_enable(dp->plat_data->panel);
> + if (ret) {
> DRM_ERROR("failed to enable the panel\n");
> + return ret;
> + }
> }
>
> - dp->psr_enable = analogix_dp_detect_sink_psr(dp);
> + ret = analogix_dp_detect_sink_psr(dp);
> + if (ret)
> + return ret;
> +
> if (dp->psr_enable)
> - analogix_dp_enable_sink_psr(dp);
> - return 0;
> + ret = analogix_dp_enable_sink_psr(dp);
> +
> + return ret;
> }
>
> /*
> @@ -1185,8 +1268,10 @@ static int analogix_dp_set_bridge(struct analogix_dp_device *dp)
> }
>
> ret = analogix_dp_commit(dp);
> - if (ret)
> + if (ret) {
> + DRM_ERROR("dp commit error, ret = %d\n", ret);
> goto out_dp_init;
> + }
>
> enable_irq(dp->irq);
> return 0;
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply
* Re: [PATCH v5 17/36] drm/bridge: analogix_dp: Fix AUX_PD bit for Rockchip
From: Archit Taneja @ 2018-03-14 6:23 UTC (permalink / raw)
To: Enric Balletbo i Serra, inki.dae, thierry.reding, hjc, seanpaul,
airlied, tfiga, heiko
Cc: dri-devel, linux-kernel, Laurent.pinchart, ykk, kernel,
m.szyprowski, linux-samsung-soc, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, jeffy.chen, linux-arm-kernel,
mark.yao, wzz, hl, jingoohan1, sw0312.kim, dianders,
kyungmin.park, kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-18-enric.balletbo@collabora.com>
On Saturday 10 March 2018 03:53 AM, Enric Balletbo i Serra wrote:
> From: zain wang <wzz@rock-chips.com>
>
> There are some different bits between Rockchip and Exynos in register
> "AUX_PD". This patch fixes the incorrect operations about it.
You mean the register ANALOGIX_DP_PHY_PD/ANALOGIX_DP_PD, right? AUX_PD
sounds like just one of the fields of the register.
With that,
Reviewed-by: Archit Taneja <architt@codeaurora.org>
Thanks,
Archit
>
> Cc: Douglas Anderson <dianders@chromium.org>
> Signed-off-by: zain wang <wzz@rock-chips.com>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 117 ++++++++++++----------
> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h | 2 +
> 2 files changed, 65 insertions(+), 54 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> index bb72f8b0e603..dee1ba109b5f 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> @@ -248,76 +248,85 @@ void analogix_dp_set_analog_power_down(struct analogix_dp_device *dp,
> {
> u32 reg;
> u32 phy_pd_addr = ANALOGIX_DP_PHY_PD;
> + u32 mask;
>
> if (dp->plat_data && is_rockchip(dp->plat_data->dev_type))
> phy_pd_addr = ANALOGIX_DP_PD;
>
> switch (block) {
> case AUX_BLOCK:
> - if (enable) {
> - reg = readl(dp->reg_base + phy_pd_addr);
> - reg |= AUX_PD;
> - writel(reg, dp->reg_base + phy_pd_addr);
> - } else {
> - reg = readl(dp->reg_base + phy_pd_addr);
> - reg &= ~AUX_PD;
> - writel(reg, dp->reg_base + phy_pd_addr);
> - }
> + if (dp->plat_data && is_rockchip(dp->plat_data->dev_type))
> + mask = RK_AUX_PD;
> + else
> + mask = AUX_PD;
> +
> + reg = readl(dp->reg_base + phy_pd_addr);
> + if (enable)
> + reg |= mask;
> + else
> + reg &= ~mask;
> + writel(reg, dp->reg_base + phy_pd_addr);
> break;
> case CH0_BLOCK:
> - if (enable) {
> - reg = readl(dp->reg_base + phy_pd_addr);
> - reg |= CH0_PD;
> - writel(reg, dp->reg_base + phy_pd_addr);
> - } else {
> - reg = readl(dp->reg_base + phy_pd_addr);
> - reg &= ~CH0_PD;
> - writel(reg, dp->reg_base + phy_pd_addr);
> - }
> + mask = CH0_PD;
> + reg = readl(dp->reg_base + phy_pd_addr);
> +
> + if (enable)
> + reg |= mask;
> + else
> + reg &= ~mask;
> + writel(reg, dp->reg_base + phy_pd_addr);
> break;
> case CH1_BLOCK:
> - if (enable) {
> - reg = readl(dp->reg_base + phy_pd_addr);
> - reg |= CH1_PD;
> - writel(reg, dp->reg_base + phy_pd_addr);
> - } else {
> - reg = readl(dp->reg_base + phy_pd_addr);
> - reg &= ~CH1_PD;
> - writel(reg, dp->reg_base + phy_pd_addr);
> - }
> + mask = CH1_PD;
> + reg = readl(dp->reg_base + phy_pd_addr);
> +
> + if (enable)
> + reg |= mask;
> + else
> + reg &= ~mask;
> + writel(reg, dp->reg_base + phy_pd_addr);
> break;
> case CH2_BLOCK:
> - if (enable) {
> - reg = readl(dp->reg_base + phy_pd_addr);
> - reg |= CH2_PD;
> - writel(reg, dp->reg_base + phy_pd_addr);
> - } else {
> - reg = readl(dp->reg_base + phy_pd_addr);
> - reg &= ~CH2_PD;
> - writel(reg, dp->reg_base + phy_pd_addr);
> - }
> + mask = CH2_PD;
> + reg = readl(dp->reg_base + phy_pd_addr);
> +
> + if (enable)
> + reg |= mask;
> + else
> + reg &= ~mask;
> + writel(reg, dp->reg_base + phy_pd_addr);
> break;
> case CH3_BLOCK:
> - if (enable) {
> - reg = readl(dp->reg_base + phy_pd_addr);
> - reg |= CH3_PD;
> - writel(reg, dp->reg_base + phy_pd_addr);
> - } else {
> - reg = readl(dp->reg_base + phy_pd_addr);
> - reg &= ~CH3_PD;
> - writel(reg, dp->reg_base + phy_pd_addr);
> - }
> + mask = CH3_PD;
> + reg = readl(dp->reg_base + phy_pd_addr);
> +
> + if (enable)
> + reg |= mask;
> + else
> + reg &= ~mask;
> + writel(reg, dp->reg_base + phy_pd_addr);
> break;
> case ANALOG_TOTAL:
> - if (enable) {
> - reg = readl(dp->reg_base + phy_pd_addr);
> - reg |= DP_PHY_PD;
> - writel(reg, dp->reg_base + phy_pd_addr);
> - } else {
> - reg = readl(dp->reg_base + phy_pd_addr);
> - reg &= ~DP_PHY_PD;
> - writel(reg, dp->reg_base + phy_pd_addr);
> - }
> + /*
> + * There is no bit named DP_PHY_PD, so We used DP_INC_BG
> + * to power off everything instead of DP_PHY_PD in
> + * Rockchip
> + */
> + if (dp->plat_data && is_rockchip(dp->plat_data->dev_type))
> + mask = DP_INC_BG;
> + else
> + mask = DP_PHY_PD;
> +
> + reg = readl(dp->reg_base + phy_pd_addr);
> + if (enable)
> + reg |= mask;
> + else
> + reg &= ~mask;
> +
> + writel(reg, dp->reg_base + phy_pd_addr);
> + if (dp->plat_data && is_rockchip(dp->plat_data->dev_type))
> + usleep_range(10, 15);
> break;
> case POWER_ALL:
> if (enable) {
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h
> index 9602668669f4..b633a4a5082a 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h
> @@ -345,7 +345,9 @@
> #define DP_INC_BG (0x1 << 7)
> #define DP_EXP_BG (0x1 << 6)
> #define DP_PHY_PD (0x1 << 5)
> +#define RK_AUX_PD (0x1 << 5)
> #define AUX_PD (0x1 << 4)
> +#define RK_PLL_PD (0x1 << 4)
> #define CH3_PD (0x1 << 3)
> #define CH2_PD (0x1 << 2)
> #define CH1_PD (0x1 << 1)
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply
* Re: [PATCH v5 18/36] drm/bridge: analogix_dp: Reset aux channel if an error occurred
From: Archit Taneja @ 2018-03-14 6:30 UTC (permalink / raw)
To: Enric Balletbo i Serra, inki.dae, thierry.reding, hjc, seanpaul,
airlied, tfiga, heiko
Cc: dri-devel, dianders, a.hajda, ykk, kernel, m.szyprowski,
linux-samsung-soc, jy0922.shim, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, jeffy.chen, linux-arm-kernel,
mark.yao, wzz, hl, jingoohan1, sw0312.kim, linux-kernel,
kyungmin.park, Laurent.pinchart, kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-19-enric.balletbo@collabora.com>
On Saturday 10 March 2018 03:53 AM, Enric Balletbo i Serra wrote:
> From: Lin Huang <hl@rock-chips.com>
>
> AUX errors are caused by many different reasons. We may not know what
> happened in aux channel on failure, so let's reset aux channel if some
> errors occurred.
>
> Cc: 征增 王 <wzz@rock-chips.com>
> Cc: Douglas Anderson <dianders@chromium.org>
> Signed-off-by: Lin Huang <hl@rock-chips.com>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> ---
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 18 ++++++++++++++----
> 1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> index dee1ba109b5f..7b7fd227e1f9 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> @@ -466,6 +466,10 @@ void analogix_dp_init_aux(struct analogix_dp_device *dp)
> reg = RPLY_RECEIV | AUX_ERR;
> writel(reg, dp->reg_base + ANALOGIX_DP_INT_STA);
>
> + analogix_dp_set_analog_power_down(dp, AUX_BLOCK, true);
> + usleep_range(10, 11);
> + analogix_dp_set_analog_power_down(dp, AUX_BLOCK, false);
> +
Is this additional power on/off the analog power to the AUX block
required to reset it correctly? If so, could you mention that in the
commit message?
> analogix_dp_reset_aux(dp);
>
> /* Disable AUX transaction H/W retry */
> @@ -1159,7 +1163,7 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
> reg, !(reg & AUX_EN), 25, 500 * 1000);
> if (ret) {
> dev_err(dp->dev, "AUX CH enable timeout!\n");
> - return -ETIMEDOUT;
> + goto aux_error;
> }
>
> /* TODO: Wait for an interrupt instead of looping? */
> @@ -1168,7 +1172,7 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
> reg, reg & RPLY_RECEIV, 10, 20 * 1000);
> if (ret) {
> dev_err(dp->dev, "AUX CH cmd reply timeout!\n");
> - return -ETIMEDOUT;
> + goto aux_error;
> }
>
> /* Clear interrupt source for AUX CH command reply */
> @@ -1178,7 +1182,7 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
> reg = readl(dp->reg_base + ANALOGIX_DP_INT_STA);
> if (reg & AUX_ERR) {
> writel(AUX_ERR, dp->reg_base + ANALOGIX_DP_INT_STA);
> - return -EREMOTEIO;
> + goto aux_error;
> }
>
> /* Check AUX CH error access status */
> @@ -1186,7 +1190,7 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
> if ((reg & AUX_STATUS_MASK)) {
> dev_err(dp->dev, "AUX CH error happened: %d\n\n",
> reg & AUX_STATUS_MASK);
> - return -EREMOTEIO;
> + goto aux_error;
> }
>
> if (msg->request & DP_AUX_I2C_READ) {
> @@ -1212,4 +1216,10 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
> msg->reply = DP_AUX_NATIVE_REPLY_ACK;
>
> return num_transferred > 0 ? num_transferred : -EBUSY;
> +
> +aux_error:
> + /* if aux err happen, reset aux */
> + analogix_dp_init_aux(dp);
> +
> + return -EREMOTEIO;
A couple of ETIMEDOUTs have been replaced with EREMOTEIOs after this
change. Maybe we set it the error no in ret and return ret?
With those changes,
Reviewed-by: Archit Taneja <architt@codeaurora.org>
Thanks,
Archit
> }
>
^ permalink raw reply
* Re: [PATCH v5 19/36] drm/rockchip: Restore psr->state when enable/disable psr failed
From: Archit Taneja @ 2018-03-14 6:32 UTC (permalink / raw)
To: Enric Balletbo i Serra, inki.dae, thierry.reding, hjc, seanpaul,
airlied, tfiga, heiko
Cc: dri-devel, linux-kernel, Laurent.pinchart, ykk, kernel,
m.szyprowski, linux-samsung-soc, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, jeffy.chen, linux-arm-kernel,
mark.yao, wzz, hl, jingoohan1, sw0312.kim, dianders,
kyungmin.park, kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-20-enric.balletbo@collabora.com>
On Saturday 10 March 2018 03:53 AM, Enric Balletbo i Serra wrote:
> From: zain wang <wzz@rock-chips.com>
>
> If we failed disable psr, it would hang the display until next psr
> cycle coming. So we should restore psr->state when it failed.
>
For the bridge part,
Reviewed-by: Archit Taneja <architt@codeaurora.org>
Thanks,
Archit
> Cc: Tomasz Figa <tfiga@chromium.org>
> Signed-off-by: zain wang <wzz@rock-chips.com>
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 4 +++-
> drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 10 +++++-----
> drivers/gpu/drm/rockchip/rockchip_drm_psr.c | 20 +++++++++++++-------
> drivers/gpu/drm/rockchip/rockchip_drm_psr.h | 2 +-
> 4 files changed, 22 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index be6eddd0d0a7..1f1cb624414d 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -153,8 +153,10 @@ int analogix_dp_disable_psr(struct analogix_dp_device *dp)
> psr_vsc.DB1 = 0;
>
> ret = drm_dp_dpcd_writeb(&dp->aux, DP_SET_POWER, DP_SET_POWER_D0);
> - if (ret != 1)
> + if (ret != 1) {
> dev_err(dp->dev, "Failed to set DP Power0 %d\n", ret);
> + return ret;
> + }
>
> return analogix_dp_send_psr_spd(dp, &psr_vsc, false);
> }
> diff --git a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c
> index 3e8bf79bea58..8c884f9ce713 100644
> --- a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c
> +++ b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c
> @@ -77,13 +77,13 @@ struct rockchip_dp_device {
> struct analogix_dp_plat_data plat_data;
> };
>
> -static void analogix_dp_psr_set(struct drm_encoder *encoder, bool enabled)
> +static int analogix_dp_psr_set(struct drm_encoder *encoder, bool enabled)
> {
> struct rockchip_dp_device *dp = to_dp(encoder);
> int ret;
>
> if (!analogix_dp_psr_enabled(dp->adp))
> - return;
> + return 0;
>
> DRM_DEV_DEBUG(dp->dev, "%s PSR...\n", enabled ? "Entry" : "Exit");
>
> @@ -91,13 +91,13 @@ static void analogix_dp_psr_set(struct drm_encoder *encoder, bool enabled)
> PSR_WAIT_LINE_FLAG_TIMEOUT_MS);
> if (ret) {
> DRM_DEV_ERROR(dp->dev, "line flag interrupt did not arrive\n");
> - return;
> + return -ETIMEDOUT;
> }
>
> if (enabled)
> - analogix_dp_enable_psr(dp->adp);
> + return analogix_dp_enable_psr(dp->adp);
> else
> - analogix_dp_disable_psr(dp->adp);
> + return analogix_dp_disable_psr(dp->adp);
> }
>
> static int rockchip_dp_pre_init(struct rockchip_dp_device *dp)
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_psr.c b/drivers/gpu/drm/rockchip/rockchip_drm_psr.c
> index b339ca943139..9376f4396b6b 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_psr.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_psr.c
> @@ -36,7 +36,7 @@ struct psr_drv {
>
> struct delayed_work flush_work;
>
> - void (*set)(struct drm_encoder *encoder, bool enable);
> + int (*set)(struct drm_encoder *encoder, bool enable);
> };
>
> static struct psr_drv *find_psr_by_crtc(struct drm_crtc *crtc)
> @@ -93,19 +93,25 @@ static void psr_set_state_locked(struct psr_drv *psr, enum psr_state state)
> return;
> }
>
> - psr->state = state;
> -
> /* Actually commit the state change to hardware */
> - switch (psr->state) {
> + switch (state) {
> case PSR_ENABLE:
> - psr->set(psr->encoder, true);
> + if (psr->set(psr->encoder, true))
> + return;
> break;
>
> case PSR_DISABLE:
> case PSR_FLUSH:
> - psr->set(psr->encoder, false);
> + if (psr->set(psr->encoder, false))
> + return;
> break;
> +
> + default:
> + pr_err("%s: Unknown state %d\n", __func__, state);
> + return;
> }
> +
> + psr->state = state;
> }
>
> static void psr_set_state(struct psr_drv *psr, enum psr_state state)
> @@ -229,7 +235,7 @@ EXPORT_SYMBOL(rockchip_drm_psr_flush_all);
> * Zero on success, negative errno on failure.
> */
> int rockchip_drm_psr_register(struct drm_encoder *encoder,
> - void (*psr_set)(struct drm_encoder *, bool enable))
> + int (*psr_set)(struct drm_encoder *, bool enable))
> {
> struct rockchip_drm_private *drm_drv = encoder->dev->dev_private;
> struct psr_drv *psr;
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_psr.h b/drivers/gpu/drm/rockchip/rockchip_drm_psr.h
> index b1ea0155e57c..06537ee27565 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_psr.h
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_psr.h
> @@ -22,7 +22,7 @@ int rockchip_drm_psr_activate(struct drm_encoder *encoder);
> int rockchip_drm_psr_deactivate(struct drm_encoder *encoder);
>
> int rockchip_drm_psr_register(struct drm_encoder *encoder,
> - void (*psr_set)(struct drm_encoder *, bool enable));
> + int (*psr_set)(struct drm_encoder *, bool enable));
> void rockchip_drm_psr_unregister(struct drm_encoder *encoder);
>
> #endif /* __ROCKCHIP_DRM_PSR__ */
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply
* Re: [PATCH v5 20/36] drm/bridge: analogix_dp: Don't use ANALOGIX_DP_PLL_CTL to control pll
From: Archit Taneja @ 2018-03-14 6:33 UTC (permalink / raw)
To: Enric Balletbo i Serra, inki.dae, thierry.reding, hjc, seanpaul,
airlied, tfiga, heiko
Cc: dri-devel, dianders, a.hajda, ykk, kernel, m.szyprowski,
linux-samsung-soc, jy0922.shim, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, jeffy.chen, linux-arm-kernel,
mark.yao, wzz, hl, jingoohan1, sw0312.kim, linux-kernel,
kyungmin.park, Laurent.pinchart, kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-21-enric.balletbo@collabora.com>
On Saturday 10 March 2018 03:53 AM, Enric Balletbo i Serra wrote:
> From: zain wang <wzz@rock-chips.com>
>
> There is no register named ANALOGIX_DP_PLL_CTL in Rockchip edp phy reg
> list. We should use BIT_4 in ANALOGIX_DP_PD to control the pll power
> instead of ANALOGIX_DP_PLL_CTL.
>
Reviewed-by: Archit Taneja <architt@codeaurora.org>
Thanks,
Archit
> Cc: Douglas Anderson <dianders@chromium.org>
> Signed-off-by: zain wang <wzz@rock-chips.com>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 20 ++++++++++++--------
> 1 file changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> index 7b7fd227e1f9..02ab1aaa9993 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> @@ -230,16 +230,20 @@ enum pll_status analogix_dp_get_pll_lock_status(struct analogix_dp_device *dp)
> void analogix_dp_set_pll_power_down(struct analogix_dp_device *dp, bool enable)
> {
> u32 reg;
> + u32 mask = DP_PLL_PD;
> + u32 pd_addr = ANALOGIX_DP_PLL_CTL;
>
> - if (enable) {
> - reg = readl(dp->reg_base + ANALOGIX_DP_PLL_CTL);
> - reg |= DP_PLL_PD;
> - writel(reg, dp->reg_base + ANALOGIX_DP_PLL_CTL);
> - } else {
> - reg = readl(dp->reg_base + ANALOGIX_DP_PLL_CTL);
> - reg &= ~DP_PLL_PD;
> - writel(reg, dp->reg_base + ANALOGIX_DP_PLL_CTL);
> + if (dp->plat_data && is_rockchip(dp->plat_data->dev_type)) {
> + pd_addr = ANALOGIX_DP_PD;
> + mask = RK_PLL_PD;
> }
> +
> + reg = readl(dp->reg_base + pd_addr);
> + if (enable)
> + reg |= mask;
> + else
> + reg &= ~mask;
> + writel(reg, dp->reg_base + pd_addr);
> }
>
> void analogix_dp_set_analog_power_down(struct analogix_dp_device *dp,
>
^ permalink raw reply
* Re: [PATCH v5 21/36] drm/bridge: analogix_dp: Fix timeout of video streamclk config
From: Archit Taneja @ 2018-03-14 6:33 UTC (permalink / raw)
To: Enric Balletbo i Serra, inki.dae, thierry.reding, hjc, seanpaul,
airlied, tfiga, heiko
Cc: dri-devel, dianders, a.hajda, ykk, kernel, m.szyprowski,
linux-samsung-soc, jy0922.shim, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, jeffy.chen, linux-arm-kernel,
mark.yao, wzz, hl, jingoohan1, sw0312.kim, linux-kernel,
kyungmin.park, Laurent.pinchart, kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-22-enric.balletbo@collabora.com>
On Saturday 10 March 2018 03:53 AM, Enric Balletbo i Serra wrote:
> From: zain wang <wzz@rock-chips.com>
>
> The STRM_VALID bit in register ANALOGIX_DP_SYS_CTL_3 may be unstable,
> so we may hit the error log "Timeout of video streamclk ok" since
> checked this unstable bit.
> In fact, we can go continue and the streamclk is ok if we wait enough time,
> it does no effect on display.
> Let's change this error to warn.
Reviewed-by: Archit Taneja <architt@codeaurora.org>
Thanks,
Archit
>
> Cc: Douglas Anderson <dianders@chromium.org>
> Signed-off-by: zain wang <wzz@rock-chips.com>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index 1f1cb624414d..d76e1652b1fd 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -921,8 +921,9 @@ static int analogix_dp_config_video(struct analogix_dp_device *dp)
> done_count = 0;
> }
> if (timeout_loop > DP_TIMEOUT_LOOP_COUNT) {
> - dev_err(dp->dev, "Timeout of video streamclk ok\n");
> - return -ETIMEDOUT;
> + dev_warn(dp->dev,
> + "Ignoring timeout of video streamclk ok\n");
> + break;
> }
>
> usleep_range(1000, 1001);
>
^ permalink raw reply
* Re: [PATCH v5 22/36] drm/bridge: analogix_dp: Fix incorrect operations with register ANALOGIX_DP_FUNC_EN_1
From: Archit Taneja @ 2018-03-14 6:34 UTC (permalink / raw)
To: Enric Balletbo i Serra, inki.dae, thierry.reding, hjc, seanpaul,
airlied, tfiga, heiko
Cc: dri-devel, dianders, a.hajda, ykk, kernel, m.szyprowski,
linux-samsung-soc, jy0922.shim, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, jeffy.chen, linux-arm-kernel,
mark.yao, wzz, hl, jingoohan1, sw0312.kim, linux-kernel,
kyungmin.park, Laurent.pinchart, kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-23-enric.balletbo@collabora.com>
On Saturday 10 March 2018 03:53 AM, Enric Balletbo i Serra wrote:
> From: zain wang <wzz@rock-chips.com>
>
> Register ANALOGIX_DP_FUNC_EN_1(offset 0x18), Rockchip is different to
> Exynos:
>
> on Exynos edp phy,
> BIT 7 MASTER_VID_FUNC_EN_N
> BIT 6 reserved
> BIT 5 SLAVE_VID_FUNC_EN_N
>
> on Rockchip edp phy,
> BIT 7 reserved
> BIT 6 RK_VID_CAP_FUNC_EN_N
> BIT 5 RK_VID_FIFO_FUNC_EN_N
>
> So, we should do some private operations to Rockchip.
Reviewed-by: Archit Taneja <architt@codeaurora.org>
Thanks,
Archit
>
> Cc: Tomasz Figa <tfiga@chromium.org>
> Signed-off-by: zain wang <wzz@rock-chips.com>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 19 ++++++++++++++-----
> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h | 2 ++
> 2 files changed, 16 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> index 02ab1aaa9993..4eae206ec31b 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> @@ -126,9 +126,14 @@ void analogix_dp_reset(struct analogix_dp_device *dp)
> analogix_dp_stop_video(dp);
> analogix_dp_enable_video_mute(dp, 0);
>
> - reg = MASTER_VID_FUNC_EN_N | SLAVE_VID_FUNC_EN_N |
> - AUD_FIFO_FUNC_EN_N | AUD_FUNC_EN_N |
> - HDCP_FUNC_EN_N | SW_FUNC_EN_N;
> + if (dp->plat_data && is_rockchip(dp->plat_data->dev_type))
> + reg = RK_VID_CAP_FUNC_EN_N | RK_VID_FIFO_FUNC_EN_N |
> + SW_FUNC_EN_N;
> + else
> + reg = MASTER_VID_FUNC_EN_N | SLAVE_VID_FUNC_EN_N |
> + AUD_FIFO_FUNC_EN_N | AUD_FUNC_EN_N |
> + HDCP_FUNC_EN_N | SW_FUNC_EN_N;
> +
> writel(reg, dp->reg_base + ANALOGIX_DP_FUNC_EN_1);
>
> reg = SSC_FUNC_EN_N | AUX_FUNC_EN_N |
> @@ -971,8 +976,12 @@ void analogix_dp_config_video_slave_mode(struct analogix_dp_device *dp)
> u32 reg;
>
> reg = readl(dp->reg_base + ANALOGIX_DP_FUNC_EN_1);
> - reg &= ~(MASTER_VID_FUNC_EN_N | SLAVE_VID_FUNC_EN_N);
> - reg |= MASTER_VID_FUNC_EN_N;
> + if (dp->plat_data && is_rockchip(dp->plat_data->dev_type)) {
> + reg &= ~(RK_VID_CAP_FUNC_EN_N | RK_VID_FIFO_FUNC_EN_N);
> + } else {
> + reg &= ~(MASTER_VID_FUNC_EN_N | SLAVE_VID_FUNC_EN_N);
> + reg |= MASTER_VID_FUNC_EN_N;
> + }
> writel(reg, dp->reg_base + ANALOGIX_DP_FUNC_EN_1);
>
> reg = readl(dp->reg_base + ANALOGIX_DP_VIDEO_CTL_10);
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h
> index b633a4a5082a..0cf27c731727 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h
> @@ -127,7 +127,9 @@
>
> /* ANALOGIX_DP_FUNC_EN_1 */
> #define MASTER_VID_FUNC_EN_N (0x1 << 7)
> +#define RK_VID_CAP_FUNC_EN_N (0x1 << 6)
> #define SLAVE_VID_FUNC_EN_N (0x1 << 5)
> +#define RK_VID_FIFO_FUNC_EN_N (0x1 << 5)
> #define AUD_FIFO_FUNC_EN_N (0x1 << 4)
> #define AUD_FUNC_EN_N (0x1 << 3)
> #define HDCP_FUNC_EN_N (0x1 << 2)
>
^ permalink raw reply
* Re: [PATCH v5 24/36] drm/bridge: analogix_dp: Reorder plat_data->power_off to happen sooner
From: Archit Taneja @ 2018-03-14 6:50 UTC (permalink / raw)
To: Enric Balletbo i Serra, inki.dae, thierry.reding, hjc, seanpaul,
airlied, tfiga, heiko
Cc: dri-devel, dianders, a.hajda, ykk, kernel, m.szyprowski,
linux-samsung-soc, jy0922.shim, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, jeffy.chen, linux-arm-kernel,
mark.yao, wzz, hl, jingoohan1, sw0312.kim, linux-kernel,
kyungmin.park, Laurent.pinchart, kuankuan.y, hshi,
Kristian H . Kristensen
In-Reply-To: <20180309222327.18689-25-enric.balletbo@collabora.com>
On Saturday 10 March 2018 03:53 AM, Enric Balletbo i Serra wrote:
> From: Douglas Anderson <dianders@chromium.org>
>
> The current user of the analogix power_off is "analogix_dp-rockchip".
> That driver does this:
> - deactivate PSR
> - turn off a clock
>
> Both of these things (especially deactive PSR) should be done before
> we turn the PHY power off and turn off analog power. Let's move the
> callback up.
>
> Note that without this patch (and with
> https://patchwork.kernel.org/patch/9553349/ [seanpaul: this patch was
> not applied, but it seems like the race can still occur]), I experienced
> an error in reboot testing where one thread was at:
>
> rockchip_drm_psr_deactivate
> rockchip_dp_powerdown
> analogix_dp_bridge_disable
> drm_bridge_disable
>
> ...and the other thread was at:
>
> analogix_dp_send_psr_spd
> analogix_dp_enable_psr
> analogix_dp_psr_set
> psr_flush_handler
>
> The flush handler thread was finding AUX channel errors and eventually
> reported "Failed to apply PSR", where I had a kgdb breakpoint. Presumably
> the device would have eventually given up and shut down anyway, but it
> seems better to fix the order to be more correct.
>
Reviewed-by: Archit Taneja <architt@codeaurora.org>
Thanks,
Archit
> Cc: Kristian H. Kristensen <hoegsberg@chromium.org>
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index 37b16643f14c..eaf93cbd47a8 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -1337,12 +1337,13 @@ static void analogix_dp_bridge_disable(struct drm_bridge *bridge)
> }
>
> disable_irq(dp->irq);
> - analogix_dp_set_analog_power_down(dp, POWER_ALL, 1);
> - phy_power_off(dp->phy);
>
> if (dp->plat_data->power_off)
> dp->plat_data->power_off(dp->plat_data);
>
> + analogix_dp_set_analog_power_down(dp, POWER_ALL, 1);
> + phy_power_off(dp->phy);
> +
> clk_disable_unprepare(dp->clock);
>
> pm_runtime_put_sync(dp->dev);
>
^ permalink raw reply
* Re: [PATCH v5 23/36] drm/bridge: analogix_dp: Move fast link training detect to set_bridge
From: Archit Taneja @ 2018-03-14 6:52 UTC (permalink / raw)
To: Enric Balletbo i Serra, inki.dae, thierry.reding, hjc, seanpaul,
airlied, tfiga, heiko
Cc: dri-devel, dianders, a.hajda, ykk, kernel, m.szyprowski,
linux-samsung-soc, jy0922.shim, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, jeffy.chen, linux-arm-kernel,
mark.yao, wzz, hl, jingoohan1, sw0312.kim, linux-kernel,
kyungmin.park, Laurent.pinchart, kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-24-enric.balletbo@collabora.com>
On Saturday 10 March 2018 03:53 AM, Enric Balletbo i Serra wrote:
> From: zain wang <wzz@rock-chips.com>
>
> It's too early to detect fast link training, if other step after it
> failed, we will set fast_link flag to 1, and retry set_bridge again. In
> this case we will power down and power up panel power supply, and we
> will do fast link training since we have set fast_link flag to 1. In
> fact, we should do full link training now, not the fast link training.
> So we should move the fast link detection at the end of set_bridge.
Is it possible to re-write this commit message? It's a bit hard to
follow.
Thanks,
Archit
>
> Cc: Tomasz Figa <tfiga@chromium.org>
> Signed-off-by: zain wang <wzz@rock-chips.com>
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 42 +++++++++++++---------
> 1 file changed, 26 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index d76e1652b1fd..37b16643f14c 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -601,7 +601,7 @@ static int analogix_dp_process_equalizer_training(struct analogix_dp_device *dp)
> {
> int lane, lane_count, retval;
> u32 reg;
> - u8 link_align, link_status[2], adjust_request[2], spread;
> + u8 link_align, link_status[2], adjust_request[2];
>
> usleep_range(400, 401);
>
> @@ -645,20 +645,6 @@ static int analogix_dp_process_equalizer_training(struct analogix_dp_device *dp)
> dev_dbg(dp->dev, "final lane count = %.2x\n",
> dp->link_train.lane_count);
>
> - retval = drm_dp_dpcd_readb(&dp->aux, DP_MAX_DOWNSPREAD,
> - &spread);
> - if (retval != 1) {
> - dev_err(dp->dev, "failed to read downspread %d\n",
> - retval);
> - dp->fast_train_enable = false;
> - } else {
> - dp->fast_train_enable =
> - (spread & DP_NO_AUX_HANDSHAKE_LINK_TRAINING) ?
> - true : false;
> - }
> - dev_dbg(dp->dev, "fast link training %s\n",
> - dp->fast_train_enable ? "supported" : "unsupported");
> -
> dp->link_train.lt_state = FINISHED;
>
> return 0;
> @@ -996,6 +982,22 @@ static irqreturn_t analogix_dp_irq_thread(int irq, void *arg)
> return IRQ_HANDLED;
> }
>
> +static int analogix_dp_fast_link_train_detection(struct analogix_dp_device *dp)
> +{
> + int ret;
> + u8 spread;
> +
> + ret = drm_dp_dpcd_readb(&dp->aux, DP_MAX_DOWNSPREAD, &spread);
> + if (ret != 1) {
> + dev_err(dp->dev, "failed to read downspread %d\n", ret);
> + return ret;
> + }
> + dp->fast_train_enable = !!(spread & DP_NO_AUX_HANDSHAKE_LINK_TRAINING);
> + dev_dbg(dp->dev, "fast link training %s\n",
> + dp->fast_train_enable ? "supported" : "unsupported");
> + return 0;
> +}
> +
> static int analogix_dp_commit(struct analogix_dp_device *dp)
> {
> int ret;
> @@ -1038,8 +1040,16 @@ static int analogix_dp_commit(struct analogix_dp_device *dp)
> if (ret)
> return ret;
>
> - if (dp->psr_enable)
> + if (dp->psr_enable) {
> ret = analogix_dp_enable_sink_psr(dp);
> + if (ret)
> + return ret;
> + }
> +
> + /* Check whether panel supports fast training */
> + ret = analogix_dp_fast_link_train_detection(dp);
> + if (ret)
> + dp->psr_enable = false;
>
> return ret;
> }
>
^ permalink raw reply
* Re: [PATCH v5 25/36] drm/bridge: analogix_dp: Properly log AUX CH errors
From: Archit Taneja @ 2018-03-14 6:52 UTC (permalink / raw)
To: Enric Balletbo i Serra, inki.dae, thierry.reding, hjc, seanpaul,
airlied, tfiga, heiko
Cc: dri-devel, dianders, a.hajda, ykk, kernel, m.szyprowski,
linux-samsung-soc, jy0922.shim, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, jeffy.chen, linux-arm-kernel,
mark.yao, wzz, hl, jingoohan1, sw0312.kim, linux-kernel,
kyungmin.park, Laurent.pinchart, kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-26-enric.balletbo@collabora.com>
On Saturday 10 March 2018 03:53 AM, Enric Balletbo i Serra wrote:
> From: Douglas Anderson <dianders@chromium.org>
>
> The code in analogix_dp_transfer() that was supposed to print out:
> AUX CH error happened
>
> Was actually dead code. That's because the previous check (whether
> the interrupt status indicated any errors) would have hit for all
> errors anyway.
>
> Let's combine the two error checks so we can actually see AUX CH
> errors. We'll also downgrade the message to a warning since some of
> these types of errors might be expected for some displays. If this
> gets too noisy we can downgrade again to debug.
Reviewed-by: Archit Taneja <architt@codeaurora.org>
Thanks,
Archit
>
> Cc: 征增 王 <wzz@rock-chips.com>
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 13 +++++--------
> 1 file changed, 5 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> index 4eae206ec31b..58e8a28e99aa 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> @@ -1105,6 +1105,7 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
> struct drm_dp_aux_msg *msg)
> {
> u32 reg;
> + u32 status_reg;
> u8 *buffer = msg->buffer;
> unsigned int i;
> int num_transferred = 0;
> @@ -1193,16 +1194,12 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
>
> /* Clear interrupt source for AUX CH access error */
> reg = readl(dp->reg_base + ANALOGIX_DP_INT_STA);
> - if (reg & AUX_ERR) {
> + status_reg = readl(dp->reg_base + ANALOGIX_DP_AUX_CH_STA);
> + if ((reg & AUX_ERR) || (status_reg & AUX_STATUS_MASK)) {
> writel(AUX_ERR, dp->reg_base + ANALOGIX_DP_INT_STA);
> - goto aux_error;
> - }
>
> - /* Check AUX CH error access status */
> - reg = readl(dp->reg_base + ANALOGIX_DP_AUX_CH_STA);
> - if ((reg & AUX_STATUS_MASK)) {
> - dev_err(dp->dev, "AUX CH error happened: %d\n\n",
> - reg & AUX_STATUS_MASK);
> + dev_warn(dp->dev, "AUX CH error happened: %#x (%d)\n",
> + status_reg & AUX_STATUS_MASK, !!(reg & AUX_ERR));
> goto aux_error;
> }
>
>
^ permalink raw reply
* Re: [PATCH v5 26/36] drm/bridge: analogix_dp: Properly disable aux chan retries on rockchip
From: Archit Taneja @ 2018-03-14 6:53 UTC (permalink / raw)
To: Enric Balletbo i Serra, inki.dae, thierry.reding, hjc, seanpaul,
airlied, tfiga, heiko
Cc: dri-devel, dianders, a.hajda, ykk, kernel, m.szyprowski,
linux-samsung-soc, jy0922.shim, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, jeffy.chen, linux-arm-kernel,
mark.yao, wzz, hl, jingoohan1, sw0312.kim, linux-kernel,
kyungmin.park, Laurent.pinchart, kuankuan.y, hshi,
Stéphane Marchesin
In-Reply-To: <20180309222327.18689-27-enric.balletbo@collabora.com>
On Saturday 10 March 2018 03:53 AM, Enric Balletbo i Serra wrote:
> From: Douglas Anderson <dianders@chromium.org>
>
> The comments in analogix_dp_init_aux() claim that we're disabling aux
> channel retries, but then right below it for Rockchip it sets them to
> 3. If we actually need 3 retries for Rockchip then we could adjust
> the comment, but it seems more likely that we want the same retry
> behavior across all platforms.
Reviewed-by: Archit Taneja <architt@codeaurora.org>
Thanks,
Archit
>
> Cc: Stéphane Marchesin <marcheu@chromium.org>
> Cc: 征增 王 <wzz@rock-chips.com>
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 15 ++++++++-------
> 1 file changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> index 58e8a28e99aa..a5f2763d72e4 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> @@ -481,15 +481,16 @@ void analogix_dp_init_aux(struct analogix_dp_device *dp)
>
> analogix_dp_reset_aux(dp);
>
> - /* Disable AUX transaction H/W retry */
> + /* AUX_BIT_PERIOD_EXPECTED_DELAY doesn't apply to Rockchip IP */
> if (dp->plat_data && is_rockchip(dp->plat_data->dev_type))
> - reg = AUX_BIT_PERIOD_EXPECTED_DELAY(0) |
> - AUX_HW_RETRY_COUNT_SEL(3) |
> - AUX_HW_RETRY_INTERVAL_600_MICROSECONDS;
> + reg = 0;
> else
> - reg = AUX_BIT_PERIOD_EXPECTED_DELAY(3) |
> - AUX_HW_RETRY_COUNT_SEL(0) |
> - AUX_HW_RETRY_INTERVAL_600_MICROSECONDS;
> + reg = AUX_BIT_PERIOD_EXPECTED_DELAY(3);
> +
> + /* Disable AUX transaction H/W retry */
> + reg |= AUX_HW_RETRY_COUNT_SEL(0) |
> + AUX_HW_RETRY_INTERVAL_600_MICROSECONDS;
> +
> writel(reg, dp->reg_base + ANALOGIX_DP_AUX_HW_RETRY_CTL);
>
> /* Receive AUX Channel DEFER commands equal to DEFFER_COUNT*64 */
>
^ permalink raw reply
* Re: [PATCH v5 01/36] drm/bridge: analogix_dp: detect Sink PSR state after configuring the PSR
From: Heiko Stübner @ 2018-03-14 10:32 UTC (permalink / raw)
To: Enric Balletbo i Serra
Cc: airlied, dri-devel, thierry.reding, Laurent.pinchart, ykk, kernel,
m.szyprowski, linux-samsung-soc, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, linux-kernel, jeffy.chen,
Stéphane Marchesin, linux-arm-kernel, mark.yao, wzz, hl,
jingoohan1, sw0312.kim, dianders, tfiga, kyungmin.park,
kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-2-enric.balletbo@collabora.com>
Am Freitag, 9. März 2018, 23:22:52 CET schrieb Enric Balletbo i Serra:
> From: Yakir Yang <ykk@rock-chips.com>
>
> Make sure the request PSR state takes effect in analogix_dp_send_psr_spd()
> function, or print the sink PSR error state if we failed to apply the
> requested PSR setting.
>
> Cc: 征增 王 <wzz@rock-chips.com>
> Cc: Stéphane Marchesin <marcheu@chromium.org>
> Signed-off-by: Yakir Yang <ykk@rock-chips.com>
> [seanpaul changed timeout loop to a readx poll]
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
applied to drm-misc-next
Thanks
Heiko
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply
* Re: [PATCH v5 02/36] drm/rockchip: Remove analogix psr worker
From: Heiko Stübner @ 2018-03-14 10:32 UTC (permalink / raw)
To: Enric Balletbo i Serra
Cc: airlied, dri-devel, thierry.reding, Laurent.pinchart, ykk, kernel,
m.szyprowski, linux-samsung-soc, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, linux-kernel, jeffy.chen,
Stéphane Marchesin, linux-arm-kernel, mark.yao, wzz, hl,
jingoohan1, sw0312.kim, dianders, tfiga, kyungmin.park,
kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-3-enric.balletbo@collabora.com>
Am Freitag, 9. März 2018, 23:22:53 CET schrieb Enric Balletbo i Serra:
> From: Sean Paul <seanpaul@chromium.org>
>
> Now that the spinlocks and timers are gone, we can remove the psr
> worker located in rockchip's analogix driver and do the enable/disable
> directly. This should simplify the code and remove races on disable.
>
> Cc: 征增 王 <wzz@rock-chips.com>
> Cc: Stéphane Marchesin <marcheu@chromium.org>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
applied to drm-misc-next
Thanks
Heiko
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply
* Re: [PATCH v5 03/36] drm/bridge: analogix_dp: Don't change psr while bridge is disabled
From: Heiko Stübner @ 2018-03-14 10:32 UTC (permalink / raw)
To: Enric Balletbo i Serra
Cc: airlied, dri-devel, thierry.reding, Laurent.pinchart, ykk, kernel,
m.szyprowski, linux-samsung-soc, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, linux-kernel, jeffy.chen,
linux-arm-kernel, mark.yao, wzz, hl, Tomeu Vizoso, jingoohan1,
sw0312.kim, dianders, tfiga, kyungmin.park, kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-4-enric.balletbo@collabora.com>
Am Freitag, 9. März 2018, 23:22:54 CET schrieb Enric Balletbo i Serra:
> From: zain wang <wzz@rock-chips.com>
>
> There is a race between AUX CH bring-up and enabling bridge which will
> cause link training to fail. To avoid hitting it, don't change psr state
> while enabling the bridge.
>
> Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: zain wang <wzz@rock-chips.com>
> Signed-off-by: Caesar Wang <wxt@rock-chips.com>
> [seanpaul fixed up the commit message a bit and renamed *_supported to
> *_enabled] Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
applied to drm-misc-next
Thanks
Heiko
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply
* Re: [PATCH v5 04/36] drm/rockchip: add mutex vop lock
From: Heiko Stübner @ 2018-03-14 10:33 UTC (permalink / raw)
To: Enric Balletbo i Serra
Cc: airlied, dri-devel, thierry.reding, Laurent.pinchart, ykk, kernel,
m.szyprowski, linux-samsung-soc, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, linux-kernel, jeffy.chen,
linux-arm-kernel, mark.yao, wzz, hl, jingoohan1, sw0312.kim,
dianders, tfiga, kyungmin.park, kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-5-enric.balletbo@collabora.com>
Am Freitag, 9. März 2018, 23:22:55 CET schrieb Enric Balletbo i Serra:
> From: zain wang <wzz@rock-chips.com>
>
> Add a lock to vop to avoid disabling the crtc while waiting for a line
> flag while enabling psr. If we disable in the middle of waiting for the
> line flag, we'll end up timing out or worse.
>
> Signed-off-by: zain wang <wzz@rock-chips.com>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
applied to drm-misc-next
Thanks
Heiko
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply
* Re: [PATCH v5 05/36] drm/bridge: analogix_dp: add fast link train for eDP
From: Heiko Stübner @ 2018-03-14 10:39 UTC (permalink / raw)
To: Enric Balletbo i Serra
Cc: airlied, dri-devel, thierry.reding, Laurent.pinchart, ykk, kernel,
m.szyprowski, linux-samsung-soc, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, linux-kernel, jeffy.chen,
linux-arm-kernel, mark.yao, wzz, hl, jingoohan1, sw0312.kim,
dianders, tfiga, kyungmin.park, kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-6-enric.balletbo@collabora.com>
Am Freitag, 9. März 2018, 23:22:56 CET schrieb Enric Balletbo i Serra:
> From: zain wang <wzz@rock-chips.com>
>
> We would meet a short black screen when exit PSR with the full link
> training, In this case, we should use fast link train instead of full
> link training.
>
> Signed-off-by: zain wang <wzz@rock-chips.com>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
applied to drm-misc-next
Checking the whole series, there is nothing else that touches the
reordered headers, so I've dropped that change, leaving only the
newly added iopoll.h inclusion in [0].
Thanks
Heiko
[0] https://cgit.freedesktop.org/drm/drm-misc/commit/?id=f9d5680596f2dac390918e6aec3e174db03633a3
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply
* [RESEND PATCH] Input: joystick/analog - Use get_cycles() on PPC
From: Michael Ellerman @ 2018-03-14 11:17 UTC (permalink / raw)
To: dmitry.torokhov; +Cc: linux-input, linux-kernel, linuxppc-dev
The analog joystick driver spits a warning at us:
drivers/input/joystick/analog.c:176:2: warning: #warning Precise timer
not defined for this architecture.
PPC has get_cycles() so use that.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
drivers/input/joystick/analog.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
This is the third resend, I'll take it via the powerpc tree if no one else
does.
cheers
diff --git a/drivers/input/joystick/analog.c b/drivers/input/joystick/analog.c
index c868a878c84f..a942c4ccd2af 100644
--- a/drivers/input/joystick/analog.c
+++ b/drivers/input/joystick/analog.c
@@ -163,7 +163,7 @@ static unsigned int get_time_pit(void)
#define GET_TIME(x) do { x = (unsigned int)rdtsc(); } while (0)
#define DELTA(x,y) ((y)-(x))
#define TIME_NAME "TSC"
-#elif defined(__alpha__) || defined(CONFIG_MN10300) || defined(CONFIG_ARM) || defined(CONFIG_ARM64) || defined(CONFIG_RISCV) || defined(CONFIG_TILE)
+#elif defined(__alpha__) || defined(CONFIG_MN10300) || defined(CONFIG_ARM) || defined(CONFIG_ARM64) || defined(CONFIG_PPC) || defined(CONFIG_RISCV) || defined(CONFIG_TILE)
#define GET_TIME(x) do { x = get_cycles(); } while (0)
#define DELTA(x,y) ((y)-(x))
#define TIME_NAME "get_cycles"
--
2.14.1
^ permalink raw reply related
* Re: [PATCH v5 06/36] drm/rockchip: Only wait for panel ACK on PSR entry
From: Heiko Stübner @ 2018-03-14 12:51 UTC (permalink / raw)
To: Enric Balletbo i Serra
Cc: airlied, dri-devel, thierry.reding, Laurent.pinchart, ykk, kernel,
m.szyprowski, linux-samsung-soc, rydberg, krzk, linux-rockchip,
kgene, linux-input, orjan.eide, wxt, linux-kernel, jeffy.chen,
Stéphane Marchesin, Sonny Rao, linux-arm-kernel, mark.yao,
wzz, hl, jingoohan1, sw0312.kim, dianders, tfiga, kyungmin.park,
kuankuan.y, hshi
In-Reply-To: <20180309222327.18689-7-enric.balletbo@collabora.com>
Am Freitag, 9. März 2018, 23:22:57 CET schrieb Enric Balletbo i Serra:
> From: zain wang <wzz@rock-chips.com>
>
> We currently wait for the panel to mirror our intended PSR state
> before continuing on both PSR enter and PSR exit. This is really
> only important to do when we're entering PSR, since we want to
> be sure the last frame we pushed is being served from the panel's
> internal fb before shutting down the soc blocks (vop/analogix).
>
> This patch changes the behavior such that we only wait for the
> panel to complete the PSR transition when we're entering PSR, and
> to skip verification when we're exiting.
>
> Cc: Stéphane Marchesin <marcheu@chromium.org>
> Cc: Sonny Rao <sonnyrao@chromium.org>
> Signed-off-by: zain wang <wzz@rock-chips.com>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
applied to drm-misc-next with the subject fixed.
Thanks
Heiko
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply
* [PATCH 00/16] remove eight obsolete architectures
From: Arnd Bergmann @ 2018-03-14 14:34 UTC (permalink / raw)
To: linux-arch
Cc: linux-rtc, linux-pwm, linux-fbdev, linux-watchdog, Arnd Bergmann,
linux-doc, netdev, linux-usb, linux-wireless, linux-kernel,
dri-devel, linux-spi, linux-block, linux-ide, linux-input,
linux-fsdevel, linux-mm
Here is the collection of patches I have applied to my 'asm-generic' tree
on top of the 'metag' removal. This does not include any of the device
drivers, I'll send those separately to a someone different list of people.
The removal came out of a discussion that is now documented at
https://lwn.net/Articles/748074/
Following up from the state described there, I ended up removing the
mn10300, tile, blackfin and cris architectures directly, rather than
waiting, after consulting with the respective maintainers.
However, the unicore32 architecture is no longer part of the removal,
after its maintainer Xuetao Guan said that the port is still actively
being used and that he intends to keep working on it, and that he will
try to provide updated toolchain sources.
In the end, it seems that while the eight architectures are extremely
different, they all suffered the same fate: There was one company in
charge of an SoC line, a CPU microarchitecture and a software ecosystem,
which was more costly than licensing newer off-the-shelf CPU cores from
a third party (typically ARM, MIPS, or RISC-V). It seems that all the
SoC product lines are still around, but have not used the custom CPU
architectures for several years at this point.
Arnd
Arnd Bergmann (14):
arch: remove frv port
arch: remove m32r port
arch: remove score port
arch: remove blackfin port
arch: remove tile port
procfs: remove CONFIG_HARDWALL dependency
mm: remove blackfin MPU support
mm: remove obsolete alloc_remap()
treewide: simplify Kconfig dependencies for removed archs
asm-generic: siginfo: remove obsolete #ifdefs
Documentation: arch-support: remove obsolete architectures
asm-generic: clean up asm/unistd.h
recordmcount.pl: drop blackin and tile support
ktest: remove obsolete architectures
David Howells (1):
mn10300: Remove the architecture
Jesper Nilsson (1):
CRIS: Drop support for the CRIS port
Dirstat only (full diffstat is over 100KB):
6.3% arch/blackfin/mach-bf548/include/mach/
4.5% arch/blackfin/mach-bf609/include/mach/
26.3% arch/blackfin/
4.1% arch/cris/arch-v32/
5.6% arch/cris/include/arch-v32/arch/hwregs/iop/
4.1% arch/cris/include/arch-v32/mach-a3/mach/hwregs/
4.7% arch/cris/include/arch-v32/
7.8% arch/cris/
5.6% arch/frv/
5.5% arch/m32r/
7.0% arch/mn10300/
7.6% arch/tile/include/
6.4% arch/tile/kernel/
0.0% Documentation/admin-guide/
0.0% Documentation/blackfin/
0.0% Documentation/cris/
0.0% Documentation/devicetree/bindings/cris/
0.0% Documentation/devicetree/bindings/interrupt-controller/
2.8% Documentation/features/
0.5% Documentation/frv/
0.0% Documentation/ioctl/
0.0% Documentation/mn10300/
0.0% Documentation/
0.0% block/
0.0% crypto/
0.0% drivers/ide/
0.0% drivers/input/joystick/
0.0% drivers/isdn/hisax/
0.0% drivers/net/ethernet/davicom/
0.0% drivers/net/ethernet/smsc/
0.0% drivers/net/wireless/cisco/
0.0% drivers/pci/
0.0% drivers/pwm/
0.0% drivers/rtc/
0.0% drivers/spi/
0.0% drivers/staging/speakup/
0.0% drivers/usb/musb/
0.0% drivers/video/console/
0.0% drivers/watchdog/
0.0% fs/minix/
0.0% fs/proc/
0.0% fs/
0.0% include/asm-generic/
0.0% include/linux/
0.0% include/uapi/asm-generic/
0.0% init/
0.0% kernel/
0.0% lib/
0.0% mm/
0.0% samples/blackfin/
0.0% samples/kprobes/
0.0% samples/
0.0% scripts/mod/
0.0% scripts/
0.0% tools/arch/frv/include/uapi/asm/
0.0% tools/arch/m32r/include/uapi/asm/
0.0% tools/arch/mn10300/include/uapi/asm/
0.0% tools/arch/score/include/uapi/asm/
0.0% tools/arch/tile/include/asm/
0.0% tools/arch/tile/include/uapi/asm/
0.0% tools/include/asm-generic/
0.0% tools/scripts/
0.0% tools/testing/ktest/examples/
0.0% tools/testing/ktest/
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-block@vger.kernel.org
Cc: linux-ide@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: linux-pwm@vger.kernel.org
Cc: linux-rtc@vger.kernel.org
Cc: linux-spi@vger.kernel.org
Cc: linux-usb@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-fbdev@vger.kernel.org
Cc: linux-watchdog@vger.kernel.org
Cc: linux-fsdevel@vger.kernel.org
Cc: linux-arch@vger.kernel.org
Cc: linux-mm@kvack.org
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply
* [PATCH 11/16] treewide: simplify Kconfig dependencies for removed archs
From: Arnd Bergmann @ 2018-03-14 14:43 UTC (permalink / raw)
To: linux-arch
Cc: linux-rtc, linux-pwm, linux-fbdev, linux-watchdog, Arnd Bergmann,
linux-mm, netdev, linux-usb, linux-wireless, linux-kernel,
dri-devel, linux-spi, linux-block, linux-ide, linux-input,
linux-fsdevel
In-Reply-To: <20180314143529.1456168-1-arnd@arndb.de>
A lot of Kconfig symbols have architecture specific dependencies.
In those cases that depend on architectures we have already removed,
they can be omitted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
block/bounce.c | 2 +-
drivers/ide/Kconfig | 2 +-
drivers/ide/ide-generic.c | 12 +-----------
drivers/input/joystick/analog.c | 2 +-
drivers/isdn/hisax/Kconfig | 10 +++++-----
drivers/net/ethernet/davicom/Kconfig | 2 +-
drivers/net/ethernet/smsc/Kconfig | 6 +++---
drivers/net/wireless/cisco/Kconfig | 2 +-
drivers/pwm/Kconfig | 2 +-
drivers/rtc/Kconfig | 2 +-
drivers/spi/Kconfig | 4 ++--
drivers/usb/musb/Kconfig | 2 +-
drivers/video/console/Kconfig | 3 +--
drivers/watchdog/Kconfig | 6 ------
drivers/watchdog/Makefile | 6 ------
fs/Kconfig.binfmt | 5 ++---
fs/minix/Kconfig | 2 +-
include/linux/ide.h | 7 +------
init/Kconfig | 5 ++---
lib/Kconfig.debug | 13 +++++--------
lib/test_user_copy.c | 2 --
mm/Kconfig | 7 -------
mm/percpu.c | 4 ----
23 files changed, 31 insertions(+), 77 deletions(-)
diff --git a/block/bounce.c b/block/bounce.c
index 6a3e68292273..dd0b93f2a871 100644
--- a/block/bounce.c
+++ b/block/bounce.c
@@ -31,7 +31,7 @@
static struct bio_set *bounce_bio_set, *bounce_bio_split;
static mempool_t *page_pool, *isa_page_pool;
-#if defined(CONFIG_HIGHMEM) || defined(CONFIG_NEED_BOUNCE_POOL)
+#if defined(CONFIG_HIGHMEM)
static __init int init_emergency_pool(void)
{
#if defined(CONFIG_HIGHMEM) && !defined(CONFIG_MEMORY_HOTPLUG)
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
index cf1fb3fb5d26..901b8833847f 100644
--- a/drivers/ide/Kconfig
+++ b/drivers/ide/Kconfig
@@ -200,7 +200,7 @@ comment "IDE chipset support/bugfixes"
config IDE_GENERIC
tristate "generic/default IDE chipset support"
- depends on ALPHA || X86 || IA64 || M32R || MIPS || ARCH_RPC
+ depends on ALPHA || X86 || IA64 || MIPS || ARCH_RPC
default ARM && ARCH_RPC
help
This is the generic IDE driver. This driver attaches to the
diff --git a/drivers/ide/ide-generic.c b/drivers/ide/ide-generic.c
index 54d7c4685d23..80c0d69b83ac 100644
--- a/drivers/ide/ide-generic.c
+++ b/drivers/ide/ide-generic.c
@@ -13,13 +13,10 @@
#include <linux/ide.h>
#include <linux/pci_ids.h>
-/* FIXME: convert arm and m32r to use ide_platform host driver */
+/* FIXME: convert arm to use ide_platform host driver */
#ifdef CONFIG_ARM
#include <asm/irq.h>
#endif
-#ifdef CONFIG_M32R
-#include <asm/m32r.h>
-#endif
#define DRV_NAME "ide_generic"
@@ -35,13 +32,6 @@ static const struct ide_port_info ide_generic_port_info = {
#ifdef CONFIG_ARM
static const u16 legacy_bases[] = { 0x1f0 };
static const int legacy_irqs[] = { IRQ_HARDDISK };
-#elif defined(CONFIG_PLAT_M32700UT) || defined(CONFIG_PLAT_MAPPI2) || \
- defined(CONFIG_PLAT_OPSPUT)
-static const u16 legacy_bases[] = { 0x1f0 };
-static const int legacy_irqs[] = { PLD_IRQ_CFIREQ };
-#elif defined(CONFIG_PLAT_MAPPI3)
-static const u16 legacy_bases[] = { 0x1f0, 0x170 };
-static const int legacy_irqs[] = { PLD_IRQ_CFIREQ, PLD_IRQ_IDEIREQ };
#elif defined(CONFIG_ALPHA)
static const u16 legacy_bases[] = { 0x1f0, 0x170, 0x1e8, 0x168 };
static const int legacy_irqs[] = { 14, 15, 11, 10 };
diff --git a/drivers/input/joystick/analog.c b/drivers/input/joystick/analog.c
index be1b4921f22a..eefac7978f93 100644
--- a/drivers/input/joystick/analog.c
+++ b/drivers/input/joystick/analog.c
@@ -163,7 +163,7 @@ static unsigned int get_time_pit(void)
#define GET_TIME(x) do { x = (unsigned int)rdtsc(); } while (0)
#define DELTA(x,y) ((y)-(x))
#define TIME_NAME "TSC"
-#elif defined(__alpha__) || defined(CONFIG_ARM) || defined(CONFIG_ARM64) || defined(CONFIG_RISCV) || defined(CONFIG_TILE)
+#elif defined(__alpha__) || defined(CONFIG_ARM) || defined(CONFIG_ARM64) || defined(CONFIG_RISCV)
#define GET_TIME(x) do { x = get_cycles(); } while (0)
#define DELTA(x,y) ((y)-(x))
#define TIME_NAME "get_cycles"
diff --git a/drivers/isdn/hisax/Kconfig b/drivers/isdn/hisax/Kconfig
index eb83d94ab4fe..38cfc8baae19 100644
--- a/drivers/isdn/hisax/Kconfig
+++ b/drivers/isdn/hisax/Kconfig
@@ -109,7 +109,7 @@ config HISAX_16_3
config HISAX_TELESPCI
bool "Teles PCI"
- depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN)))
+ depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || (XTENSA && !CPU_LITTLE_ENDIAN)))
help
This enables HiSax support for the Teles PCI.
See <file:Documentation/isdn/README.HiSax> on how to configure it.
@@ -237,7 +237,7 @@ config HISAX_MIC
config HISAX_NETJET
bool "NETjet card"
- depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN) || MICROBLAZE))
+ depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || (XTENSA && !CPU_LITTLE_ENDIAN) || MICROBLAZE))
depends on VIRT_TO_BUS
help
This enables HiSax support for the NetJet from Traverse
@@ -249,7 +249,7 @@ config HISAX_NETJET
config HISAX_NETJET_U
bool "NETspider U card"
- depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN) || MICROBLAZE))
+ depends on PCI && (BROKEN || !(PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || (XTENSA && !CPU_LITTLE_ENDIAN) || MICROBLAZE))
depends on VIRT_TO_BUS
help
This enables HiSax support for the Netspider U interface ISDN card
@@ -318,7 +318,7 @@ config HISAX_GAZEL
config HISAX_HFC_PCI
bool "HFC PCI-Bus cards"
- depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN)))
+ depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || (XTENSA && !CPU_LITTLE_ENDIAN)))
help
This enables HiSax support for the HFC-S PCI 2BDS0 based cards.
@@ -343,7 +343,7 @@ config HISAX_HFC_SX
config HISAX_ENTERNOW_PCI
bool "Formula-n enter:now PCI card"
- depends on HISAX_NETJET && PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || FRV || (XTENSA && !CPU_LITTLE_ENDIAN)))
+ depends on HISAX_NETJET && PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K || (MIPS && !CPU_LITTLE_ENDIAN) || (XTENSA && !CPU_LITTLE_ENDIAN)))
help
This enables HiSax support for the Formula-n enter:now PCI
ISDN card.
diff --git a/drivers/net/ethernet/davicom/Kconfig b/drivers/net/ethernet/davicom/Kconfig
index 7ec2d74f94d3..680a6d983f37 100644
--- a/drivers/net/ethernet/davicom/Kconfig
+++ b/drivers/net/ethernet/davicom/Kconfig
@@ -4,7 +4,7 @@
config DM9000
tristate "DM9000 support"
- depends on ARM || BLACKFIN || MIPS || COLDFIRE || NIOS2
+ depends on ARM || MIPS || COLDFIRE || NIOS2
select CRC32
select MII
---help---
diff --git a/drivers/net/ethernet/smsc/Kconfig b/drivers/net/ethernet/smsc/Kconfig
index 948603e9b905..3da0c573d2ab 100644
--- a/drivers/net/ethernet/smsc/Kconfig
+++ b/drivers/net/ethernet/smsc/Kconfig
@@ -5,8 +5,8 @@
config NET_VENDOR_SMSC
bool "SMC (SMSC)/Western Digital devices"
default y
- depends on ARM || ARM64 || ATARI_ETHERNAT || BLACKFIN || COLDFIRE || \
- ISA || M32R || MAC || MIPS || NIOS2 || PCI || \
+ depends on ARM || ARM64 || ATARI_ETHERNAT || COLDFIRE || \
+ ISA || MAC || MIPS || NIOS2 || PCI || \
PCMCIA || SUPERH || XTENSA || H8300
---help---
If you have a network (Ethernet) card belonging to this class, say Y.
@@ -37,7 +37,7 @@ config SMC91X
select CRC32
select MII
depends on !OF || GPIOLIB
- depends on ARM || ARM64 || ATARI_ETHERNAT || BLACKFIN || COLDFIRE || \
+ depends on ARM || ARM64 || ATARI_ETHERNAT || COLDFIRE || \
M32R || MIPS || NIOS2 || SUPERH || XTENSA || H8300
---help---
This is a driver for SMC's 91x series of Ethernet chipsets,
diff --git a/drivers/net/wireless/cisco/Kconfig b/drivers/net/wireless/cisco/Kconfig
index b22567dff893..8ed0b154bb33 100644
--- a/drivers/net/wireless/cisco/Kconfig
+++ b/drivers/net/wireless/cisco/Kconfig
@@ -33,7 +33,7 @@ config AIRO
config AIRO_CS
tristate "Cisco/Aironet 34X/35X/4500/4800 PCMCIA cards"
- depends on CFG80211 && PCMCIA && (BROKEN || !M32R)
+ depends on CFG80211 && PCMCIA
select WIRELESS_EXT
select WEXT_SPY
select WEXT_PRIV
diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
index 763ee50ea57d..f16aad3bf5d6 100644
--- a/drivers/pwm/Kconfig
+++ b/drivers/pwm/Kconfig
@@ -43,7 +43,7 @@ config PWM_AB8500
config PWM_ATMEL
tristate "Atmel PWM support"
- depends on ARCH_AT91 || AVR32
+ depends on ARCH_AT91
help
Generic PWM framework driver for Atmel SoC.
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index be5a3dc99c11..46af10ac45fc 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -868,7 +868,7 @@ comment "Platform RTC drivers"
config RTC_DRV_CMOS
tristate "PC-style 'CMOS'"
- depends on X86 || ARM || M32R || PPC || MIPS || SPARC64
+ depends on X86 || ARM || PPC || MIPS || SPARC64
default y if X86
select RTC_MC146818_LIB
help
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index 603783976b81..103c13fcefa0 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -72,10 +72,10 @@ config SPI_ARMADA_3700
config SPI_ATMEL
tristate "Atmel SPI Controller"
depends on HAS_DMA
- depends on (ARCH_AT91 || AVR32 || COMPILE_TEST)
+ depends on ARCH_AT91 || COMPILE_TEST
help
This selects a driver for the Atmel SPI Controller, present on
- many AT32 (AVR32) and AT91 (ARM) chips.
+ many AT91 ARM chips.
config SPI_AU1550
tristate "Au1550/Au1200/Au1300 SPI Controller"
diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
index 5506a9c03c1f..e757afc1cfd0 100644
--- a/drivers/usb/musb/Kconfig
+++ b/drivers/usb/musb/Kconfig
@@ -87,7 +87,7 @@ config USB_MUSB_DA8XX
config USB_MUSB_TUSB6010
tristate "TUSB6010"
depends on HAS_IOMEM
- depends on (ARCH_OMAP2PLUS || COMPILE_TEST) && !BLACKFIN
+ depends on ARCH_OMAP2PLUS || COMPILE_TEST
depends on NOP_USB_XCEIV = USB_MUSB_HDRC # both built-in or both modules
config USB_MUSB_OMAP2PLUS
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
index 005ed87c8216..a9e398c144f8 100644
--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -6,8 +6,7 @@ menu "Console display driver support"
config VGA_CONSOLE
bool "VGA text console" if EXPERT || !X86
- depends on !4xx && !PPC_8xx && !SPARC && !M68K && !PARISC && !FRV && \
- !SUPERH && !BLACKFIN && !AVR32 && !CRIS && \
+ depends on !4xx && !PPC_8xx && !SPARC && !M68K && !PARISC && !SUPERH && \
(!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) && \
!ARM64 && !ARC && !MICROBLAZE && !OPENRISC
default y
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 0e19679348d1..79020ce95de2 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -828,10 +828,6 @@ config BFIN_WDT
To compile this driver as a module, choose M here: the
module will be called bfin_wdt.
-# CRIS Architecture
-
-# FRV Architecture
-
# X86 (i386 + ia64 + x86_64) Architecture
config ACQUIRE_WDT
@@ -1431,8 +1427,6 @@ config NIC7018_WDT
To compile this driver as a module, choose M here: the module will be
called nic7018_wdt.
-# M32R Architecture
-
# M68K Architecture
config M54xx_WATCHDOG
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index 0474d38aa854..1f9a0235f22c 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -94,10 +94,6 @@ obj-$(CONFIG_SPRD_WATCHDOG) += sprd_wdt.o
# BLACKFIN Architecture
obj-$(CONFIG_BFIN_WDT) += bfin_wdt.o
-# CRIS Architecture
-
-# FRV Architecture
-
# X86 (i386 + ia64 + x86_64) Architecture
obj-$(CONFIG_ACQUIRE_WDT) += acquirewdt.o
obj-$(CONFIG_ADVANTECH_WDT) += advantechwdt.o
@@ -146,8 +142,6 @@ obj-$(CONFIG_INTEL_MEI_WDT) += mei_wdt.o
obj-$(CONFIG_NI903X_WDT) += ni903x_wdt.o
obj-$(CONFIG_NIC7018_WDT) += nic7018_wdt.o
-# M32R Architecture
-
# M68K Architecture
obj-$(CONFIG_M54xx_WATCHDOG) += m54xx_wdt.o
diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt
index 58c2bbd385ad..57a27c42b5ac 100644
--- a/fs/Kconfig.binfmt
+++ b/fs/Kconfig.binfmt
@@ -1,6 +1,6 @@
config BINFMT_ELF
bool "Kernel support for ELF binaries"
- depends on MMU && (BROKEN || !FRV)
+ depends on MMU
select ELFCORE
default y
---help---
@@ -35,7 +35,7 @@ config ARCH_BINFMT_ELF_STATE
config BINFMT_ELF_FDPIC
bool "Kernel support for FDPIC ELF binaries"
default y if !BINFMT_ELF
- depends on (ARM || FRV || BLACKFIN || (SUPERH32 && !MMU) || C6X)
+ depends on (ARM || (SUPERH32 && !MMU) || C6X)
select ELFCORE
help
ELF FDPIC binaries are based on ELF, but allow the individual load
@@ -90,7 +90,6 @@ config BINFMT_SCRIPT
config BINFMT_FLAT
bool "Kernel support for flat binaries"
depends on !MMU || ARM || M68K
- depends on !FRV || BROKEN
help
Support uClinux FLAT format binaries.
diff --git a/fs/minix/Kconfig b/fs/minix/Kconfig
index f2a0cfcef11d..bcd53a79156f 100644
--- a/fs/minix/Kconfig
+++ b/fs/minix/Kconfig
@@ -18,7 +18,7 @@ config MINIX_FS
config MINIX_FS_NATIVE_ENDIAN
def_bool MINIX_FS
- depends on M32R || MICROBLAZE || MIPS || S390 || SUPERH || SPARC || XTENSA || (M68K && !MMU)
+ depends on MICROBLAZE || MIPS || S390 || SUPERH || SPARC || XTENSA || (M68K && !MMU)
config MINIX_FS_BIG_ENDIAN_16BIT_INDEXED
def_bool MINIX_FS
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 20d42c0d9fb6..1d6f16110eae 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -25,15 +25,10 @@
#include <asm/byteorder.h>
#include <asm/io.h>
-#if defined(CONFIG_CRIS) || defined(CONFIG_FRV)
-# define SUPPORT_VLB_SYNC 0
-#else
-# define SUPPORT_VLB_SYNC 1
-#endif
-
/*
* Probably not wise to fiddle with these
*/
+#define SUPPORT_VLB_SYNC 1
#define IDE_DEFAULT_MAX_FAILURES 1
#define ERROR_MAX 8 /* Max read/write errors per sector */
#define ERROR_RESET 3 /* Reset controller every 4th retry */
diff --git a/init/Kconfig b/init/Kconfig
index a14bcc9724a2..2852692d7c9c 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -998,7 +998,6 @@ config RELAY
config BLK_DEV_INITRD
bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
- depends on BROKEN || !FRV
help
The initial RAM filesystem is a ramfs which is loaded by the
boot loader (loadlin or lilo) and that is mounted as root
@@ -1108,7 +1107,7 @@ config MULTIUSER
config SGETMASK_SYSCALL
bool "sgetmask/ssetmask syscalls support" if EXPERT
- def_bool PARISC || BLACKFIN || M68K || PPC || MIPS || X86 || SPARC || CRIS || MICROBLAZE || SUPERH
+ def_bool PARISC || M68K || PPC || MIPS || X86 || SPARC || MICROBLAZE || SUPERH
---help---
sys_sgetmask and sys_ssetmask are obsolete system calls
no longer supported in libc but still enabled by default in some
@@ -1370,7 +1369,7 @@ config KALLSYMS_ABSOLUTE_PERCPU
config KALLSYMS_BASE_RELATIVE
bool
depends on KALLSYMS
- default !IA64 && !(TILE && 64BIT)
+ default !IA64
help
Instead of emitting them as absolute values in the native word size,
emit the symbol references in the kallsyms table as 32-bit entries,
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 41ac9d294245..6927c6d8d185 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -165,7 +165,7 @@ config DEBUG_INFO_REDUCED
config DEBUG_INFO_SPLIT
bool "Produce split debuginfo in .dwo files"
- depends on DEBUG_INFO && !FRV
+ depends on DEBUG_INFO
help
Generate debug info into separate .dwo files. This significantly
reduces the build directory size for builds with DEBUG_INFO,
@@ -354,10 +354,7 @@ config ARCH_WANT_FRAME_POINTERS
config FRAME_POINTER
bool "Compile the kernel with frame pointers"
- depends on DEBUG_KERNEL && \
- (CRIS || M68K || FRV || UML || \
- SUPERH || BLACKFIN) || \
- ARCH_WANT_FRAME_POINTERS
+ depends on DEBUG_KERNEL && (M68K || UML || SUPERH) || ARCH_WANT_FRAME_POINTERS
default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
help
If you say Y here the resulting kernel image will be slightly
@@ -1138,7 +1135,7 @@ config LOCKDEP
bool
depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
select STACKTRACE
- select FRAME_POINTER if !MIPS && !PPC && !ARM_UNWIND && !S390 && !MICROBLAZE && !ARC && !SCORE && !X86
+ select FRAME_POINTER if !MIPS && !PPC && !ARM_UNWIND && !S390 && !MICROBLAZE && !ARC && !X86
select KALLSYMS
select KALLSYMS_ALL
@@ -1571,7 +1568,7 @@ config FAULT_INJECTION_STACKTRACE_FILTER
depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
depends on !X86_64
select STACKTRACE
- select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND && !ARC && !SCORE && !X86
+ select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND && !ARC && !X86
help
Provide stacktrace filter for fault-injection capabilities
@@ -1969,7 +1966,7 @@ config STRICT_DEVMEM
bool "Filter access to /dev/mem"
depends on MMU && DEVMEM
depends on ARCH_HAS_DEVMEM_IS_ALLOWED
- default y if TILE || PPC || X86 || ARM64
+ default y if PPC || X86 || ARM64
---help---
If this option is disabled, you allow userspace (root) access to all
of memory, including kernel and userspace memory. Accidental
diff --git a/lib/test_user_copy.c b/lib/test_user_copy.c
index a6556f3364d1..e161f0498f42 100644
--- a/lib/test_user_copy.c
+++ b/lib/test_user_copy.c
@@ -31,8 +31,6 @@
* their capability at compile-time, we just have to opt-out certain archs.
*/
#if BITS_PER_LONG == 64 || (!(defined(CONFIG_ARM) && !defined(MMU)) && \
- !defined(CONFIG_BLACKFIN) && \
- !defined(CONFIG_M32R) && \
!defined(CONFIG_M68K) && \
!defined(CONFIG_MICROBLAZE) && \
!defined(CONFIG_NIOS2) && \
diff --git a/mm/Kconfig b/mm/Kconfig
index abefa573bcd8..d5004d82a1d6 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -278,13 +278,6 @@ config BOUNCE
by default when ZONE_DMA or HIGHMEM is selected, but you
may say n to override this.
-# On the 'tile' arch, USB OHCI needs the bounce pool since tilegx will often
-# have more than 4GB of memory, but we don't currently use the IOTLB to present
-# a 32-bit address to OHCI. So we need to use a bounce pool instead.
-config NEED_BOUNCE_POOL
- bool
- default y if TILE && USB_OHCI_HCD
-
config NR_QUICK
int
depends on QUICKLIST
diff --git a/mm/percpu.c b/mm/percpu.c
index 50e7fdf84055..79e3549cab0f 100644
--- a/mm/percpu.c
+++ b/mm/percpu.c
@@ -2719,11 +2719,7 @@ void __init setup_per_cpu_areas(void)
if (pcpu_setup_first_chunk(ai, fc) < 0)
panic("Failed to initialize percpu areas.");
-#ifdef CONFIG_CRIS
-#warning "the CRIS architecture has physical and virtual addresses confused"
-#else
pcpu_free_alloc_info(ai);
-#endif
}
#endif /* CONFIG_SMP */
--
2.9.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related
* [PATCH 00/47] arch-removal: device drivers
From: Arnd Bergmann @ 2018-03-14 15:35 UTC (permalink / raw)
To: linux-kernel
Cc: ulf.hansson, linux-usb, wsa, linux-iio, viresh.kumar,
linus.walleij, alexandre.belloni, linux-ide, netdev, linux-mtd,
linux-i2c, linux-rtc, lars, herbert, corbet, linux-doc, stern,
linux-serial, jslaby, linux-mmc, shli, wg, linux-crypto,
alsa-devel, linux-pwm, linux-watchdog, Arnd Bergmann,
b.zolnierkie, linux-input, linux-can, linux-raid, boris.brezillon,
broonie, bp, linux-fbdev
Hi driver maintainers,
I just posted one series with the removal of eight architectures,
see https://lkml.org/lkml/2018/3/14/505 for details, or
https://lwn.net/Articles/748074/ for more background.
These are the device drivers that go along with them. I have already
picked up the drivers for arch/metag/ into my tree, they were reviewed
earlier.
Please let me know if you have any concerns with the patch, or if you
prefer to pick up the patches in your respective trees. I created
the patches with 'git format-patch -D', so they will not apply without
manually removing those files.
For anything else, I'd keep the removal patches in my asm-generic tree
and will send a pull request for 4.17 along with the actual arch removal.
Arnd
Arnd Bergmann
edac: remove tile driver
net: tile: remove ethernet drivers
net: adi: remove blackfin ethernet drivers
net: 8390: remove m32r specific bits
net: remove cris etrax ethernet driver
net: smsc: remove m32r specific smc91x configuration
raid: remove tile specific raid6 implementation
rtc: remove tile driver
rtc: remove bfin driver
char: remove obsolete ds1302 rtc driver
char: remove tile-srom.c
char: remove blackfin OTP driver
pcmcia: remove m32r drivers
pcmcia: remove blackfin driver
ASoC: remove blackfin drivers
video/logo: remove obsolete logo files
fbdev: remove blackfin drivers
fbdev: s1d13xxxfb: remove m32r specific hacks
crypto: remove blackfin CRC driver
media: platform: remove blackfin capture driver
media: platform: remove m32r specific arv driver
cpufreq: remove blackfin driver
cpufreq: remove cris specific drivers
gpio: remove etraxfs driver
pinctrl: remove adi2/blackfin drivers
ata: remove bf54x driver
input: keyboard: remove bf54x driver
input: misc: remove blackfin rotary driver
mmc: remove bfin_sdh driver
can: remove bfin_can driver
watchdog: remove bfin_wdt driver
mtd: maps: remove bfin-async-flash driver
mtd: nand: remove bf5xx_nand driver
spi: remove blackfin related host drivers
i2c: remove bfin-twi driver
pwm: remobe pwm-bfin driver
usb: host: remove tilegx platform glue
usb: musb: remove blackfin port
usb: isp1362: remove blackfin arch glue
serial: remove cris/etrax uart drivers
serial: remove blackfin drivers
serial: remove m32r_sio driver
serial: remove tile uart driver
tty: remove bfin_jtag_comm and hvc_bfin_jtag drivers
tty: hvc: remove tile driver
staging: irda: remove bfin_sir driver
staging: iio: remove iio-trig-bfin-timer driver
.../devicetree/bindings/gpio/gpio-etraxfs.txt | 22 -
.../bindings/serial/axis,etraxfs-uart.txt | 22 -
Documentation/watchdog/watchdog-parameters.txt | 5 -
MAINTAINERS | 8 -
drivers/ata/Kconfig | 9 -
drivers/ata/Makefile | 1 -
drivers/ata/pata_bf54x.c | 1703 --------
drivers/char/Kconfig | 48 -
drivers/char/Makefile | 3 -
drivers/char/bfin-otp.c | 237 --
drivers/char/ds1302.c | 357 --
drivers/char/tile-srom.c | 475 ---
drivers/cpufreq/Makefile | 3 -
drivers/cpufreq/blackfin-cpufreq.c | 217 -
drivers/cpufreq/cris-artpec3-cpufreq.c | 93 -
drivers/cpufreq/cris-etraxfs-cpufreq.c | 92 -
drivers/crypto/Kconfig | 7 -
drivers/crypto/Makefile | 1 -
drivers/crypto/bfin_crc.c | 753 ----
drivers/crypto/bfin_crc.h | 124 -
drivers/edac/Kconfig | 8 -
drivers/edac/Makefile | 2 -
drivers/edac/tile_edac.c | 265 --
drivers/gpio/Kconfig | 9 -
drivers/gpio/Makefile | 1 -
drivers/gpio/gpio-etraxfs.c | 475 ---
drivers/i2c/busses/Kconfig | 18 -
drivers/i2c/busses/Makefile | 1 -
drivers/i2c/busses/i2c-bfin-twi.c | 737 ----
drivers/input/keyboard/Kconfig | 9 -
drivers/input/keyboard/Makefile | 1 -
drivers/input/keyboard/bf54x-keys.c | 396 --
drivers/input/misc/Kconfig | 9 -
drivers/input/misc/Makefile | 1 -
drivers/input/misc/bfin_rotary.c | 294 --
drivers/media/platform/Kconfig | 22 -
drivers/media/platform/Makefile | 4 -
drivers/media/platform/arv.c | 884 ----
drivers/media/platform/blackfin/Kconfig | 16 -
drivers/media/platform/blackfin/Makefile | 2 -
drivers/media/platform/blackfin/bfin_capture.c | 983 -----
drivers/media/platform/blackfin/ppi.c | 361 --
drivers/mmc/host/Kconfig | 19 -
drivers/mmc/host/Makefile | 1 -
drivers/mmc/host/bfin_sdh.c | 679 ----
drivers/mtd/maps/Kconfig | 10 -
drivers/mtd/maps/Makefile | 1 -
drivers/mtd/maps/bfin-async-flash.c | 196 -
drivers/mtd/nand/raw/Kconfig | 32 -
drivers/mtd/nand/raw/Makefile | 1 -
drivers/mtd/nand/raw/bf5xx_nand.c | 861 ----
drivers/net/Makefile | 1 -
drivers/net/can/Kconfig | 9 -
drivers/net/can/Makefile | 1 -
drivers/net/can/bfin_can.c | 784 ----
drivers/net/cris/Makefile | 1 -
drivers/net/cris/eth_v10.c | 1742 --------
drivers/net/ethernet/8390/Kconfig | 3 +-
drivers/net/ethernet/8390/ne.c | 23 +-
drivers/net/ethernet/Kconfig | 2 -
drivers/net/ethernet/Makefile | 2 -
drivers/net/ethernet/adi/Kconfig | 66 -
drivers/net/ethernet/adi/Makefile | 5 -
drivers/net/ethernet/adi/bfin_mac.c | 1881 ---------
drivers/net/ethernet/adi/bfin_mac.h | 104 -
drivers/net/ethernet/smsc/Kconfig | 4 +-
drivers/net/ethernet/smsc/smc91x.h | 26 -
drivers/net/ethernet/tile/Kconfig | 18 -
drivers/net/ethernet/tile/Makefile | 11 -
drivers/net/ethernet/tile/tilegx.c | 2279 -----------
drivers/net/ethernet/tile/tilepro.c | 2397 -----------
drivers/pcmcia/Kconfig | 26 -
drivers/pcmcia/Makefile | 3 -
drivers/pcmcia/bfin_cf_pcmcia.c | 316 --
drivers/pcmcia/m32r_cfc.c | 786 ----
drivers/pcmcia/m32r_cfc.h | 88 -
drivers/pcmcia/m32r_pcc.c | 763 ----
drivers/pcmcia/m32r_pcc.h | 66 -
drivers/pinctrl/Kconfig | 19 -
drivers/pinctrl/Makefile | 3 -
drivers/pinctrl/pinctrl-adi2-bf54x.c | 588 ---
drivers/pinctrl/pinctrl-adi2-bf60x.c | 517 ---
drivers/pinctrl/pinctrl-adi2.c | 1114 -----
drivers/pinctrl/pinctrl-adi2.h | 75 -
drivers/pwm/Kconfig | 9 -
drivers/pwm/Makefile | 1 -
drivers/pwm/pwm-bfin.c | 157 -
drivers/rtc/Kconfig | 17 -
drivers/rtc/Makefile | 2 -
drivers/rtc/rtc-bfin.c | 448 ---
drivers/rtc/rtc-tile.c | 143 -
drivers/spi/Kconfig | 19 -
drivers/spi/Makefile | 3 -
drivers/spi/spi-adi-v3.c | 984 -----
drivers/spi/spi-bfin-sport.c | 919 -----
drivers/spi/spi-bfin5xx.c | 1462 -------
drivers/staging/iio/Kconfig | 1 -
drivers/staging/iio/Makefile | 1 -
drivers/staging/iio/trigger/Kconfig | 19 -
drivers/staging/iio/trigger/Makefile | 5 -
drivers/staging/iio/trigger/iio-trig-bfin-timer.c | 292 --
drivers/staging/iio/trigger/iio-trig-bfin-timer.h | 25 -
drivers/staging/irda/drivers/Kconfig | 45 -
drivers/staging/irda/drivers/Makefile | 1 -
drivers/staging/irda/drivers/bfin_sir.c | 819 ----
drivers/staging/irda/drivers/bfin_sir.h | 93 -
drivers/tty/Kconfig | 13 -
drivers/tty/Makefile | 1 -
drivers/tty/bfin_jtag_comm.c | 353 --
drivers/tty/hvc/Kconfig | 9 -
drivers/tty/hvc/Makefile | 2 -
drivers/tty/hvc/hvc_bfin_jtag.c | 104 -
drivers/tty/hvc/hvc_tile.c | 196 -
drivers/tty/serial/Kconfig | 198 -
drivers/tty/serial/Makefile | 6 -
drivers/tty/serial/bfin_sport_uart.c | 937 -----
drivers/tty/serial/bfin_sport_uart.h | 86 -
drivers/tty/serial/bfin_uart.c | 1551 -------
drivers/tty/serial/crisv10.c | 4248 --------------------
drivers/tty/serial/crisv10.h | 133 -
drivers/tty/serial/etraxfs-uart.c | 960 -----
drivers/tty/serial/m32r_sio.c | 1053 -----
drivers/tty/serial/m32r_sio_reg.h | 150 -
drivers/tty/serial/tilegx.c | 689 ----
drivers/usb/host/Kconfig | 1 +
drivers/usb/host/ehci-hcd.c | 5 -
drivers/usb/host/ehci-tilegx.c | 207 -
drivers/usb/host/isp1362.h | 44 -
drivers/usb/host/ohci-hcd.c | 18 -
drivers/usb/host/ohci-tilegx.c | 196 -
drivers/usb/musb/Kconfig | 10 +-
drivers/usb/musb/Makefile | 1 -
drivers/usb/musb/blackfin.c | 623 ---
drivers/usb/musb/blackfin.h | 81 -
drivers/usb/musb/musb_core.c | 5 -
drivers/usb/musb/musb_core.h | 30 -
drivers/usb/musb/musb_debugfs.c | 2 -
drivers/usb/musb/musb_dma.h | 11 -
drivers/usb/musb/musb_gadget.c | 35 -
drivers/usb/musb/musb_regs.h | 182 -
drivers/usb/musb/musbhsdma.c | 5 -
drivers/usb/musb/musbhsdma.h | 64 -
drivers/video/fbdev/Kconfig | 103 -
drivers/video/fbdev/Makefile | 5 -
drivers/video/fbdev/bf537-lq035.c | 891 ----
drivers/video/fbdev/bf54x-lq043fb.c | 764 ----
drivers/video/fbdev/bfin-lq035q1-fb.c | 864 ----
drivers/video/fbdev/bfin-t350mcqb-fb.c | 669 ---
drivers/video/fbdev/bfin_adv7393fb.c | 828 ----
drivers/video/fbdev/bfin_adv7393fb.h | 319 --
drivers/video/fbdev/s1d13xxxfb.c | 10 -
drivers/video/logo/Kconfig | 15 -
drivers/video/logo/Makefile | 3 -
drivers/video/logo/logo.c | 12 -
drivers/video/logo/logo_blackfin_clut224.ppm | 1127 ------
drivers/video/logo/logo_blackfin_vga16.ppm | 1127 ------
drivers/video/logo/logo_m32r_clut224.ppm | 1292 ------
drivers/watchdog/Kconfig | 17 -
drivers/watchdog/Makefile | 7 -
drivers/watchdog/bfin_wdt.c | 476 ---
include/linux/bfin_mac.h | 30 -
include/linux/linux_logo.h | 3 -
include/linux/platform_data/bfin_rotary.h | 117 -
include/linux/platform_data/pinctrl-adi2.h | 40 -
include/linux/raid/pq.h | 1 -
include/linux/usb/musb.h | 7 -
include/linux/usb/tilegx.h | 35 -
include/media/blackfin/bfin_capture.h | 39 -
include/media/blackfin/ppi.h | 94 -
lib/raid6/Makefile | 6 -
lib/raid6/algos.c | 3 -
lib/raid6/test/Makefile | 7 -
lib/raid6/tilegx.uc | 87 -
sound/soc/Kconfig | 1 -
sound/soc/Makefile | 1 -
sound/soc/blackfin/Kconfig | 205 -
sound/soc/blackfin/Makefile | 40 -
sound/soc/blackfin/bf5xx-ac97-pcm.c | 480 ---
sound/soc/blackfin/bf5xx-ac97.c | 388 --
sound/soc/blackfin/bf5xx-ac97.h | 57 -
sound/soc/blackfin/bf5xx-ad1836.c | 109 -
sound/soc/blackfin/bf5xx-ad193x.c | 131 -
sound/soc/blackfin/bf5xx-ad1980.c | 109 -
sound/soc/blackfin/bf5xx-ad73311.c | 212 -
sound/soc/blackfin/bf5xx-i2s-pcm.c | 373 --
sound/soc/blackfin/bf5xx-i2s-pcm.h | 17 -
sound/soc/blackfin/bf5xx-i2s.c | 391 --
sound/soc/blackfin/bf5xx-sport.c | 1102 -----
sound/soc/blackfin/bf5xx-sport.h | 174 -
sound/soc/blackfin/bf5xx-ssm2602.c | 126 -
sound/soc/blackfin/bf6xx-i2s.c | 239 --
sound/soc/blackfin/bf6xx-sport.c | 425 --
sound/soc/blackfin/bf6xx-sport.h | 82 -
sound/soc/blackfin/bfin-eval-adau1373.c | 173 -
sound/soc/blackfin/bfin-eval-adau1701.c | 113 -
sound/soc/blackfin/bfin-eval-adau1x61.c | 142 -
sound/soc/blackfin/bfin-eval-adau1x81.c | 129 -
sound/soc/blackfin/bfin-eval-adav80x.c | 145 -
198 files changed, 7 insertions(+), 56230 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-etraxfs.txt
delete mode 100644 Documentation/devicetree/bindings/serial/axis,etraxfs-uart.txt
delete mode 100644 drivers/ata/pata_bf54x.c
delete mode 100644 drivers/char/bfin-otp.c
delete mode 100644 drivers/char/ds1302.c
delete mode 100644 drivers/char/tile-srom.c
delete mode 100644 drivers/cpufreq/blackfin-cpufreq.c
delete mode 100644 drivers/cpufreq/cris-artpec3-cpufreq.c
delete mode 100644 drivers/cpufreq/cris-etraxfs-cpufreq.c
delete mode 100644 drivers/crypto/bfin_crc.c
delete mode 100644 drivers/crypto/bfin_crc.h
delete mode 100644 drivers/edac/tile_edac.c
delete mode 100644 drivers/gpio/gpio-etraxfs.c
delete mode 100644 drivers/i2c/busses/i2c-bfin-twi.c
delete mode 100644 drivers/input/keyboard/bf54x-keys.c
delete mode 100644 drivers/input/misc/bfin_rotary.c
delete mode 100644 drivers/media/platform/arv.c
delete mode 100644 drivers/media/platform/blackfin/Kconfig
delete mode 100644 drivers/media/platform/blackfin/Makefile
delete mode 100644 drivers/media/platform/blackfin/bfin_capture.c
delete mode 100644 drivers/media/platform/blackfin/ppi.c
delete mode 100644 drivers/mmc/host/bfin_sdh.c
delete mode 100644 drivers/mtd/maps/bfin-async-flash.c
delete mode 100644 drivers/mtd/nand/raw/bf5xx_nand.c
delete mode 100644 drivers/net/can/bfin_can.c
delete mode 100644 drivers/net/cris/Makefile
delete mode 100644 drivers/net/cris/eth_v10.c
delete mode 100644 drivers/net/ethernet/adi/Kconfig
delete mode 100644 drivers/net/ethernet/adi/Makefile
delete mode 100644 drivers/net/ethernet/adi/bfin_mac.c
delete mode 100644 drivers/net/ethernet/adi/bfin_mac.h
delete mode 100644 drivers/net/ethernet/tile/Kconfig
delete mode 100644 drivers/net/ethernet/tile/Makefile
delete mode 100644 drivers/net/ethernet/tile/tilegx.c
delete mode 100644 drivers/net/ethernet/tile/tilepro.c
delete mode 100644 drivers/pcmcia/bfin_cf_pcmcia.c
delete mode 100644 drivers/pcmcia/m32r_cfc.c
delete mode 100644 drivers/pcmcia/m32r_cfc.h
delete mode 100644 drivers/pcmcia/m32r_pcc.c
delete mode 100644 drivers/pcmcia/m32r_pcc.h
delete mode 100644 drivers/pinctrl/pinctrl-adi2-bf54x.c
delete mode 100644 drivers/pinctrl/pinctrl-adi2-bf60x.c
delete mode 100644 drivers/pinctrl/pinctrl-adi2.c
delete mode 100644 drivers/pinctrl/pinctrl-adi2.h
delete mode 100644 drivers/pwm/pwm-bfin.c
delete mode 100644 drivers/rtc/rtc-bfin.c
delete mode 100644 drivers/rtc/rtc-tile.c
delete mode 100644 drivers/spi/spi-adi-v3.c
delete mode 100644 drivers/spi/spi-bfin-sport.c
delete mode 100644 drivers/spi/spi-bfin5xx.c
delete mode 100644 drivers/staging/iio/trigger/Kconfig
delete mode 100644 drivers/staging/iio/trigger/Makefile
delete mode 100644 drivers/staging/iio/trigger/iio-trig-bfin-timer.c
delete mode 100644 drivers/staging/iio/trigger/iio-trig-bfin-timer.h
delete mode 100644 drivers/staging/irda/drivers/bfin_sir.c
delete mode 100644 drivers/staging/irda/drivers/bfin_sir.h
delete mode 100644 drivers/tty/bfin_jtag_comm.c
delete mode 100644 drivers/tty/hvc/hvc_bfin_jtag.c
delete mode 100644 drivers/tty/hvc/hvc_tile.c
delete mode 100644 drivers/tty/serial/bfin_sport_uart.c
delete mode 100644 drivers/tty/serial/bfin_sport_uart.h
delete mode 100644 drivers/tty/serial/bfin_uart.c
delete mode 100644 drivers/tty/serial/crisv10.c
delete mode 100644 drivers/tty/serial/crisv10.h
delete mode 100644 drivers/tty/serial/etraxfs-uart.c
delete mode 100644 drivers/tty/serial/m32r_sio.c
delete mode 100644 drivers/tty/serial/m32r_sio_reg.h
delete mode 100644 drivers/tty/serial/tilegx.c
delete mode 100644 drivers/usb/host/ehci-tilegx.c
delete mode 100644 drivers/usb/host/ohci-tilegx.c
delete mode 100644 drivers/usb/musb/blackfin.c
delete mode 100644 drivers/usb/musb/blackfin.h
delete mode 100644 drivers/video/fbdev/bf537-lq035.c
delete mode 100644 drivers/video/fbdev/bf54x-lq043fb.c
delete mode 100644 drivers/video/fbdev/bfin-lq035q1-fb.c
delete mode 100644 drivers/video/fbdev/bfin-t350mcqb-fb.c
delete mode 100644 drivers/video/fbdev/bfin_adv7393fb.c
delete mode 100644 drivers/video/fbdev/bfin_adv7393fb.h
delete mode 100644 drivers/video/logo/logo_blackfin_clut224.ppm
delete mode 100644 drivers/video/logo/logo_blackfin_vga16.ppm
delete mode 100644 drivers/video/logo/logo_m32r_clut224.ppm
delete mode 100644 drivers/watchdog/bfin_wdt.c
delete mode 100644 include/linux/bfin_mac.h
delete mode 100644 include/linux/platform_data/bfin_rotary.h
delete mode 100644 include/linux/platform_data/pinctrl-adi2.h
delete mode 100644 include/linux/usb/tilegx.h
delete mode 100644 include/media/blackfin/bfin_capture.h
delete mode 100644 include/media/blackfin/ppi.h
delete mode 100644 lib/raid6/tilegx.uc
delete mode 100644 sound/soc/blackfin/Kconfig
delete mode 100644 sound/soc/blackfin/Makefile
delete mode 100644 sound/soc/blackfin/bf5xx-ac97-pcm.c
delete mode 100644 sound/soc/blackfin/bf5xx-ac97.c
delete mode 100644 sound/soc/blackfin/bf5xx-ac97.h
delete mode 100644 sound/soc/blackfin/bf5xx-ad1836.c
delete mode 100644 sound/soc/blackfin/bf5xx-ad193x.c
delete mode 100644 sound/soc/blackfin/bf5xx-ad1980.c
delete mode 100644 sound/soc/blackfin/bf5xx-ad73311.c
delete mode 100644 sound/soc/blackfin/bf5xx-i2s-pcm.c
delete mode 100644 sound/soc/blackfin/bf5xx-i2s-pcm.h
delete mode 100644 sound/soc/blackfin/bf5xx-i2s.c
delete mode 100644 sound/soc/blackfin/bf5xx-sport.c
delete mode 100644 sound/soc/blackfin/bf5xx-sport.h
delete mode 100644 sound/soc/blackfin/bf5xx-ssm2602.c
delete mode 100644 sound/soc/blackfin/bf6xx-i2s.c
delete mode 100644 sound/soc/blackfin/bf6xx-sport.c
delete mode 100644 sound/soc/blackfin/bf6xx-sport.h
delete mode 100644 sound/soc/blackfin/bfin-eval-adau1373.c
delete mode 100644 sound/soc/blackfin/bfin-eval-adau1701.c
delete mode 100644 sound/soc/blackfin/bfin-eval-adau1x61.c
delete mode 100644 sound/soc/blackfin/bfin-eval-adau1x81.c
delete mode 100644 sound/soc/blackfin/bfin-eval-adav80x.c
--
Cc: linux@roeck-us.net
Cc: corbet@lwn.net
Cc: tj@kernel.org
Cc: gregkh@linuxfoundation.org
Cc: rjw@rjwysocki.net
Cc: viresh.kumar@linaro.org
Cc: herbert@gondor.apana.org.au
Cc: davem@davemloft.net
Cc: bp@alien8.de
Cc: mchehab@kernel.org
Cc: linus.walleij@linaro.org
Cc: wsa@the-dreams.de
Cc: dmitry.torokhov@gmail.com
Cc: ulf.hansson@linaro.org
Cc: boris.brezillon@bootlin.com
Cc: cyrille.pitchen@wedev4u.fr
Cc: wg@grandegger.com
Cc: mkl@pengutronix.de
Cc: alexandre.belloni@bootlin.com
Cc: broonie@kernel.org
Cc: jic23@kernel.org
Cc: lars@metafoo.de
Cc: jslaby@suse.com
Cc: stern@rowland.harvard.edu
Cc: b.zolnierkie@samsung.com
Cc: shli@kernel.org
Cc: linux-watchdog@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Cc: linux-ide@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: linux-crypto@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-i2c@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: linux-mmc@vger.kernel.org
Cc: linux-mtd@lists.infradead.org
Cc: netdev@vger.kernel.org
Cc: linux-can@vger.kernel.org
Cc: linux-pwm@vger.kernel.org
Cc: linux-rtc@vger.kernel.org
Cc: linux-spi@vger.kernel.org
Cc: linux-iio@vger.kernel.org
Cc: linux-serial@vger.kernel.org
Cc: linux-usb@vger.kernel.org
Cc: linux-fbdev@vger.kernel.org
Cc: linux-raid@vger.kernel.org
Cc: alsa-devel@alsa-project.org
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply
* [PATCH 27/47] input: keyboard: remove bf54x driver
From: Arnd Bergmann @ 2018-03-14 15:35 UTC (permalink / raw)
To: linux-kernel; +Cc: Arnd Bergmann, Dmitry Torokhov, linux-input
In-Reply-To: <20180314153603.3127932-1-arnd@arndb.de>
The blackfin architecture is getting removed, so this
driver is now obsolete.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/input/keyboard/Kconfig | 9 -
drivers/input/keyboard/Makefile | 1 -
drivers/input/keyboard/bf54x-keys.c | 396 ------------------------------------
3 files changed, 406 deletions(-)
delete mode 100644 drivers/input/keyboard/bf54x-keys.c
diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
index 4c4ab1ced235..2b469cc47a78 100644
--- a/drivers/input/keyboard/Kconfig
+++ b/drivers/input/keyboard/Kconfig
@@ -157,15 +157,6 @@ config KEYBOARD_QT2160
This driver can also be built as a module. If so, the module
will be called qt2160.
-config KEYBOARD_BFIN
- tristate "Blackfin BF54x keypad support"
- depends on (BF54x && !BF544)
- help
- Say Y here if you want to use the BF54x keypad.
-
- To compile this driver as a module, choose M here: the
- module will be called bf54x-keys.
-
config KEYBOARD_CLPS711X
tristate "CLPS711X Keypad support"
depends on OF_GPIO && (ARCH_CLPS711X || COMPILE_TEST)
diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile
index 526e68294e6e..8fab920afa58 100644
--- a/drivers/input/keyboard/Makefile
+++ b/drivers/input/keyboard/Makefile
@@ -13,7 +13,6 @@ obj-$(CONFIG_KEYBOARD_AMIGA) += amikbd.o
obj-$(CONFIG_KEYBOARD_ATARI) += atakbd.o
obj-$(CONFIG_KEYBOARD_ATKBD) += atkbd.o
obj-$(CONFIG_KEYBOARD_BCM) += bcm-keypad.o
-obj-$(CONFIG_KEYBOARD_BFIN) += bf54x-keys.o
obj-$(CONFIG_KEYBOARD_CAP11XX) += cap11xx.o
obj-$(CONFIG_KEYBOARD_CLPS711X) += clps711x-keypad.o
obj-$(CONFIG_KEYBOARD_CROS_EC) += cros_ec_keyb.o
diff --git a/drivers/input/keyboard/bf54x-keys.c b/drivers/input/keyboard/bf54x-keys.c
deleted file mode 100644
index 8a07a426f88e..000000000000
--
2.9.0
^ permalink raw reply related
* [PATCH 28/47] input: misc: remove blackfin rotary driver
From: Arnd Bergmann @ 2018-03-14 15:35 UTC (permalink / raw)
To: linux-kernel; +Cc: Arnd Bergmann, Dmitry Torokhov, linux-input
In-Reply-To: <20180314153603.3127932-1-arnd@arndb.de>
The blackfin architecture is getting removed, so this
one is obsolete as well.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/input/misc/Kconfig | 9 -
drivers/input/misc/Makefile | 1 -
drivers/input/misc/bfin_rotary.c | 294 ------------------------------
include/linux/platform_data/bfin_rotary.h | 117 ------------
4 files changed, 421 deletions(-)
delete mode 100644 drivers/input/misc/bfin_rotary.c
delete mode 100644 include/linux/platform_data/bfin_rotary.h
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index 6a3c753b093b..572b15fa18c2 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -655,15 +655,6 @@ config INPUT_DM355EVM
To compile this driver as a module, choose M here: the
module will be called dm355evm_keys.
-config INPUT_BFIN_ROTARY
- tristate "Blackfin Rotary support"
- depends on BF54x || BF52x
- help
- Say Y here if you want to use the Blackfin Rotary.
-
- To compile this driver as a module, choose M here: the
- module will be called bfin-rotary.
-
config INPUT_WM831X_ON
tristate "WM831X ON pin"
depends on MFD_WM831X
diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile
index 8cc58f362bb8..72cde28649e2 100644
--- a/drivers/input/misc/Makefile
+++ b/drivers/input/misc/Makefile
@@ -19,7 +19,6 @@ obj-$(CONFIG_INPUT_ARIZONA_HAPTICS) += arizona-haptics.o
obj-$(CONFIG_INPUT_ATI_REMOTE2) += ati_remote2.o
obj-$(CONFIG_INPUT_ATLAS_BTNS) += atlas_btns.o
obj-$(CONFIG_INPUT_ATMEL_CAPTOUCH) += atmel_captouch.o
-obj-$(CONFIG_INPUT_BFIN_ROTARY) += bfin_rotary.o
obj-$(CONFIG_INPUT_BMA150) += bma150.o
obj-$(CONFIG_INPUT_CM109) += cm109.o
obj-$(CONFIG_INPUT_CMA3000) += cma3000_d0x.o
diff --git a/drivers/input/misc/bfin_rotary.c b/drivers/input/misc/bfin_rotary.c
deleted file mode 100644
index 799ce3d2820e..000000000000
diff --git a/include/linux/platform_data/bfin_rotary.h b/include/linux/platform_data/bfin_rotary.h
deleted file mode 100644
index 98829370fee2..000000000000
--
2.9.0
^ permalink raw reply related
* Re: [PATCH 27/47] input: keyboard: remove bf54x driver
From: Dmitry Torokhov @ 2018-03-14 16:04 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: linux-kernel, linux-input
In-Reply-To: <20180314153603.3127932-28-arnd@arndb.de>
On Wed, Mar 14, 2018 at 04:35:40PM +0100, Arnd Bergmann wrote:
> The blackfin architecture is getting removed, so this
> driver is now obsolete.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Please take it through your tree with the rest of bfin removal patches.
> ---
> drivers/input/keyboard/Kconfig | 9 -
> drivers/input/keyboard/Makefile | 1 -
> drivers/input/keyboard/bf54x-keys.c | 396 ------------------------------------
> 3 files changed, 406 deletions(-)
> delete mode 100644 drivers/input/keyboard/bf54x-keys.c
>
> diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
> index 4c4ab1ced235..2b469cc47a78 100644
> --- a/drivers/input/keyboard/Kconfig
> +++ b/drivers/input/keyboard/Kconfig
> @@ -157,15 +157,6 @@ config KEYBOARD_QT2160
> This driver can also be built as a module. If so, the module
> will be called qt2160.
>
> -config KEYBOARD_BFIN
> - tristate "Blackfin BF54x keypad support"
> - depends on (BF54x && !BF544)
> - help
> - Say Y here if you want to use the BF54x keypad.
> -
> - To compile this driver as a module, choose M here: the
> - module will be called bf54x-keys.
> -
> config KEYBOARD_CLPS711X
> tristate "CLPS711X Keypad support"
> depends on OF_GPIO && (ARCH_CLPS711X || COMPILE_TEST)
> diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile
> index 526e68294e6e..8fab920afa58 100644
> --- a/drivers/input/keyboard/Makefile
> +++ b/drivers/input/keyboard/Makefile
> @@ -13,7 +13,6 @@ obj-$(CONFIG_KEYBOARD_AMIGA) += amikbd.o
> obj-$(CONFIG_KEYBOARD_ATARI) += atakbd.o
> obj-$(CONFIG_KEYBOARD_ATKBD) += atkbd.o
> obj-$(CONFIG_KEYBOARD_BCM) += bcm-keypad.o
> -obj-$(CONFIG_KEYBOARD_BFIN) += bf54x-keys.o
> obj-$(CONFIG_KEYBOARD_CAP11XX) += cap11xx.o
> obj-$(CONFIG_KEYBOARD_CLPS711X) += clps711x-keypad.o
> obj-$(CONFIG_KEYBOARD_CROS_EC) += cros_ec_keyb.o
> diff --git a/drivers/input/keyboard/bf54x-keys.c b/drivers/input/keyboard/bf54x-keys.c
> deleted file mode 100644
> index 8a07a426f88e..000000000000
> --
> 2.9.0
>
--
Dmitry
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox