All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: schowdhu@codeaurora.org
Cc: Felipe Balbi <balbi@kernel.org>, Andy Gross <agross@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	devicetree@vger.kernel.org,
	Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>,
	Sibi Sankar <sibis@codeaurora.org>,
	Rajendra Nayak <rnayak@codeaurora.org>,
	vkoul@kernel.org
Subject: Re: [PATCH V3 2/4] soc: qcom: dcc:Add driver support for Data Capture and Compare unit(DCC)
Date: Mon, 19 Apr 2021 09:32:25 -0500	[thread overview]
Message-ID: <20210419143225.GO1538589@yoga> (raw)
In-Reply-To: <ffc2076e7145af0099bab8ef37611556@codeaurora.org>

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.

Regards,
Bjorn

WARNING: multiple messages have this Message-ID (diff)
From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: schowdhu@codeaurora.org
Cc: Felipe Balbi <balbi@kernel.org>, Andy Gross <agross@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	devicetree@vger.kernel.org,
	Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>,
	Sibi Sankar <sibis@codeaurora.org>,
	Rajendra Nayak <rnayak@codeaurora.org>,
	vkoul@kernel.org
Subject: Re: [PATCH V3 2/4] soc: qcom: dcc:Add driver support for Data Capture and Compare unit(DCC)
Date: Mon, 19 Apr 2021 09:32:25 -0500	[thread overview]
Message-ID: <20210419143225.GO1538589@yoga> (raw)
In-Reply-To: <ffc2076e7145af0099bab8ef37611556@codeaurora.org>

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.

Regards,
Bjorn

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-04-19 14:32 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-14  8:32 [PATCH V3 0/4] Add driver support for Data Capture and Compare Engine(DCC) for SM8150 Souradeep Chowdhury
2021-04-14  8:32 ` [PATCH V3 1/4] dt-bindings: Added the yaml bindings for DCC Souradeep Chowdhury
2021-04-14  8:32 ` [PATCH V3 2/4] soc: qcom: dcc:Add driver support for Data Capture and Compare unit(DCC) Souradeep Chowdhury
2021-04-15  6:31   ` Felipe Balbi
2021-04-15  6:31     ` Felipe Balbi
2021-04-19 10:32     ` schowdhu
2021-04-19 14:32       ` Bjorn Andersson [this message]
2021-04-19 14:32         ` Bjorn Andersson
2021-04-20  6:36         ` schowdhu
2021-04-14  8:32 ` [PATCH V3 3/4] MAINTAINERS: Add the entry for DCC(Data Capture and Compare) driver support Souradeep Chowdhury
2021-04-14  8:32 ` [PATCH V3 4/4] arm64: dts: qcom: sm8150: Add Data Capture and Compare(DCC) support node Souradeep Chowdhury

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210419143225.GO1538589@yoga \
    --to=bjorn.andersson@linaro.org \
    --cc=agross@kernel.org \
    --cc=balbi@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rnayak@codeaurora.org \
    --cc=robh+dt@kernel.org \
    --cc=saiprakash.ranjan@codeaurora.org \
    --cc=schowdhu@codeaurora.org \
    --cc=sibis@codeaurora.org \
    --cc=vkoul@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.