linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Marek <jonathan@marek.ca>
To: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
	alsa-devel@alsa-project.org
Cc: Andy Gross <agross@kernel.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Vinod Koul <vkoul@kernel.org>,
	Sanyog Kale <sanyog.r.kale@intel.com>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	"open list:ARM/QUALCOMM SUPPORT" <linux-arm-msm@vger.kernel.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/5] soundwire: qcom: add support for mmio soundwire devices
Date: Tue, 9 Jun 2020 07:04:23 -0400	[thread overview]
Message-ID: <009dd6c1-276f-4ac5-b68b-1fe2de50ad8c@marek.ca> (raw)
In-Reply-To: <1b29db61-2394-8f88-9ebb-219568fb9306@linaro.org>

On 6/9/20 5:19 AM, Srinivas Kandagatla wrote:
> 
> 
> On 08/06/2020 21:43, Jonathan Marek wrote:
>> Adds support for qcom soundwire devices with memory mapped IO registers.
>>
>> Signed-off-by: Jonathan Marek <jonathan@marek.ca>
>> ---
> 
> In general patch itself looks pretty trivial, but I would like to see 
> what 1.5.1 controller provides in terms of error reporting of SoundWire 
> slave register reads/writes. On WCD based controller we did not have a 
> mechanism to report things like if the read is ignored or not. I was 
> hoping that this version of controller would be able to report that.
> 
> I will be nice to those patches if that is something which is supported 
> in this version.
> 
> --srini
> 

It does seem to support additional error reporting (it gets an error 
during enumeration after finding the 2 WSA slaves). However the 
downstream driver seems to disable this by setting BIT(31) in 
FIFO_CFG_ADDR (the comment says "For SWR master version 1.5.1, continue 
execute on command ignore"). Outside of the initial enumeration, it 
doesn't seem to produce any extra errors (still relying on the timeout 
mechanism to know if read/write is ignored).

>>   drivers/soundwire/qcom.c | 25 +++++++++++++++++++++++--
>>   1 file changed, 23 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
>> index f38d1fd3679f..628747df1c75 100644
>> --- a/drivers/soundwire/qcom.c
>> +++ b/drivers/soundwire/qcom.c
>> @@ -90,6 +90,7 @@ struct qcom_swrm_ctrl {
>>       struct sdw_bus bus;
>>       struct device *dev;
>>       struct regmap *regmap;
>> +    void __iomem *mmio;
>>       struct completion *comp;
>>       struct work_struct slave_work;
>>       /* read/write lock */
>> @@ -154,6 +155,20 @@ static int qcom_swrm_ahb_reg_write(struct 
>> qcom_swrm_ctrl *ctrl,
>>       return SDW_CMD_OK;
>>   }
>> +static int qcom_swrm_cpu_reg_read(struct qcom_swrm_ctrl *ctrl, int reg,
>> +                  u32 *val)
>> +{
>> +    *val = readl(ctrl->mmio + reg);
>> +    return SDW_CMD_OK;
>> +}
>> +
>> +static int qcom_swrm_cpu_reg_write(struct qcom_swrm_ctrl *ctrl, int reg,
>> +                   int val)
>> +{
>> +    writel(val, ctrl->mmio + reg);
>> +    return SDW_CMD_OK;
>> +}
>> +
>>   static int qcom_swrm_cmd_fifo_wr_cmd(struct qcom_swrm_ctrl *ctrl, u8 
>> cmd_data,
>>                        u8 dev_addr, u16 reg_addr)
>>   {
>> @@ -746,6 +761,7 @@ static int qcom_swrm_probe(struct platform_device 
>> *pdev)
>>       struct sdw_master_prop *prop;
>>       struct sdw_bus_params *params;
>>       struct qcom_swrm_ctrl *ctrl;
>> +    struct resource *res;
>>       int ret;
>>       u32 val;
>> @@ -760,8 +776,13 @@ static int qcom_swrm_probe(struct platform_device 
>> *pdev)
>>           if (!ctrl->regmap)
>>               return -EINVAL;
>>       } else {
>> -        /* Only WCD based SoundWire controller is supported */
>> -        return -ENOTSUPP;
>> +        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>> +
>> +        ctrl->reg_read = qcom_swrm_cpu_reg_read;
>> +        ctrl->reg_write = qcom_swrm_cpu_reg_write;
>> +        ctrl->mmio = devm_ioremap_resource(dev, res);
>> +        if (IS_ERR(ctrl->mmio))
>> +            return PTR_ERR(ctrl->mmio);
>>       }
>>       ctrl->irq = of_irq_get(dev->of_node, 0);
>>

  reply	other threads:[~2020-06-09 11:04 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-08 20:43 [PATCH 0/5] soundwire: qcom: add mmio support Jonathan Marek
2020-06-08 20:43 ` [PATCH 1/5] soundwire: qcom: fix abh/ahb typo Jonathan Marek
2020-06-09  9:18   ` Srinivas Kandagatla
2020-06-08 20:43 ` [PATCH 2/5] soundwire: qcom: add support for mmio soundwire devices Jonathan Marek
2020-06-08 21:31   ` Pierre-Louis Bossart
2020-06-09  4:34   ` Vinod Koul
2020-06-09  9:18     ` Srinivas Kandagatla
2020-06-09 11:20       ` Jonathan Marek
2020-06-09  9:19   ` Srinivas Kandagatla
2020-06-09 11:04     ` Jonathan Marek [this message]
2020-06-10 10:55       ` Srinivas Kandagatla
2020-06-08 20:43 ` [PATCH 3/5] soundwire: qcom: add v1.5.1 compatible Jonathan Marek
2020-06-09  5:26   ` Vinod Koul
2020-06-09 11:17     ` Jonathan Marek
2020-06-10 10:40       ` Srinivas Kandagatla
2020-06-08 20:43 ` [PATCH 4/5] soundwire: qcom: avoid dependency on CONFIG_SLIMBUS Jonathan Marek
2020-06-08 20:58   ` Jonathan Marek
2020-06-08 21:20   ` Pierre-Louis Bossart
2020-06-08 21:46     ` Jonathan Marek
2020-06-09  9:52   ` Srinivas Kandagatla
2020-06-09 11:33     ` Jonathan Marek
2020-06-10 10:36       ` Srinivas Kandagatla
2020-06-10 12:06         ` Jonathan Marek
2020-08-27 18:16   ` Dmitry Baryshkov
2020-06-08 20:43 ` [PATCH 5/5] soundwire: qcom: enable CPU interrupts for mmio devices Jonathan Marek
2020-06-09  9:26 ` [PATCH 0/5] soundwire: qcom: add mmio support Srinivas Kandagatla
2020-06-09 11:11   ` Jonathan Marek

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=009dd6c1-276f-4ac5-b68b-1fe2de50ad8c@marek.ca \
    --to=jonathan@marek.ca \
    --cc=agross@kernel.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=sanyog.r.kale@intel.com \
    --cc=srinivas.kandagatla@linaro.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 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).