Re: [PATCH 08/18] soc: qcom: ipa: the generic software interface

2019-05-15 Thread Arnd Bergmann
On Sun, May 12, 2019 at 3:25 AM Alex Elder wrote: > +static int gsi_ring_alloc(struct gsi *gsi, struct gsi_ring *ring, u32 count) > +{ > + size_t size = roundup_pow_of_two(count * sizeof(struct gsi_tre)); > + dma_addr_t addr; > + > + /* Hardware requires a power-of-2 ring size

Re: [PATCH 08/18] soc: qcom: ipa: the generic software interface

2019-05-15 Thread Alex Elder
On 5/15/19 5:47 AM, Arnd Bergmann wrote: > On Sun, May 12, 2019 at 3:25 AM Alex Elder wrote: > > The per-event interrupt handling seems to be more complex than > necessary: I just noticed this message. I'll take another look at this whole interrupt control mechanism and will try to streamline

Re: [PATCH 08/18] soc: qcom: ipa: the generic software interface

2019-05-15 Thread Arnd Bergmann
On Wed, May 15, 2019 at 2:13 PM Alex Elder wrote: > On 5/15/19 2:21 AM, Arnd Bergmann wrote: > >> +/* Wait for all transaction activity on a channel to complete */ > >> +void gsi_channel_trans_quiesce(struct gsi *gsi, u32 channel_id) > >> +{ > >> + struct gsi_channel *channel =

Re: [PATCH 08/18] soc: qcom: ipa: the generic software interface

2019-05-15 Thread Alex Elder
On 5/15/19 2:21 AM, Arnd Bergmann wrote: > On Sun, May 12, 2019 at 3:25 AM Alex Elder wrote: > >> +/** gsi_gpi_channel_scratch - GPI protocol scratch register >> + * >> + * @max_outstanding_tre: >> + * Defines the maximum number of TREs allowed in a single transaction >> + * on a channel

Re: [PATCH 08/18] soc: qcom: ipa: the generic software interface

2019-05-15 Thread Arnd Bergmann
On Sun, May 12, 2019 at 3:25 AM Alex Elder wrote: The per-event interrupt handling seems to be more complex than necessary: > +/* Enable or disable an event interrupt */ > +static void > +_gsi_irq_control_event(struct gsi *gsi, u32 evt_ring_id, bool enable) > +{ > + u32 mask =

Re: [PATCH 08/18] soc: qcom: ipa: the generic software interface

2019-05-15 Thread Arnd Bergmann
On Sun, May 12, 2019 at 3:25 AM Alex Elder wrote: > +/** gsi_gpi_channel_scratch - GPI protocol scratch register > + * > + * @max_outstanding_tre: > + * Defines the maximum number of TREs allowed in a single transaction > + * on a channel (in Bytes). This determines the amount of

[PATCH 08/18] soc: qcom: ipa: the generic software interface

2019-05-11 Thread Alex Elder
This patch includes "gsi.c", which implements the generic software interface (GSI) for IPA. The generic software interface abstracts channels, which provide a means of transferring data either from the AP to the IPA, or from the IPA to the AP. A ring buffer of "transfer elements" (TREs) is used