[PATCH 2/2] pci: host: new driver for Marvell Armada 7K/8K PCIe controller

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Mon Apr 11 08:56:51 PDT 2016


Hello,

On Sun, 27 Mar 2016 16:03:48 +0200, Andrew Lunn wrote:
> > +static irqreturn_t armada8k_pcie_irq_handler(int irq, void *arg)
> > +{
> > +	struct pcie_port *pp = arg;
> > +	struct armada8k_pcie *pcie = to_armada8k_pcie(pp);
> > +	void __iomem *base = pcie->base;
> > +	u32 val;
> > +
> > +	val = readl(base + PCIE_GLOBAL_INT_CAUSE1_REG);
> > +	writel(val, base + PCIE_GLOBAL_INT_CAUSE1_REG);
> > +
> > +	return IRQ_HANDLED;
> 
> Maybe a comment as to why you are just throwing them away.

I'll have a look into this.

> > +static int armada8k_pcie_probe(struct platform_device *pdev)
> > +{
> > +	struct armada8k_pcie *pcie;
> > +	struct pcie_port *pp;
> > +	struct device *dev = &pdev->dev;
> > +	struct resource *base;
> > +	int ret;
> > +
> > +	pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
> > +	if (!pcie)
> > +		return -ENOMEM;
> > +
> > +	pcie->main_clk = devm_clk_get(dev, "main");
> > +	if (!IS_ERR(pcie->main_clk))
> > +		clk_prepare_enable(pcie->main_clk);
> > +
> > +	pcie->lane_clk = devm_clk_get(dev, "port");
> > +	if (!IS_ERR(pcie->lane_clk))
> > +		clk_prepare_enable(pcie->lane_clk);
> 
> Any need to handle -EPRODE_DEFERED here?

Is this needed? The clocks are registered in of_clk_init(), i.e at
time_init() time. This is way before the device drivers get probed, no?

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com



More information about the linux-arm-kernel mailing list