lkml.org 
[lkml]   [2021]   [Apr]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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

\
 
 \ /
  Last update: 2021-04-20 08:37    [W:0.058 / U:1.120 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site