On Sat, Aug 31, 2024 at 12:04:09PM +0800, Zhang Zekun wrote: > The combination of dev_err() and the returned error code could be > replaced by dev_err_probe() in driver's probe function. Let's, > converting to dev_err_probe() to make code more simple. > > Suggested-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > Signed-off-by: Zhang Zekun <zhangzekun11@xxxxxxxxxx> > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > --- > v3: Wrap the line which is too long. > > drivers/pci/controller/dwc/pcie-kirin.c | 40 ++++++++++--------------- > 1 file changed, 16 insertions(+), 24 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pcie-kirin.c b/drivers/pci/controller/dwc/pcie-kirin.c > index e9bda1746ca5..3c9d8da3a241 100644 > --- a/drivers/pci/controller/dwc/pcie-kirin.c > +++ b/drivers/pci/controller/dwc/pcie-kirin.c > @@ -216,10 +216,9 @@ static int hi3660_pcie_phy_start(struct hi3660_pcie_phy *phy) > > usleep_range(PIPE_CLK_WAIT_MIN, PIPE_CLK_WAIT_MAX); > reg_val = kirin_apb_phy_readl(phy, PCIE_APB_PHY_STATUS0); > - if (reg_val & PIPE_CLK_STABLE) { > - dev_err(dev, "PIPE clk is not stable\n"); > - return -EINVAL; > - } > + if (reg_val & PIPE_CLK_STABLE) > + return dev_err_probe(dev, -EINVAL, > + "PIPE clk is not stable\n"); I guess this is a timeout issue, so -ETIMEDOUT. > > return 0; > } > @@ -371,10 +370,9 @@ static int kirin_pcie_get_gpio_enable(struct kirin_pcie *pcie, > if (ret < 0) > return 0; > > - if (ret > MAX_PCI_SLOTS) { > - dev_err(dev, "Too many GPIO clock requests!\n"); > - return -EINVAL; > - } > + if (ret > MAX_PCI_SLOTS) > + return dev_err_probe(dev, -EINVAL, > + "Too many GPIO clock requests!\n"); > > pcie->n_gpio_clkreq = ret; > > @@ -421,16 +419,14 @@ static int kirin_pcie_parse_port(struct kirin_pcie *pcie, > } > > pcie->num_slots++; > - if (pcie->num_slots > MAX_PCI_SLOTS) { > - dev_err(dev, "Too many PCI slots!\n"); > - return -EINVAL; > - } > + if (pcie->num_slots > MAX_PCI_SLOTS) > + return dev_err_probe(dev, -EINVAL, > + "Too many PCI slots!\n"); > > ret = of_pci_get_devfn(child); > - if (ret < 0) { > - dev_err(dev, "failed to parse devfn: %d\n", ret); > - return ret; > - } > + if (ret < 0) > + return dev_err_probe(dev, ret, > + "failed to parse devfn\n"); > > slot = PCI_SLOT(ret); > > @@ -725,16 +721,12 @@ static int kirin_pcie_probe(struct platform_device *pdev) > struct dw_pcie *pci; > int ret; > > - if (!dev->of_node) { > - dev_err(dev, "NULL node\n"); > - return -EINVAL; > - } > + if (!dev->of_node) > + return dev_err_probe(dev, -EINVAL, "NULL node\n"); This check is pointless, so you should drop it. > > data = of_device_get_match_data(dev); > - if (!data) { > - dev_err(dev, "OF data missing\n"); > - return -EINVAL; > - } > + if (!data) > + return dev_err_probe(dev, -EINVAL, "OF data missing\n"); -ENODATA - Mani -- மணிவண்ணன் சதாசிவம்