[PATCH 2/4 v2] soc: qcom: add EBI2 driver

Arnd Bergmann arnd at arndb.de
Mon Aug 29 06:20:07 PDT 2016


On Wednesday 24 August 2016, Linus Walleij wrote:

> +static void qcom_ebi2_setup_chipselect(struct device_node *np,
> +				       struct device *dev,
> +				       void __iomem *ebi2_base,
> +				       void __iomem *ebi2_xmem,
> +				       u32 csindex)
> +{
> +	const struct cs_data *csd;
> +	u32 slowcfg, fastcfg;
> +	u32 val;
> +	int ret;
> +	int i;
> +
> +	csd = &cs_info[csindex];
> +	val = readl_relaxed(ebi2_base);
> +	val |= csd->enable_mask;
> +	writel_relaxed(val, ebi2_base);
> +	dev_dbg(dev, "enabled CS%u\n", csindex);

better use readl/writel instead of *_relaxed() if it's not performance critical.
If you have a function that is worth optimizing with relaxed accessors, add a
comment about how your concluded that it's safe to do so.

> +static struct platform_driver qcom_ebi2_driver = {
> +	.probe = qcom_ebi2_probe,
> +	.driver = {
> +		.name = "qcom-ebi2",
> +		.of_match_table = qcom_ebi2_of_match,
> +	},
> +};
> +builtin_platform_driver(qcom_ebi2_driver);

Why not allow this to be a loadable module?

	Arnd



More information about the linux-arm-kernel mailing list