[PATCH v2 3/3] drm/bridge/synopsys: dsi: explicitly request exclusive reset control

Philipp Zabel p.zabel at pengutronix.de
Thu Jul 20 12:46:13 UTC 2017


Hi Philippe,

On Thu, 2017-07-20 at 14:19 +0200, Philippe CORNU wrote:
> Based on patch "Convert drivers to explicit reset API" from Philipp Zabel
> 
> Commit a53e35db70d1 ("reset: Ensure drivers are explicit when requesting
> reset lines") started to transition the reset control request API calls
> to explicitly state whether the driver needs exclusive or shared reset
> control behavior. Convert all drivers requesting exclusive resets to the
> explicit API call so the temporary transition helpers can be removed.
> 
> No functional changes.
> 
> Cc: Philipp Zabel <p.zabel at pengutronix.de>
> Signed-off-by: Philippe CORNU <philippe.cornu at st.com>

This reset control indeed has to be exclusive, as the driver depends on
the reset assertion to have an effect.

Acked-by: Philipp Zabel <p.zabel at pengutronix.de>

Again, the reset seems to be optional, though. I would suggest to change
this as follows:

> ---
>  drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
> index 781340d..bb0bfa8 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
> @@ -885,7 +885,7 @@ static int dw_mipi_dsi_bridge_attach(struct drm_bridge *bridge)
>  	 * Note that the reset was not defined in the initial device tree, so
>  	 * we have to be prepared for it not being found.
>  	 */
> -	apb_rst = devm_reset_control_get(dev, "apb");
> +	apb_rst = devm_reset_control_get_exclusive(dev, "apb");
>  	if (IS_ERR(apb_rst)) {
>  		ret = PTR_ERR(apb_rst);
>  		if (ret == -ENOENT) {

-	apb_rst = devm_reset_control_get(dev, "apb");
+	apb_rst = devm_reset_control_get_optional_exclusive(dev, "apb");
 	if (IS_ERR(apb_rst)) {
 		ret = PTR_ERR(apb_rst);
-		if (ret == -ENOENT) {
-			apb_rst = NULL;
-		} else {
-			dev_err(dev, "Unable to get reset control: %d\n", ret);
-			return ERR_PTR(ret);
-		}
+		dev_err(dev, "Unable to get reset control: %d\n", ret);
+		return ERR_PTR(ret);
 	}

regards
Philipp



More information about the dri-devel mailing list