linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH V3 2/4] soc: qcom: dcc:Add driver support for Data Capture and Compare unit(DCC)
       [not found] ` <59b2e83d5d0f435112f6ae266612ff91c85b120f.1618387606.git.schowdhu@codeaurora.org>
@ 2021-04-15  6:31   ` Felipe Balbi
       [not found]     ` <ffc2076e7145af0099bab8ef37611556@codeaurora.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Felipe Balbi @ 2021-04-15  6:31 UTC (permalink / raw)
  To: Souradeep Chowdhury, Andy Gross, Bjorn Andersson, Rob Herring
  Cc: linux-arm-kernel, linux-kernel, linux-arm-msm, devicetree,
	Sai Prakash Ranjan, Sibi Sankar, Rajendra Nayak, vkoul,
	Souradeep Chowdhury


[-- Attachment #1.1: Type: text/plain, Size: 3141 bytes --]


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?

> 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

> +#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.

-- 
balbi

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 857 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH V3 2/4] soc: qcom: dcc:Add driver support for Data Capture and Compare unit(DCC)
       [not found]     ` <ffc2076e7145af0099bab8ef37611556@codeaurora.org>
@ 2021-04-19 14:32       ` Bjorn Andersson
  0 siblings, 0 replies; 2+ messages in thread
From: Bjorn Andersson @ 2021-04-19 14:32 UTC (permalink / raw)
  To: schowdhu
  Cc: Felipe Balbi, Andy Gross, Rob Herring, linux-arm-kernel,
	linux-kernel, linux-arm-msm, devicetree, Sai Prakash Ranjan,
	Sibi Sankar, Rajendra Nayak, vkoul

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-04-19 14:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <cover.1618387606.git.schowdhu@codeaurora.org>
     [not found] ` <59b2e83d5d0f435112f6ae266612ff91c85b120f.1618387606.git.schowdhu@codeaurora.org>
2021-04-15  6:31   ` [PATCH V3 2/4] soc: qcom: dcc:Add driver support for Data Capture and Compare unit(DCC) Felipe Balbi
     [not found]     ` <ffc2076e7145af0099bab8ef37611556@codeaurora.org>
2021-04-19 14:32       ` Bjorn Andersson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).