* [PATCH v2 0/4] Enable shared SE support over I2C
@ 2024-09-06 19:14 Mukesh Kumar Savaliya
2024-09-11 17:02 ` Vinod Koul
0 siblings, 1 reply; 4+ messages in thread
From: Mukesh Kumar Savaliya @ 2024-09-06 19:14 UTC (permalink / raw)
To: konrad.dybcio, andersson, andi.shyti, linux-arm-msm, dmaengine,
linux-kernel, linux-i2c, conor+dt, agross, devicetree, vkoul,
linux, dan.carpenter, Frank.Li, konradybcio
Cc: Mukesh Kumar Savaliya
This Series adds support to share QUP (Qualcomm Unified peripheral)
based I2C SE (Serial Engine) controller between two subsystems.
Each subsystem should have its own dedicated GPII (General Purpose -
Interface Instance) acting as pipe between SE and GSI (Generic SW -
Interface) DMA HW engine.
Subsystem must acquire Lock over the SE so that it gets uninterrupted
control till it unlocks the SE. It also makes sure the commonly shared
TLMM GPIOs are not touched which can impact other subsystem or cause
any interruption. Generally, GPIOs are being unconfigured during
suspend time.
GSI DMA engine is capable to perform requested transfer operations
from any of the I2C client in a seamless way and its transparent to
the subsystems. Make sure to enable “qcom,shared-se” flag only while
enabling this feature. I2C client should add in its respective parent
node.
Example :
Two clients from different SS can share an I2C SE for same slave device
OR their owned slave devices.
Assume I2C Slave EEPROM device connected with I2C controller.
Each client from ADSP SS and APPS Linux SS can perform i2c transactions.
This gets serialized by lock TRE + DMA Transfers + Unlock TRE at HW level.
Signed-off-by: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com>
---
Link to V1: https://lore.kernel.org/lkml/cb7613d0-586e-4089-a1b6-2405f4dc4883@quicinc.com/T/
Changes in V2:
- Enhanced commit log grammatically for PATCH v1 3/4 as suggested by Bryan.
- Updated Cover letter along with acronyms expansion.
- Added maintainers list from other subsystems for review, which was missing.
Thanks to Krzysztof for pointing out.
- Added cover letter with an example of Serial Engine sharing.
- Addressed review comments for all the patches.
---
Mukesh Kumar Savaliya (4):
dt-bindindgs: i2c: qcom,i2c-geni: Document shared flag
dma: gpi: Add Lock and Unlock TRE support to access SE exclusively
soc: qcom: geni-se: Export function geni_se_clks_off()
i2c: i2c-qcom-geni: Enable i2c controller sharing between two
subsystems
.../bindings/i2c/qcom,i2c-geni-qcom.yaml | 4 ++
drivers/dma/qcom/gpi.c | 37 ++++++++++++++++++-
drivers/i2c/busses/i2c-qcom-geni.c | 29 +++++++++++----
drivers/soc/qcom/qcom-geni-se.c | 4 +-
include/linux/dma/qcom-gpi-dma.h | 6 +++
include/linux/soc/qcom/geni-se.h | 3 ++
6 files changed, 74 insertions(+), 9 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 0/4] Enable shared SE support over I2C
@ 2024-09-06 19:14 Mukesh Kumar Savaliya
0 siblings, 0 replies; 4+ messages in thread
From: Mukesh Kumar Savaliya @ 2024-09-06 19:14 UTC (permalink / raw)
To: konrad.dybcio, andersson, andi.shyti, linux-arm-msm, dmaengine,
linux-kernel, linux-i2c, conor+dt, agross, devicetree, vkoul,
linux, dan.carpenter, Frank.Li, konradybcio
Cc: quic_vdadhani, Mukesh Kumar Savaliya
This Series adds support to share QUP (Qualcomm Unified peripheral)
based I2C SE (Serial Engine) controller between two subsystems.
Each subsystem should have its own dedicated GPII (General Purpose -
Interface Instance) acting as pipe between SE and GSI (Generic SW -
Interface) DMA HW engine.
Subsystem must acquire Lock over the SE so that it gets uninterrupted
control till it unlocks the SE. It also makes sure the commonly shared
TLMM GPIOs are not touched which can impact other subsystem or cause
any interruption. Generally, GPIOs are being unconfigured during
suspend time.
GSI DMA engine is capable to perform requested transfer operations
from any of the I2C client in a seamless way and its transparent to
the subsystems. Make sure to enable “qcom,shared-se” flag only while
enabling this feature. I2C client should add in its respective parent
node.
Example :
Two clients from different SS can share an I2C SE for same slave device
OR their owned slave devices.
Assume I2C Slave EEPROM device connected with I2C controller.
Each client from ADSP SS and APPS Linux SS can perform i2c transactions.
This gets serialized by lock TRE + DMA Transfers + Unlock TRE at HW level.
Signed-off-by: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com>
---
Link to V1: https://lore.kernel.org/lkml/cb7613d0-586e-4089-a1b6-2405f4dc4883@quicinc.com/T/
Changes in V2:
- Enhanced commit log grammatically for PATCH v1 3/4 as suggested by Bryan.
- Updated Cover letter along with acronyms expansion.
- Added maintainers list from other subsystems for review, which was missing.
Thanks to Krzysztof for pointing out.
- Added cover letter with an example of Serial Engine sharing.
- Addressed review comments for all the patches.
---
Mukesh Kumar Savaliya (4):
dt-bindindgs: i2c: qcom,i2c-geni: Document shared flag
dma: gpi: Add Lock and Unlock TRE support to access SE exclusively
soc: qcom: geni-se: Export function geni_se_clks_off()
i2c: i2c-qcom-geni: Enable i2c controller sharing between two
subsystems
.../bindings/i2c/qcom,i2c-geni-qcom.yaml | 4 ++
drivers/dma/qcom/gpi.c | 37 ++++++++++++++++++-
drivers/i2c/busses/i2c-qcom-geni.c | 29 +++++++++++----
drivers/soc/qcom/qcom-geni-se.c | 4 +-
include/linux/dma/qcom-gpi-dma.h | 6 +++
include/linux/soc/qcom/geni-se.h | 3 ++
6 files changed, 74 insertions(+), 9 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 0/4] Enable shared SE support over I2C
2024-09-06 19:14 [PATCH v2 0/4] Enable shared SE support over I2C Mukesh Kumar Savaliya
@ 2024-09-11 17:02 ` Vinod Koul
2024-09-11 17:15 ` Dan Carpenter
0 siblings, 1 reply; 4+ messages in thread
From: Vinod Koul @ 2024-09-11 17:02 UTC (permalink / raw)
To: Mukesh Kumar Savaliya
Cc: konrad.dybcio, andersson, andi.shyti, linux-arm-msm, dmaengine,
linux-kernel, linux-i2c, conor+dt, agross, devicetree, linux,
dan.carpenter, Frank.Li, konradybcio
On 07-09-24, 00:44, Mukesh Kumar Savaliya wrote:
> This Series adds support to share QUP (Qualcomm Unified peripheral)
> based I2C SE (Serial Engine) controller between two subsystems.
> Each subsystem should have its own dedicated GPII (General Purpose -
> Interface Instance) acting as pipe between SE and GSI (Generic SW -
> Interface) DMA HW engine.
>
> Subsystem must acquire Lock over the SE so that it gets uninterrupted
> control till it unlocks the SE. It also makes sure the commonly shared
> TLMM GPIOs are not touched which can impact other subsystem or cause
> any interruption. Generally, GPIOs are being unconfigured during
> suspend time.
>
> GSI DMA engine is capable to perform requested transfer operations
> from any of the I2C client in a seamless way and its transparent to
> the subsystems. Make sure to enable “qcom,shared-se” flag only while
> enabling this feature. I2C client should add in its respective parent
> node.
>
> Example :
> Two clients from different SS can share an I2C SE for same slave device
> OR their owned slave devices.
> Assume I2C Slave EEPROM device connected with I2C controller.
> Each client from ADSP SS and APPS Linux SS can perform i2c transactions.
> This gets serialized by lock TRE + DMA Transfers + Unlock TRE at HW level.
Where is the rest of the series, I see only this cover letter??
--
~Vinod
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 0/4] Enable shared SE support over I2C
2024-09-11 17:02 ` Vinod Koul
@ 2024-09-11 17:15 ` Dan Carpenter
0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2024-09-11 17:15 UTC (permalink / raw)
To: Vinod Koul
Cc: Mukesh Kumar Savaliya, konrad.dybcio, andersson, andi.shyti,
linux-arm-msm, dmaengine, linux-kernel, linux-i2c, conor+dt,
agross, devicetree, linux, Frank.Li, konradybcio
On Wed, Sep 11, 2024 at 10:32:30PM +0530, Vinod Koul wrote:
> On 07-09-24, 00:44, Mukesh Kumar Savaliya wrote:
> > This Series adds support to share QUP (Qualcomm Unified peripheral)
> > based I2C SE (Serial Engine) controller between two subsystems.
> > Each subsystem should have its own dedicated GPII (General Purpose -
> > Interface Instance) acting as pipe between SE and GSI (Generic SW -
> > Interface) DMA HW engine.
> >
> > Subsystem must acquire Lock over the SE so that it gets uninterrupted
> > control till it unlocks the SE. It also makes sure the commonly shared
> > TLMM GPIOs are not touched which can impact other subsystem or cause
> > any interruption. Generally, GPIOs are being unconfigured during
> > suspend time.
> >
> > GSI DMA engine is capable to perform requested transfer operations
> > from any of the I2C client in a seamless way and its transparent to
> > the subsystems. Make sure to enable “qcom,shared-se” flag only while
> > enabling this feature. I2C client should add in its respective parent
> > node.
> >
> > Example :
> > Two clients from different SS can share an I2C SE for same slave device
> > OR their owned slave devices.
> > Assume I2C Slave EEPROM device connected with I2C controller.
> > Each client from ADSP SS and APPS Linux SS can perform i2c transactions.
> > This gets serialized by lock TRE + DMA Transfers + Unlock TRE at HW level.
>
> Where is the rest of the series, I see only this cover letter??
>
Something went wrong sending the series. Here is the resend:
https://lore.kernel.org/all/20240906191438.4104329-1-quic_msavaliy@quicinc.com/
regards,
dan carpenter
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-09-11 17:15 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-06 19:14 [PATCH v2 0/4] Enable shared SE support over I2C Mukesh Kumar Savaliya
2024-09-11 17:02 ` Vinod Koul
2024-09-11 17:15 ` Dan Carpenter
-- strict thread matches above, loose matches on Subject: below --
2024-09-06 19:14 Mukesh Kumar Savaliya
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox