On Mon 19 Apr 05:32 CDT 2021, schowdhu@xxxxxxxxxxxxxx wrote:
On 2021-04-15 12:01, Felipe Balbi wrote:
> Hi,
>
> Souradeep Chowdhury <schowdhu@xxxxxxxxxxxxxx> writes:
> > diff --git a/drivers/soc/qcom/Makefile b/drivers/soc/qcom/Makefile
> > index ad675a6..e7f0ccb 100644
> > --- a/drivers/soc/qcom/Makefile
> > +++ b/drivers/soc/qcom/Makefile
> > @@ -1,19 +1,22 @@
> > # SPDX-License-Identifier: GPL-2.0
> > CFLAGS_rpmh-rsc.o := -I$(src)
> > obj-$(CONFIG_QCOM_AOSS_QMP) += qcom_aoss.o
> > -obj-$(CONFIG_QCOM_GENI_SE) += qcom-geni-se.o
> > +obj-$(CONFIG_QCOM_APR) += apr.o
> > obj-$(CONFIG_QCOM_COMMAND_DB) += cmd-db.o
> > obj-$(CONFIG_QCOM_CPR) += cpr.o
> > +obj-$(CONFIG_QCOM_DCC) += dcc.o
> > +obj-$(CONFIG_QCOM_GENI_SE) += qcom-geni-se.o
> > obj-$(CONFIG_QCOM_GSBI) += qcom_gsbi.o
> > +obj-$(CONFIG_QCOM_KRYO_L2_ACCESSORS) += kryo-l2-accessors.o
> > +obj-$(CONFIG_QCOM_LLCC) += llcc-qcom.o
> > obj-$(CONFIG_QCOM_MDT_LOADER) += mdt_loader.o
> > obj-$(CONFIG_QCOM_OCMEM) += ocmem.o
> > obj-$(CONFIG_QCOM_PDR_HELPERS) += pdr_interface.o
> > obj-$(CONFIG_QCOM_QMI_HELPERS) += qmi_helpers.o
> > -qmi_helpers-y += qmi_encdec.o qmi_interface.o
> > obj-$(CONFIG_QCOM_RMTFS_MEM) += rmtfs_mem.o
> > obj-$(CONFIG_QCOM_RPMH) += qcom_rpmh.o
> > -qcom_rpmh-y += rpmh-rsc.o
> > -qcom_rpmh-y += rpmh.o
> > +obj-$(CONFIG_QCOM_RPMHPD) += rpmhpd.o
> > +obj-$(CONFIG_QCOM_RPMPD) += rpmpd.o
> > obj-$(CONFIG_QCOM_SMD_RPM) += smd-rpm.o
> > obj-$(CONFIG_QCOM_SMEM) += smem.o
> > obj-$(CONFIG_QCOM_SMEM_STATE) += smem_state.o
> > @@ -21,8 +24,6 @@ obj-$(CONFIG_QCOM_SMP2P) += smp2p.o
> > obj-$(CONFIG_QCOM_SMSM) += smsm.o
> > obj-$(CONFIG_QCOM_SOCINFO) += socinfo.o
> > obj-$(CONFIG_QCOM_WCNSS_CTRL) += wcnss_ctrl.o
> > -obj-$(CONFIG_QCOM_APR) += apr.o
> > -obj-$(CONFIG_QCOM_LLCC) += llcc-qcom.o
> > -obj-$(CONFIG_QCOM_RPMHPD) += rpmhpd.o
> > -obj-$(CONFIG_QCOM_RPMPD) += rpmpd.o
> > -obj-$(CONFIG_QCOM_KRYO_L2_ACCESSORS) += kryo-l2-accessors.o
> > +qmi_helpers-y += qmi_encdec.o qmi_interface.o
> > +qcom_rpmh-y += rpmh-rsc.o
> > +qcom_rpmh-y += rpmh.o
>
> why so many changes?
This has been accidentally sorted based on the config names. Will be fixing
this in next version of the patch.
>
> > diff --git a/drivers/soc/qcom/dcc.c b/drivers/soc/qcom/dcc.c
> > new file mode 100644
> > index 0000000..fcd5580
> > --- /dev/null
> > +++ b/drivers/soc/qcom/dcc.c
> > @@ -0,0 +1,1539 @@
> > +// SPDX-License-Identifier: GPL-2.0-only
> > +/*
> > + * Copyright (c) 2015-2021, The Linux Foundation. All rights
> > reserved.
> > + */
> > +
> > +#include <linux/bitfield.h>
> > +#include <linux/bitops.h>
> > +#include <linux/cdev.h>
> > +#include <linux/delay.h>
> > +#include <linux/fs.h>
> > +#include <linux/io.h>
> > +#include <linux/iopoll.h>
> > +#include <linux/module.h>
> > +#include <linux/of.h>
> > +#include <linux/of_device.h>
> > +#include <linux/platform_device.h>
> > +#include <linux/slab.h>
> > +#include <linux/uaccess.h>
> > +
> > +
>
> one blank line is enough
Ack
>
> > +#define TIMEOUT_US 100
> > +
> > +#define dcc_writel(drvdata, val, off) \
> > + writel((val), drvdata->base + dcc_offset_conv(drvdata, off))
> > +#define dcc_readl(drvdata, off) \
> > + readl(drvdata->base + dcc_offset_conv(drvdata, off))
> > +
> > +#define dcc_sram_readl(drvdata, off) \
> > + readl(drvdata->ram_base + off)
>
> this would be probably be better as static inlines.
These are simple read and write operations used in the driver
which just calls the generic writel and readl function.
That's why macros have been used here to lesson the overhead
of an extra function call.
The compiler will realize that your static dcc_sram_readl() is cheaper
to inline than call and do so for you. So you can expect that there's no
difference in the output from the compiler, and if there is then the
compiler knows something that you're overlooking.
Regards,
Bjorn