Messages in this thread | | | Date | Tue, 20 Apr 2021 12:06:40 +0530 | From | schowdhu@codeauro ... | Subject | Re: [PATCH V3 2/4] soc: qcom: dcc:Add driver support for Data Capture and Compare unit(DCC) |
| |
On 2021-04-19 20:02, Bjorn Andersson wrote: > On Mon 19 Apr 05:32 CDT 2021, schowdhu@codeaurora.org wrote: > >> On 2021-04-15 12:01, Felipe Balbi wrote: >> > Hi, >> > >> > Souradeep Chowdhury <schowdhu@codeaurora.org> 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.
Ack. Will go for static inline here.
> > Regards, > Bjorn
| |