[PATCH 2/4 v2] soc: qcom: add EBI2 driver
Linus Walleij
linus.walleij at linaro.org
Mon Aug 29 06:28:41 PDT 2016
On Mon, Aug 29, 2016 at 3:20 PM, Arnd Bergmann <arnd at arndb.de> wrote:
> 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.
OK changing it.
>> +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?
I don't see any point in it, it's so basic to be able to access the
MMIO devices on the platform, the plan was to select the driver
from the corresponding mach-qcom SoC type (MSM8660+APQ8060).
But I can make it a module instead, if preferred.
Yours,
Linus Walleij
More information about the linux-arm-kernel
mailing list