Message ID | 20230404115336.599430-1-danishanwar@ti.com (mailing list archive) |
---|---|
Headers | show |
Series | Introduce PRU platform consumer API | expand |
On 04/04/23 17:23, MD Danish Anwar wrote: > Hi All, > The Programmable Real-Time Unit and Industrial Communication Subsystem (PRU-ICSS > or simply PRUSS) on various TI SoCs consists of dual 32-bit RISC cores > (Programmable Real-Time Units, or PRUs) for program execution. > > There are 3 foundation components for TI PRUSS subsystem: the PRUSS platform > driver, the PRUSS INTC driver and the PRUSS remoteproc driver. All of them have > already been merged and can be found under: > 1) drivers/soc/ti/pruss.c > Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml > 2) drivers/irqchip/irq-pruss-intc.c > Documentation/devicetree/bindings/interrupt-controller/ti,pruss-intc.yaml > 3) drivers/remoteproc/pru_rproc.c > Documentation/devicetree/bindings/remoteproc/ti,pru-consumer.yaml > > The programmable nature of the PRUs provide flexibility to implement custom > peripheral interfaces, fast real-time responses, or specialized data handling. > Example of a PRU consumer drivers will be: > - Software UART over PRUSS > - PRU-ICSS Ethernet EMAC > > In order to make usage of common PRU resources and allow the consumer drivers > to configure the PRU hardware for specific usage the PRU API is introduced. > > This is the v7 of the old patch series [9]. > Hi Mathieu, Can you please review this series. I have addressed comments made by you in v5. I have also addressed Simon's comment in v6 and removed redundant macros from pruss.h header file. > Changes from v6 [9] to v7: > *) Addressed Simon's comment on patch 3 of this series and dropped unnecassary > macros from the patch. > > Changes from v5 [1] to v6: > *) Added Reviewed by tags of Roger and Tony to the patches. > *) Added Acked by tag of Mathieu to patch 2 of this series. > *) Added NULL check for @mux in pruss_cfg_get_gpmux() API. > *) Added comment to the pruss_get() function documentation mentioning it is > expected the caller will have done a pru_rproc_get() on @rproc. > *) Fixed compilation warning "warning: ‘pruss_cfg_update’ defined but not used" > in patch 3 by squashing patch 3 [7] and patch 5 [8] of previous revision > together. Squashed patch 5 instead of patch 4 with patch 3 because patch 5 uses > both read() and update() APIs where as patch 4 only uses update() API. > Previously pruss_cfg_read()/update() APIs were intoroduced in patch 3 > and used in patch 4 and 5. Now these APIs are introduced as well as used in > patch 3. >
On Thu, 6 Apr 2023 at 00:54, Md Danish Anwar <a0501179@ti.com> wrote: > > On 04/04/23 17:23, MD Danish Anwar wrote: > > Hi All, > > The Programmable Real-Time Unit and Industrial Communication Subsystem (PRU-ICSS > > or simply PRUSS) on various TI SoCs consists of dual 32-bit RISC cores > > (Programmable Real-Time Units, or PRUs) for program execution. > > > > There are 3 foundation components for TI PRUSS subsystem: the PRUSS platform > > driver, the PRUSS INTC driver and the PRUSS remoteproc driver. All of them have > > already been merged and can be found under: > > 1) drivers/soc/ti/pruss.c > > Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml > > 2) drivers/irqchip/irq-pruss-intc.c > > Documentation/devicetree/bindings/interrupt-controller/ti,pruss-intc.yaml > > 3) drivers/remoteproc/pru_rproc.c > > Documentation/devicetree/bindings/remoteproc/ti,pru-consumer.yaml > > > > The programmable nature of the PRUs provide flexibility to implement custom > > peripheral interfaces, fast real-time responses, or specialized data handling. > > Example of a PRU consumer drivers will be: > > - Software UART over PRUSS > > - PRU-ICSS Ethernet EMAC > > > > In order to make usage of common PRU resources and allow the consumer drivers > > to configure the PRU hardware for specific usage the PRU API is introduced. > > > > This is the v7 of the old patch series [9]. > > > > Hi Mathieu, Can you please review this series. I have addressed comments made > by you in v5. I have also addressed Simon's comment in v6 and removed redundant > macros from pruss.h header file. > You are pushing me to review your code 19 hours after sending the last revision? Are you serious? > > Changes from v6 [9] to v7: > > *) Addressed Simon's comment on patch 3 of this series and dropped unnecassary > > macros from the patch. > > > > Changes from v5 [1] to v6: > > *) Added Reviewed by tags of Roger and Tony to the patches. > > *) Added Acked by tag of Mathieu to patch 2 of this series. > > *) Added NULL check for @mux in pruss_cfg_get_gpmux() API. > > *) Added comment to the pruss_get() function documentation mentioning it is > > expected the caller will have done a pru_rproc_get() on @rproc. > > *) Fixed compilation warning "warning: ‘pruss_cfg_update’ defined but not used" > > in patch 3 by squashing patch 3 [7] and patch 5 [8] of previous revision > > together. Squashed patch 5 instead of patch 4 with patch 3 because patch 5 uses > > both read() and update() APIs where as patch 4 only uses update() API. > > Previously pruss_cfg_read()/update() APIs were intoroduced in patch 3 > > and used in patch 4 and 5. Now these APIs are introduced as well as used in > > patch 3. > > > > > -- > Thanks and Regards, > Danish.
On 06/04/23 18:45, Mathieu Poirier wrote: > On Thu, 6 Apr 2023 at 00:54, Md Danish Anwar <a0501179@ti.com> wrote: >> >> On 04/04/23 17:23, MD Danish Anwar wrote: >>> Hi All, >>> The Programmable Real-Time Unit and Industrial Communication Subsystem (PRU-ICSS >>> or simply PRUSS) on various TI SoCs consists of dual 32-bit RISC cores >>> (Programmable Real-Time Units, or PRUs) for program execution. >>> >>> There are 3 foundation components for TI PRUSS subsystem: the PRUSS platform >>> driver, the PRUSS INTC driver and the PRUSS remoteproc driver. All of them have >>> already been merged and can be found under: >>> 1) drivers/soc/ti/pruss.c >>> Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml >>> 2) drivers/irqchip/irq-pruss-intc.c >>> Documentation/devicetree/bindings/interrupt-controller/ti,pruss-intc.yaml >>> 3) drivers/remoteproc/pru_rproc.c >>> Documentation/devicetree/bindings/remoteproc/ti,pru-consumer.yaml >>> >>> The programmable nature of the PRUs provide flexibility to implement custom >>> peripheral interfaces, fast real-time responses, or specialized data handling. >>> Example of a PRU consumer drivers will be: >>> - Software UART over PRUSS >>> - PRU-ICSS Ethernet EMAC >>> >>> In order to make usage of common PRU resources and allow the consumer drivers >>> to configure the PRU hardware for specific usage the PRU API is introduced. >>> >>> This is the v7 of the old patch series [9]. >>> >> >> Hi Mathieu, Can you please review this series. I have addressed comments made >> by you in v5. I have also addressed Simon's comment in v6 and removed redundant >> macros from pruss.h header file. >> > > You are pushing me to review your code 19 hours after sending the last > revision? Are you serious? > I am really sorry for this. Thursday was last working day last week (as Friday was holiday in India), so I thought I should ping you so that this series would be reviewed by Monday. From now on I would try to keep a gap a week (or whatever is appropriate) before pinging you for review. I am really sorry for this again. >>> Changes from v6 [9] to v7: >>> *) Addressed Simon's comment on patch 3 of this series and dropped unnecassary >>> macros from the patch. >>> >>> Changes from v5 [1] to v6: >>> *) Added Reviewed by tags of Roger and Tony to the patches. >>> *) Added Acked by tag of Mathieu to patch 2 of this series. >>> *) Added NULL check for @mux in pruss_cfg_get_gpmux() API. >>> *) Added comment to the pruss_get() function documentation mentioning it is >>> expected the caller will have done a pru_rproc_get() on @rproc. >>> *) Fixed compilation warning "warning: ‘pruss_cfg_update’ defined but not used" >>> in patch 3 by squashing patch 3 [7] and patch 5 [8] of previous revision >>> together. Squashed patch 5 instead of patch 4 with patch 3 because patch 5 uses >>> both read() and update() APIs where as patch 4 only uses update() API. >>> Previously pruss_cfg_read()/update() APIs were intoroduced in patch 3 >>> and used in patch 4 and 5. Now these APIs are introduced as well as used in >>> patch 3. >>> >> >> >> -- >> Thanks and Regards, >> Danish.
On Tue, Apr 04, 2023 at 05:23:32PM +0530, MD Danish Anwar wrote: > Hi All, > The Programmable Real-Time Unit and Industrial Communication Subsystem (PRU-ICSS > or simply PRUSS) on various TI SoCs consists of dual 32-bit RISC cores > (Programmable Real-Time Units, or PRUs) for program execution. ... I've reviewed this series from a code style, static analysis, etc.. pov. I'm happy that issues that I reported in earlier revisions have been addressed. And have no outstanding issues with the patchset. So from that position, FWIIW, Reviewed-by: Simon Horman <simon.horman@corigine.com>