Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
be13ec66
Commit
be13ec66
authored
May 04, 2017
by
Vinod Koul
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'topic/pl330' into for-linus
parents
b7b0201a
e8bb4673
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
8 additions
and
70 deletions
+8
-70
arch/arm/plat-samsung/devs.c
arch/arm/plat-samsung/devs.c
+0
-1
drivers/dma/pl330.c
drivers/dma/pl330.c
+8
-34
include/linux/amba/pl330.h
include/linux/amba/pl330.h
+0
-35
No files found.
arch/arm/plat-samsung/devs.c
View file @
be13ec66
...
...
@@ -10,7 +10,6 @@
* published by the Free Software Foundation.
*/
#include <linux/amba/pl330.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/interrupt.h>
...
...
drivers/dma/pl330.c
View file @
be13ec66
...
...
@@ -22,7 +22,6 @@
#include <linux/dma-mapping.h>
#include <linux/dmaengine.h>
#include <linux/amba/bus.h>
#include <linux/amba/pl330.h>
#include <linux/scatterlist.h>
#include <linux/of.h>
#include <linux/of_dma.h>
...
...
@@ -2077,18 +2076,6 @@ static void pl330_tasklet(unsigned long data)
}
}
bool
pl330_filter
(
struct
dma_chan
*
chan
,
void
*
param
)
{
u8
*
peri_id
;
if
(
chan
->
device
->
dev
->
driver
!=
&
pl330_driver
.
drv
)
return
false
;
peri_id
=
chan
->
private
;
return
*
peri_id
==
(
unsigned
long
)
param
;
}
EXPORT_SYMBOL
(
pl330_filter
);
static
struct
dma_chan
*
of_dma_pl330_xlate
(
struct
of_phandle_args
*
dma_spec
,
struct
of_dma
*
ofdma
)
{
...
...
@@ -2833,7 +2820,6 @@ static SIMPLE_DEV_PM_OPS(pl330_pm, pl330_suspend, pl330_resume);
static
int
pl330_probe
(
struct
amba_device
*
adev
,
const
struct
amba_id
*
id
)
{
struct
dma_pl330_platdata
*
pdat
;
struct
pl330_config
*
pcfg
;
struct
pl330_dmac
*
pl330
;
struct
dma_pl330_chan
*
pch
,
*
_p
;
...
...
@@ -2843,8 +2829,6 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
int
num_chan
;
struct
device_node
*
np
=
adev
->
dev
.
of_node
;
pdat
=
dev_get_platdata
(
&
adev
->
dev
);
ret
=
dma_set_mask_and_coherent
(
&
adev
->
dev
,
DMA_BIT_MASK
(
32
));
if
(
ret
)
return
ret
;
...
...
@@ -2857,7 +2841,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
pd
=
&
pl330
->
ddma
;
pd
->
dev
=
&
adev
->
dev
;
pl330
->
mcbufsz
=
pdat
?
pdat
->
mcbuf_sz
:
0
;
pl330
->
mcbufsz
=
0
;
/* get quirk */
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
of_quirks
);
i
++
)
...
...
@@ -2901,10 +2885,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
INIT_LIST_HEAD
(
&
pd
->
channels
);
/* Initialize channel parameters */
if
(
pdat
)
num_chan
=
max_t
(
int
,
pdat
->
nr_valid_peri
,
pcfg
->
num_chan
);
else
num_chan
=
max_t
(
int
,
pcfg
->
num_peri
,
pcfg
->
num_chan
);
num_chan
=
max_t
(
int
,
pcfg
->
num_peri
,
pcfg
->
num_chan
);
pl330
->
num_peripherals
=
num_chan
;
...
...
@@ -2916,11 +2897,8 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
for
(
i
=
0
;
i
<
num_chan
;
i
++
)
{
pch
=
&
pl330
->
peripherals
[
i
];
if
(
!
adev
->
dev
.
of_node
)
pch
->
chan
.
private
=
pdat
?
&
pdat
->
peri_id
[
i
]
:
NULL
;
else
pch
->
chan
.
private
=
adev
->
dev
.
of_node
;
pch
->
chan
.
private
=
adev
->
dev
.
of_node
;
INIT_LIST_HEAD
(
&
pch
->
submitted_list
);
INIT_LIST_HEAD
(
&
pch
->
work_list
);
INIT_LIST_HEAD
(
&
pch
->
completed_list
);
...
...
@@ -2933,15 +2911,11 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
list_add_tail
(
&
pch
->
chan
.
device_node
,
&
pd
->
channels
);
}
if
(
pdat
)
{
pd
->
cap_mask
=
pdat
->
cap_mask
;
}
else
{
dma_cap_set
(
DMA_MEMCPY
,
pd
->
cap_mask
);
if
(
pcfg
->
num_peri
)
{
dma_cap_set
(
DMA_SLAVE
,
pd
->
cap_mask
);
dma_cap_set
(
DMA_CYCLIC
,
pd
->
cap_mask
);
dma_cap_set
(
DMA_PRIVATE
,
pd
->
cap_mask
);
}
dma_cap_set
(
DMA_MEMCPY
,
pd
->
cap_mask
);
if
(
pcfg
->
num_peri
)
{
dma_cap_set
(
DMA_SLAVE
,
pd
->
cap_mask
);
dma_cap_set
(
DMA_CYCLIC
,
pd
->
cap_mask
);
dma_cap_set
(
DMA_PRIVATE
,
pd
->
cap_mask
);
}
pd
->
device_alloc_chan_resources
=
pl330_alloc_chan_resources
;
...
...
include/linux/amba/pl330.h
deleted
100644 → 0
View file @
b7b0201a
/* linux/include/linux/amba/pl330.h
*
* Copyright (C) 2010 Samsung Electronics Co. Ltd.
* Jaswinder Singh <jassi.brar@samsung.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#ifndef __AMBA_PL330_H_
#define __AMBA_PL330_H_
#include <linux/dmaengine.h>
struct
dma_pl330_platdata
{
/*
* Number of valid peripherals connected to DMAC.
* This may be different from the value read from
* CR0, as the PL330 implementation might have 'holes'
* in the peri list or the peri could also be reached
* from another DMAC which the platform prefers.
*/
u8
nr_valid_peri
;
/* Array of valid peripherals */
u8
*
peri_id
;
/* Operational capabilities */
dma_cap_mask_t
cap_mask
;
/* Bytes to allocate for MC buffer */
unsigned
mcbuf_sz
;
};
extern
bool
pl330_filter
(
struct
dma_chan
*
chan
,
void
*
param
);
#endif
/* __AMBA_PL330_H_ */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment