On Di, 2024-01-09 at 15:25 +0800, Shengyang Chen wrote: > +static int cdns_dsi_get_reset(struct device *dev, struct cdns_dsi *dsi) > +{ > + dsi->dpi_rst = devm_reset_control_get(dev, "dpi"); > + if (IS_ERR(dsi->dpi_rst)) > + return PTR_ERR(dsi->dpi_rst); Please use devm_reset_control_get_exclusive() directly. Also, consider using devm_reset_control_bulk_get_exclusive() instead, to control "dpi"/"apb"/"txesc" resets together - if the hardware can handle deasserting in reversed order. > + > + dsi->apb_rst = devm_reset_control_get(dev, "apb"); > + if (IS_ERR(dsi->apb_rst)) > + return PTR_ERR(dsi->apb_rst); > + > + dsi->txesc_rst = devm_reset_control_get(dev, "txesc"); > + if (IS_ERR(dsi->txesc_rst)) > + return PTR_ERR(dsi->txesc_rst); > + > + dsi->txbytehs_rst = devm_reset_control_get(dev, "txbytehs"); > + if (IS_ERR(dsi->txbytehs_rst)) > + return PTR_ERR(dsi->txbytehs_rst); > + > + return 0; > +} regards Philipp