mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: William Zhang <william.zhang@broadcom.com>
To: Mark Brown <broonie@kernel.org>
Cc: Linux SPI List <linux-spi@vger.kernel.org>,
	Broadcom Kernel List <bcm-kernel-feedback-list@broadcom.com>,
	anand.gore@broadcom.com, tomer.yacoby@broadcom.com,
	dan.beygelman@broadcom.com, joel.peshkin@broadcom.com,
	f.fainelli@gmail.com, jonas.gorski@gmail.com,
	kursad.oney@broadcom.com, dregan@mail.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 11/16] spi: bcm63xx-hsspi: Add prepend feature support
Date: Mon, 9 Jan 2023 12:43:53 -0800	[thread overview]
Message-ID: <04b740e0-09d1-8c39-4f0e-8f61a74eeb58@broadcom.com> (raw)
In-Reply-To: <Y7xrhjhhY3g5DE25@sirena.org.uk>

[-- Attachment #1: Type: text/plain, Size: 3414 bytes --]



On 01/09/2023 11:31 AM, Mark Brown wrote:
> On Fri, Jan 06, 2023 at 07:52:35PM -0800, William Zhang wrote:
>> On 01/06/2023 02:00 PM, Mark Brown wrote:
>>> On Fri, Jan 06, 2023 at 12:08:03PM -0800, William Zhang wrote:
> 
>>>> Multiple transfers within a SPI message may be combined into one
>>>> transfer to the controller using its prepend feature. A SPI message is
>>>> prependable only if the following are all true:
>>>>     * One or more half duplex write transfer
>>>>     * Optional full duplex read/write at the end
>>>>     * No delay and cs_change between transfers
> 
>>> There is nothing driver specific here, this should be implemented in the
>>> core - we have existing logic to rewrite messages to match driver
>>> constraints, this could be added there possibly with flags to allow
>>> drivers to disable or enable the merging if they've got special
>>> requirements.
> 
>> My understanding of combining the spi transfer in the core level does not
>> quite work out to our controller.  For example, for a spi message with three
>> transfers, tx, tx and rx. We can possibly combine them in single duplex
>> tx/rx transfer in the core. But this will be treated as duplex transaction
>> in our controller level which require tx and rx data happens at the same
>> time. Obviously this won't work when rx depends on tx happening first. We
> 
> I'm saying that if this logic is useful then implement in the core
> rather than in the driver.
> 
>> can not differentiate this combined duplex transfer from the true duplex
>> transfer unless there is some flag to indicate that. Also there is limit of
>> max tx length as the prepend buffer so maybe another parameter.  And another
>> reason to be done in the driver level is this prepend mode has dependency on
>> dummy cs workaround which is driver level parameter currently.  I am not
>> sure how practical and useful this is to factor them out to the core level?
> 
> If this relies on software control of the chip select (which is what I
> *think* your dummy CS workaround thing is about, the other patch about
> that is really hard to understand) then I'm confused about what the
> advantage is?
Dummy CS workaround is implemented by Jonas when he first upstream the 
driver. It does not work on all the board designs so prepend mode is 
introduced. I have some detail explanation on this in [PATCH 10/16] spi: 
bcm63xx-hsspi: Make dummy cs workaround as an option.

The controller only work in one mode and that's why driver code has some 
dependency between these two modes. The advantage of the premode is it 
works on all hw design however it does not support all types mem_ops 
operation. That is why you see the patch 14 to disable the dual io mem 
op. But dummy cs workaround can support this and in case there is such 
pattern from non mem op spi transaction, dummy cs workaround can be used 
as long as it does not have the board design limitation.   So neither 
one is perfect but hopefully with both options available, we can cover 
all the cases.

You mentioned there is some existing logic to rewrite messages to match 
driver constraints in the core driver.  I didn't see it when I did a 
quick search on spi.c. I will take a deep look into the file. But if you 
can point me where this logic is so I can be sure that I am looking at 
the right place and will double check if this can be done or not in the 
core level.  Thanks!


> 

[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4212 bytes --]

  reply	other threads:[~2023-01-09 20:44 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-06 20:07 [PATCH 00/16] spi: bcm63xx-hsspi: driver and doc updates William Zhang
2023-01-06 20:07 ` [PATCH 01/16] dt-bindings: spi: Convert bcm63xx-hsspi bindings to json-schema William Zhang
2023-01-07 15:18   ` Rob Herring
2023-01-07 15:32   ` Krzysztof Kozlowski
2023-01-09  7:52     ` William Zhang
2023-01-09  8:48       ` Krzysztof Kozlowski
2023-01-06 20:07 ` [PATCH 02/16] dt-bindings: spi: Add bcmbca-hsspi controller support William Zhang
2023-01-08 14:51   ` Krzysztof Kozlowski
2023-01-09  8:27     ` William Zhang
2023-01-09  8:56       ` Krzysztof Kozlowski
2023-01-09 19:13         ` William Zhang
2023-01-10  8:40           ` Krzysztof Kozlowski
2023-01-10 22:18             ` Florian Fainelli
2023-01-11  1:08               ` William Zhang
2023-01-11  9:02               ` Krzysztof Kozlowski
2023-01-11 18:04                 ` William Zhang
2023-01-11 18:12                   ` Krzysztof Kozlowski
2023-01-11 18:44                     ` William Zhang
2023-01-12  8:21                       ` Krzysztof Kozlowski
2023-01-12 19:50                         ` William Zhang
2023-01-13  7:41                           ` Krzysztof Kozlowski
2023-01-14  3:17                             ` William Zhang
2023-01-15 14:31                               ` Krzysztof Kozlowski
2023-01-11  0:59             ` William Zhang
2023-01-11  9:01               ` Krzysztof Kozlowski
2023-01-06 20:07 ` [PATCH 03/16] dt-bindings: spi: Add spi peripheral specific property William Zhang
2023-01-06 21:14   ` Mark Brown
2023-01-07  3:27     ` William Zhang
2023-01-07 15:38       ` Rob Herring
2023-01-09  8:06         ` William Zhang
2023-01-09 19:19           ` Mark Brown
2023-01-09 20:18             ` William Zhang
2023-01-10 22:01               ` Mark Brown
2023-01-11 19:48                 ` William Zhang
2023-01-08 14:52   ` Krzysztof Kozlowski
2023-01-09  8:27     ` William Zhang
2023-01-06 20:07 ` [PATCH 04/16] ARM: dts: broadcom: bcmbca: Add spi controller node William Zhang
2023-01-06 20:07 ` [PATCH 05/16] arm64: " William Zhang
2023-01-06 20:07 ` [PATCH 06/16] spi: bcm63xx-hsspi: Endianness fix for ARM based SoC William Zhang
2023-01-07  7:44   ` kernel test robot
2023-01-07 21:21   ` kernel test robot
2023-01-07 21:52   ` kernel test robot
2023-01-07 23:23   ` kernel test robot
2023-01-11  6:33   ` kernel test robot
2023-01-06 20:07 ` [PATCH 07/16] spi: bcm63xx-hsspi: Add polling mode support William Zhang
2023-01-06 21:47   ` Mark Brown
2023-01-07  3:35     ` William Zhang
2023-01-09 19:06       ` Mark Brown
2023-01-09 20:10         ` William Zhang
2023-01-10 22:49           ` Mark Brown
2023-01-11 20:13             ` William Zhang
2023-01-11 22:41               ` Mark Brown
2023-01-11 22:57                 ` William Zhang
2023-01-06 20:08 ` [PATCH 08/16] spi: bcm63xx-hsspi: Handle cs_change correctly William Zhang
2023-01-06 20:08 ` [PATCH 09/16] spi: bcm63xx-hsspi: Fix multi-bit mode setting William Zhang
2023-01-06 20:08 ` [PATCH 10/16] spi: bcm63xx-hsspi: Make dummy cs workaround as an option William Zhang
2023-01-12 18:08   ` Mark Brown
2023-01-18 23:09     ` William Zhang
2023-01-19 13:09       ` Mark Brown
2023-01-06 20:08 ` [PATCH 11/16] spi: bcm63xx-hsspi: Add prepend feature support William Zhang
2023-01-06 22:00   ` Mark Brown
2023-01-07  3:52     ` William Zhang
2023-01-09 19:31       ` Mark Brown
2023-01-09 20:43         ` William Zhang [this message]
2023-01-10 21:18           ` Mark Brown
2023-01-11 19:42             ` William Zhang
2023-01-12 16:57               ` Mark Brown
2023-01-06 20:08 ` [PATCH 12/16] spi: bcm63xx-hsspi: Add clock gate disable option support William Zhang
2023-01-06 20:08 ` [PATCH 13/16] spi: spi-mem: Allow controller supporting mem_ops without exec_op William Zhang
2023-01-06 20:08 ` [PATCH 14/16] spi: bcm63xx-hsspi: prepend: Disable spi mem dual io read op support William Zhang
2023-01-06 22:07   ` Mark Brown
2023-01-07  3:57     ` William Zhang
2023-01-06 20:08 ` [PATCH 15/16] spi: bcmbca-hsspi: Add driver for newer HSSPI controller William Zhang
2023-01-07 22:02   ` kernel test robot
2023-01-08  2:25   ` kernel test robot
2023-01-06 20:08 ` [PATCH 16/16] MAINTAINERS: Add entry for Broadcom Broadband SoC HS SPI drivers William Zhang

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=04b740e0-09d1-8c39-4f0e-8f61a74eeb58@broadcom.com \
    --to=william.zhang@broadcom.com \
    --cc=anand.gore@broadcom.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=broonie@kernel.org \
    --cc=dan.beygelman@broadcom.com \
    --cc=dregan@mail.com \
    --cc=f.fainelli@gmail.com \
    --cc=joel.peshkin@broadcom.com \
    --cc=jonas.gorski@gmail.com \
    --cc=kursad.oney@broadcom.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=tomer.yacoby@broadcom.com \
    /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

all inboxes | Powered by JetHome®