Re: [PATCH RFC v5 1/5] dma: mpc512x: reorder mpc8308 specific instructions

2013-11-11 Thread Gerhard Sittig
[ dropping devicetree@vger from CC ]

On Fri, Nov 01, 2013 at 11:04 +0100, Anatolij Gustschin wrote:
 
 On Fri,  1 Nov 2013 11:19:30 +0400
 Alexander Popov a13xp0p0...@gmail.com wrote:
 
  Concentrate the specific code for MPC8308 in the 'if' branch
  and handle MPC512x in the 'else' branch.
  This modification only reorders instructions but doesn't change behaviour.
  
  Signed-off-by: Alexander Popov a13xp0p0...@gmail.com
  ---
   drivers/dma/mpc512x_dma.c | 42 +-
   1 file changed, 25 insertions(+), 17 deletions(-)
 
 Acked-by: Anatolij Gustschin ag...@denx.de

I feel that this patch has become stable and can be taken,
regardless of the pending review of the other parts in the series.


virtually yours
Gerhard Sittig
-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr. 5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: off...@denx.de
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [PATCH RFC v5 1/5] dma: mpc512x: reorder mpc8308 specific instructions

2013-11-01 Thread Anatolij Gustschin
On Fri,  1 Nov 2013 11:19:30 +0400
Alexander Popov a13xp0p0...@gmail.com wrote:

 Concentrate the specific code for MPC8308 in the 'if' branch
 and handle MPC512x in the 'else' branch.
 This modification only reorders instructions but doesn't change behaviour.
 
 Signed-off-by: Alexander Popov a13xp0p0...@gmail.com
 ---
  drivers/dma/mpc512x_dma.c | 42 +-
  1 file changed, 25 insertions(+), 17 deletions(-)

Acked-by: Anatolij Gustschin ag...@denx.de

 
 diff --git a/drivers/dma/mpc512x_dma.c b/drivers/dma/mpc512x_dma.c
 index 2fe4353..f41639f 100644
 --- a/drivers/dma/mpc512x_dma.c
 +++ b/drivers/dma/mpc512x_dma.c
 @@ -50,9 +50,17 @@
  #define MPC_DMA_DESCRIPTORS  64
  
  /* Macro definitions */
 -#define MPC_DMA_CHANNELS 64
  #define MPC_DMA_TCD_OFFSET   0x1000
  
 +/*
 + * Maximum channel counts for individual hardware variants
 + * and the maximum channel count over all supported controllers,
 + * used for data structure size
 + */
 +#define MPC8308_DMACHAN_MAX  16
 +#define MPC512x_DMACHAN_MAX  64
 +#define MPC_DMA_CHANNELS 64
 +
  /* Arbitration mode of group and channel */
  #define MPC_DMA_DMACR_EDCG   (1  31)
  #define MPC_DMA_DMACR_ERGA   (1  3)
 @@ -708,10 +716,10 @@ static int mpc_dma_probe(struct platform_device *op)
  
   dma = mdma-dma;
   dma-dev = dev;
 - if (!mdma-is_mpc8308)
 - dma-chancnt = MPC_DMA_CHANNELS;
 + if (mdma-is_mpc8308)
 + dma-chancnt = MPC8308_DMACHAN_MAX;
   else
 - dma-chancnt = 16; /* MPC8308 DMA has only 16 channels */
 + dma-chancnt = MPC512x_DMACHAN_MAX;
   dma-device_alloc_chan_resources = mpc_dma_alloc_chan_resources;
   dma-device_free_chan_resources = mpc_dma_free_chan_resources;
   dma-device_issue_pending = mpc_dma_issue_pending;
 @@ -745,7 +753,19 @@ static int mpc_dma_probe(struct platform_device *op)
* - Round-robin group arbitration,
* - Round-robin channel arbitration.
*/
 - if (!mdma-is_mpc8308) {
 + if (mdma-is_mpc8308) {
 + /* MPC8308 has 16 channels and lacks some registers */
 + out_be32(mdma-regs-dmacr, MPC_DMA_DMACR_ERCA);
 +
 + /* enable snooping */
 + out_be32(mdma-regs-dmagpor, MPC_DMA_DMAGPOR_SNOOP_ENABLE);
 + /* Disable error interrupts */
 + out_be32(mdma-regs-dmaeeil, 0);
 +
 + /* Clear interrupts status */
 + out_be32(mdma-regs-dmaintl, 0x);
 + out_be32(mdma-regs-dmaerrl, 0x);
 + } else {
   out_be32(mdma-regs-dmacr, MPC_DMA_DMACR_EDCG |
   MPC_DMA_DMACR_ERGA | 
 MPC_DMA_DMACR_ERCA);
  
 @@ -766,18 +786,6 @@ static int mpc_dma_probe(struct platform_device *op)
   /* Route interrupts to IPIC */
   out_be32(mdma-regs-dmaihsa, 0);
   out_be32(mdma-regs-dmailsa, 0);
 - } else {
 - /* MPC8308 has 16 channels and lacks some registers */
 - out_be32(mdma-regs-dmacr, MPC_DMA_DMACR_ERCA);
 -
 - /* enable snooping */
 - out_be32(mdma-regs-dmagpor, MPC_DMA_DMAGPOR_SNOOP_ENABLE);
 - /* Disable error interrupts */
 - out_be32(mdma-regs-dmaeeil, 0);
 -
 - /* Clear interrupts status */
 - out_be32(mdma-regs-dmaintl, 0x);
 - out_be32(mdma-regs-dmaerrl, 0x);
   }
  
   /* Register DMA engine */
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev