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
2ef2e60d
Commit
2ef2e60d
authored
Oct 25, 2013
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'spi/topic/atmel' into spi-next
parents
c55b869a
543c954d
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
71 additions
and
73 deletions
+71
-73
drivers/spi/spi-atmel.c
drivers/spi/spi-atmel.c
+25
-25
drivers/spi/spi-bfin-sport.c
drivers/spi/spi-bfin-sport.c
+1
-1
drivers/spi/spi-bfin5xx.c
drivers/spi/spi-bfin5xx.c
+11
-10
drivers/spi/spi-dw.c
drivers/spi/spi-dw.c
+2
-2
drivers/spi/spi-ep93xx.c
drivers/spi/spi-ep93xx.c
+2
-2
drivers/spi/spi-fsl-cpm.c
drivers/spi/spi-fsl-cpm.c
+1
-1
drivers/spi/spi-fsl-espi.c
drivers/spi/spi-fsl-espi.c
+2
-2
drivers/spi/spi-mpc52xx-psc.c
drivers/spi/spi-mpc52xx-psc.c
+2
-2
drivers/spi/spi-omap2-mcspi.c
drivers/spi/spi-omap2-mcspi.c
+2
-2
drivers/spi/spi-pxa2xx.c
drivers/spi/spi-pxa2xx.c
+16
-20
drivers/spi/spi-topcliff-pch.c
drivers/spi/spi-topcliff-pch.c
+7
-6
No files found.
drivers/spi/spi-atmel.c
View file @
2ef2e60d
...
...
@@ -170,18 +170,18 @@
/* Bit manipulation macros */
#define SPI_BIT(name) \
(1 << SPI_##name##_OFFSET)
#define SPI_BF(name,value) \
#define SPI_BF(name,
value) \
(((value) & ((1 << SPI_##name##_SIZE) - 1)) << SPI_##name##_OFFSET)
#define SPI_BFEXT(name,value) \
#define SPI_BFEXT(name,
value) \
(((value) >> SPI_##name##_OFFSET) & ((1 << SPI_##name##_SIZE) - 1))
#define SPI_BFINS(name,
value,
old) \
(
((old) & ~(((1 << SPI_##name##_SIZE) - 1) << SPI_##name##_OFFSET)) \
| SPI_BF(name,value))
#define SPI_BFINS(name,
value,
old) \
(((old) & ~(((1 << SPI_##name##_SIZE) - 1) << SPI_##name##_OFFSET)) \
| SPI_BF(name,
value))
/* Register access macros */
#define spi_readl(port,reg) \
#define spi_readl(port,
reg) \
__raw_readl((port)->regs + SPI_##reg)
#define spi_writel(port,
reg,
value) \
#define spi_writel(port,
reg,
value) \
__raw_writel((value), (port)->regs + SPI_##reg)
/* use PIO for small transfers, avoiding DMA setup/teardown overhead and
...
...
@@ -1401,8 +1401,8 @@ static int atmel_spi_transfer(struct spi_device *spi, struct spi_message *msg)
asd
=
spi
->
controller_state
;
bits
=
(
asd
->
csr
>>
4
)
&
0xf
;
if
(
bits
!=
xfer
->
bits_per_word
-
8
)
{
dev_dbg
(
&
spi
->
dev
,
"you can't yet change "
"
bits_per_word in transfers
\n
"
);
dev_dbg
(
&
spi
->
dev
,
"you can't yet change
bits_per_word in transfers
\n
"
);
return
-
ENOPROTOOPT
;
}
}
...
...
@@ -1516,7 +1516,7 @@ static int atmel_spi_probe(struct platform_device *pdev)
/* setup spi core then atmel-specific driver state */
ret
=
-
ENOMEM
;
master
=
spi_alloc_master
(
&
pdev
->
dev
,
sizeof
*
as
);
master
=
spi_alloc_master
(
&
pdev
->
dev
,
sizeof
(
*
as
)
);
if
(
!
master
)
goto
out_free
;
...
...
@@ -1546,9 +1546,11 @@ static int atmel_spi_probe(struct platform_device *pdev)
INIT_LIST_HEAD
(
&
as
->
queue
);
as
->
pdev
=
pdev
;
as
->
regs
=
ioremap
(
regs
->
start
,
resource_size
(
regs
));
if
(
!
as
->
regs
)
as
->
regs
=
devm_ioremap_resource
(
&
pdev
->
dev
,
regs
);
if
(
IS_ERR
(
as
->
regs
))
{
ret
=
PTR_ERR
(
as
->
regs
);
goto
out_free_buffer
;
}
as
->
phybase
=
regs
->
start
;
as
->
irq
=
irq
;
as
->
clk
=
clk
;
...
...
@@ -1617,7 +1619,6 @@ static int atmel_spi_probe(struct platform_device *pdev)
out_free_irq:
free_irq
(
irq
,
master
);
out_unmap_regs:
iounmap
(
as
->
regs
);
out_free_buffer:
if
(
!
as
->
use_pdc
)
tasklet_kill
(
&
as
->
tasklet
);
...
...
@@ -1669,36 +1670,36 @@ static int atmel_spi_remove(struct platform_device *pdev)
clk_disable_unprepare
(
as
->
clk
);
clk_put
(
as
->
clk
);
free_irq
(
as
->
irq
,
master
);
iounmap
(
as
->
regs
);
spi_unregister_master
(
master
);
return
0
;
}
#ifdef CONFIG_PM
static
int
atmel_spi_suspend
(
struct
platform_device
*
pdev
,
pm_message_t
mesg
)
#ifdef CONFIG_PM_SLEEP
static
int
atmel_spi_suspend
(
struct
device
*
dev
)
{
struct
spi_master
*
master
=
platform_get_drvdata
(
p
dev
);
struct
spi_master
*
master
=
dev_get_drvdata
(
dev
);
struct
atmel_spi
*
as
=
spi_master_get_devdata
(
master
);
clk_disable_unprepare
(
as
->
clk
);
return
0
;
}
static
int
atmel_spi_resume
(
struct
platform_device
*
p
dev
)
static
int
atmel_spi_resume
(
struct
device
*
dev
)
{
struct
spi_master
*
master
=
platform_get_drvdata
(
p
dev
);
struct
spi_master
*
master
=
dev_get_drvdata
(
dev
);
struct
atmel_spi
*
as
=
spi_master_get_devdata
(
master
);
return
clk_prepare_enable
(
as
->
clk
);
clk_prepare_enable
(
as
->
clk
);
return
0
;
}
static
SIMPLE_DEV_PM_OPS
(
atmel_spi_pm_ops
,
atmel_spi_suspend
,
atmel_spi_resume
);
#define ATMEL_SPI_PM_OPS (&atmel_spi_pm_ops)
#else
#define atmel_spi_suspend NULL
#define atmel_spi_resume NULL
#define ATMEL_SPI_PM_OPS NULL
#endif
#if defined(CONFIG_OF)
...
...
@@ -1714,10 +1715,9 @@ static struct platform_driver atmel_spi_driver = {
.
driver
=
{
.
name
=
"atmel_spi"
,
.
owner
=
THIS_MODULE
,
.
pm
=
ATMEL_SPI_PM_OPS
,
.
of_match_table
=
of_match_ptr
(
atmel_spi_dt_ids
),
},
.
suspend
=
atmel_spi_suspend
,
.
resume
=
atmel_spi_resume
,
.
probe
=
atmel_spi_probe
,
.
remove
=
atmel_spi_remove
,
};
...
...
drivers/spi/spi-bfin-sport.c
View file @
2ef2e60d
...
...
@@ -592,7 +592,7 @@ bfin_sport_spi_setup(struct spi_device *spi)
*/
if
(
chip_info
->
ctl_reg
||
chip_info
->
enable_dma
)
{
ret
=
-
EINVAL
;
dev_err
(
&
spi
->
dev
,
"don't set ctl_reg/enable_dma fields"
);
dev_err
(
&
spi
->
dev
,
"don't set ctl_reg/enable_dma fields
\n
"
);
goto
error
;
}
chip
->
cs_chg_udelay
=
chip_info
->
cs_chg_udelay
;
...
...
drivers/spi/spi-bfin5xx.c
View file @
2ef2e60d
...
...
@@ -524,7 +524,7 @@ static irqreturn_t bfin_spi_dma_irq_handler(int irq, void *dev_id)
timeout
=
jiffies
+
HZ
;
while
(
!
(
bfin_read
(
&
drv_data
->
regs
->
stat
)
&
BIT_STAT_SPIF
))
if
(
!
time_before
(
jiffies
,
timeout
))
{
dev_warn
(
&
drv_data
->
pdev
->
dev
,
"timeout waiting for SPIF"
);
dev_warn
(
&
drv_data
->
pdev
->
dev
,
"timeout waiting for SPIF
\n
"
);
break
;
}
else
cpu_relax
();
...
...
@@ -913,8 +913,9 @@ static void bfin_spi_pump_messages(struct work_struct *work)
drv_data
->
cur_transfer
=
list_entry
(
drv_data
->
cur_msg
->
transfers
.
next
,
struct
spi_transfer
,
transfer_list
);
dev_dbg
(
&
drv_data
->
pdev
->
dev
,
"got a message to pump, "
"state is set to: baud %d, flag 0x%x, ctl 0x%x
\n
"
,
dev_dbg
(
&
drv_data
->
pdev
->
dev
,
"got a message to pump, state is set to: baud "
"%d, flag 0x%x, ctl 0x%x
\n
"
,
drv_data
->
cur_chip
->
baud
,
drv_data
->
cur_chip
->
flag
,
drv_data
->
cur_chip
->
ctl_reg
);
...
...
@@ -1013,8 +1014,8 @@ static int bfin_spi_setup(struct spi_device *spi)
* but let's assume (for now) they do.
*/
if
(
chip_info
->
ctl_reg
&
~
bfin_ctl_reg
)
{
dev_err
(
&
spi
->
dev
,
"do not set bits in ctl_reg "
"that the SPI framework manages
\n
"
);
dev_err
(
&
spi
->
dev
,
"
do not set bits in ctl_reg
that the SPI framework manages
\n
"
);
goto
error
;
}
chip
->
enable_dma
=
chip_info
->
enable_dma
!=
0
...
...
@@ -1050,17 +1051,17 @@ static int bfin_spi_setup(struct spi_device *spi)
chip
->
chip_select_num
=
spi
->
chip_select
;
if
(
chip
->
chip_select_num
<
MAX_CTRL_CS
)
{
if
(
!
(
spi
->
mode
&
SPI_CPHA
))
dev_warn
(
&
spi
->
dev
,
"Warning: SPI CPHA not set:"
" Slave Select not under software control!
\n
"
"
See Documentation/blackfin/bfin-spi-notes.txt
"
);
dev_warn
(
&
spi
->
dev
,
"
Warning: SPI CPHA not set:
Slave Select not under software control!
\n
"
"
See Documentation/blackfin/bfin-spi-notes.txt
\n
"
);
chip
->
flag
=
(
1
<<
spi
->
chip_select
)
<<
8
;
}
else
chip
->
cs_gpio
=
chip
->
chip_select_num
-
MAX_CTRL_CS
;
if
(
chip
->
enable_dma
&&
chip
->
pio_interrupt
)
{
dev_err
(
&
spi
->
dev
,
"enable_dma is set, "
"
do not set pio_interrupt
\n
"
);
dev_err
(
&
spi
->
dev
,
"enable_dma is set,
do not set pio_interrupt
\n
"
);
goto
error
;
}
/*
...
...
drivers/spi/spi-dw.c
View file @
2ef2e60d
...
...
@@ -870,8 +870,8 @@ void dw_spi_remove_host(struct dw_spi *dws)
/* Remove the queue */
status
=
destroy_queue
(
dws
);
if
(
status
!=
0
)
dev_err
(
&
dws
->
master
->
dev
,
"dw_spi_remove: workqueue will not "
"complete, message memory not freed
\n
"
);
dev_err
(
&
dws
->
master
->
dev
,
"
dw_spi_remove: workqueue will not
complete, message memory not freed
\n
"
);
if
(
dws
->
dma_ops
&&
dws
->
dma_ops
->
dma_exit
)
dws
->
dma_ops
->
dma_exit
(
dws
);
...
...
drivers/spi/spi-ep93xx.c
View file @
2ef2e60d
...
...
@@ -330,7 +330,7 @@ static int ep93xx_spi_chip_setup(const struct ep93xx_spi *espi,
dev_dbg
(
&
espi
->
pdev
->
dev
,
"setup: mode %d, cpsr %d, scr %d, dss %d
\n
"
,
chip
->
spi
->
mode
,
div_cpsr
,
div_scr
,
dss
);
dev_dbg
(
&
espi
->
pdev
->
dev
,
"setup: cr0 %#x"
,
cr0
);
dev_dbg
(
&
espi
->
pdev
->
dev
,
"setup: cr0 %#x
\n
"
,
cr0
);
ep93xx_spi_write_u8
(
espi
,
SSPCPSR
,
div_cpsr
);
ep93xx_spi_write_u16
(
espi
,
SSPCR0
,
cr0
);
...
...
@@ -509,7 +509,7 @@ ep93xx_spi_dma_prepare(struct ep93xx_spi *espi, enum dma_transfer_direction dir)
}
if
(
WARN_ON
(
len
))
{
dev_warn
(
&
espi
->
pdev
->
dev
,
"len = %zu expected 0!"
,
len
);
dev_warn
(
&
espi
->
pdev
->
dev
,
"len = %zu expected 0!
\n
"
,
len
);
return
ERR_PTR
(
-
EINVAL
);
}
...
...
drivers/spi/spi-fsl-cpm.c
View file @
2ef2e60d
...
...
@@ -299,7 +299,7 @@ int fsl_spi_cpm_init(struct mpc8xxx_spi *mspi)
switch
(
mspi
->
subblock
)
{
default:
dev_warn
(
dev
,
"cell-index unspecified, assuming SPI1"
);
dev_warn
(
dev
,
"cell-index unspecified, assuming SPI1
\n
"
);
/* fall through */
case
0
:
mspi
->
subblock
=
QE_CR_SUBBLOCK_SPI1
;
...
...
drivers/spi/spi-fsl-espi.c
View file @
2ef2e60d
...
...
@@ -289,8 +289,8 @@ static void fsl_espi_do_trans(struct spi_message *m,
if
((
first
->
bits_per_word
!=
t
->
bits_per_word
)
||
(
first
->
speed_hz
!=
t
->
speed_hz
))
{
espi_trans
->
status
=
-
EINVAL
;
dev_err
(
mspi
->
dev
,
"bits_per_word/speed_hz should be"
"
same for the same SPI transfer
\n
"
);
dev_err
(
mspi
->
dev
,
"bits_per_word/speed_hz should be
same for the same SPI transfer
\n
"
);
return
;
}
...
...
drivers/spi/spi-mpc52xx-psc.c
View file @
2ef2e60d
...
...
@@ -383,8 +383,8 @@ static int mpc52xx_psc_spi_do_probe(struct device *dev, u32 regaddr,
mps
->
irq
=
irq
;
if
(
pdata
==
NULL
)
{
dev_warn
(
dev
,
"probe called without platform data, no "
"
cs_control function will be called
\n
"
);
dev_warn
(
dev
,
"probe called without platform data, no
cs_control function will be called
\n
"
);
mps
->
cs_control
=
NULL
;
mps
->
sysclk
=
0
;
master
->
bus_num
=
bus_num
;
...
...
drivers/spi/spi-omap2-mcspi.c
View file @
2ef2e60d
...
...
@@ -504,7 +504,7 @@ omap2_mcspi_rx_dma(struct spi_device *spi, struct spi_transfer *xfer,
((
u32
*
)
xfer
->
rx_buf
)[
elements
++
]
=
w
;
}
else
{
int
bytes_per_word
=
mcspi_bytes_per_word
(
word_len
);
dev_err
(
&
spi
->
dev
,
"DMA RX penultimate word empty"
);
dev_err
(
&
spi
->
dev
,
"DMA RX penultimate word empty
\n
"
);
count
-=
(
bytes_per_word
<<
1
);
omap2_mcspi_set_enable
(
spi
,
1
);
return
count
;
...
...
@@ -522,7 +522,7 @@ omap2_mcspi_rx_dma(struct spi_device *spi, struct spi_transfer *xfer,
else
/* word_len <= 32 */
((
u32
*
)
xfer
->
rx_buf
)[
elements
]
=
w
;
}
else
{
dev_err
(
&
spi
->
dev
,
"DMA RX last word empty"
);
dev_err
(
&
spi
->
dev
,
"DMA RX last word empty
\n
"
);
count
-=
mcspi_bytes_per_word
(
word_len
);
}
omap2_mcspi_set_enable
(
spi
,
1
);
...
...
drivers/spi/spi-pxa2xx.c
View file @
2ef2e60d
...
...
@@ -573,8 +573,8 @@ static irqreturn_t ssp_int(int irq, void *dev_id)
write_SSTO
(
0
,
reg
);
write_SSSR_CS
(
drv_data
,
drv_data
->
clear_sr
);
dev_err
(
&
drv_data
->
pdev
->
dev
,
"bad message state "
"in interrupt handler
\n
"
);
dev_err
(
&
drv_data
->
pdev
->
dev
,
"
bad message state
in interrupt handler
\n
"
);
/* Never fail */
return
IRQ_HANDLED
;
...
...
@@ -651,8 +651,8 @@ static void pump_transfers(unsigned long data)
if
(
message
->
is_dma_mapped
||
transfer
->
rx_dma
||
transfer
->
tx_dma
)
{
dev_err
(
&
drv_data
->
pdev
->
dev
,
"pump_transfers: mapped transfer length "
"
of
%u is greater than %d
\n
"
,
"pump_transfers: mapped transfer length
of
"
"%u is greater than %d
\n
"
,
transfer
->
len
,
MAX_DMA_LEN
);
message
->
status
=
-
EINVAL
;
giveback
(
drv_data
);
...
...
@@ -660,11 +660,10 @@ static void pump_transfers(unsigned long data)
}
/* warn ... we force this to PIO mode */
if
(
printk_ratelimit
())
dev_warn
(
&
message
->
spi
->
dev
,
"pump_transfers: "
"DMA disabled for transfer length %ld "
"greater than %d
\n
"
,
(
long
)
drv_data
->
len
,
MAX_DMA_LEN
);
dev_warn_ratelimited
(
&
message
->
spi
->
dev
,
"pump_transfers: DMA disabled for transfer length %ld "
"greater than %d
\n
"
,
(
long
)
drv_data
->
len
,
MAX_DMA_LEN
);
}
/* Setup the transfer state based on the type of transfer */
...
...
@@ -726,11 +725,8 @@ static void pump_transfers(unsigned long data)
message
->
spi
,
bits
,
&
dma_burst
,
&
dma_thresh
))
if
(
printk_ratelimit
())
dev_warn
(
&
message
->
spi
->
dev
,
"pump_transfers: "
"DMA burst size reduced to "
"match bits_per_word
\n
"
);
dev_warn_ratelimited
(
&
message
->
spi
->
dev
,
"pump_transfers: DMA burst size reduced to match bits_per_word
\n
"
);
}
cr0
=
clk_div
...
...
@@ -854,8 +850,8 @@ static int setup_cs(struct spi_device *spi, struct chip_data *chip,
if
(
gpio_is_valid
(
chip_info
->
gpio_cs
))
{
err
=
gpio_request
(
chip_info
->
gpio_cs
,
"SPI_CS"
);
if
(
err
)
{
dev_err
(
&
spi
->
dev
,
"failed to request chip select
"
"GPIO%d
\n
"
,
chip_info
->
gpio_cs
);
dev_err
(
&
spi
->
dev
,
"failed to request chip select
GPIO%d
\n
"
,
chip_info
->
gpio_cs
);
return
err
;
}
...
...
@@ -899,8 +895,8 @@ static int setup(struct spi_device *spi)
if
(
drv_data
->
ssp_type
==
CE4100_SSP
)
{
if
(
spi
->
chip_select
>
4
)
{
dev_err
(
&
spi
->
dev
,
"failed setup: "
"
cs number must not be > 4.
\n
"
);
dev_err
(
&
spi
->
dev
,
"failed setup:
cs number must not be > 4.
\n
"
);
kfree
(
chip
);
return
-
EINVAL
;
}
...
...
@@ -956,8 +952,8 @@ static int setup(struct spi_device *spi)
spi
->
bits_per_word
,
&
chip
->
dma_burst_size
,
&
chip
->
dma_threshold
))
{
dev_warn
(
&
spi
->
dev
,
"in setup: DMA burst size reduced "
"
to match bits_per_word
\n
"
);
dev_warn
(
&
spi
->
dev
,
"in setup: DMA burst size reduced
to match bits_per_word
\n
"
);
}
}
...
...
drivers/spi/spi-topcliff-pch.c
View file @
2ef2e60d
...
...
@@ -506,8 +506,8 @@ static int pch_spi_transfer(struct spi_device *pspi, struct spi_message *pmsg)
goto
err_out
;
}
dev_dbg
(
&
pspi
->
dev
,
"%s Transfer List not empty. "
"Transfer Speed is set.
\n
"
,
__func__
);
dev_dbg
(
&
pspi
->
dev
,
"
%s Transfer List not empty.
Transfer Speed is set.
\n
"
,
__func__
);
spin_lock_irqsave
(
&
data
->
lock
,
flags
);
/* validate Tx/Rx buffers and Transfer length */
...
...
@@ -526,8 +526,9 @@ static int pch_spi_transfer(struct spi_device *pspi, struct spi_message *pmsg)
goto
err_return_spinlock
;
}
dev_dbg
(
&
pspi
->
dev
,
"%s Tx/Rx buffer valid. Transfer length"
" valid
\n
"
,
__func__
);
dev_dbg
(
&
pspi
->
dev
,
"%s Tx/Rx buffer valid. Transfer length valid
\n
"
,
__func__
);
/* if baud rate has been specified validate the same */
if
(
transfer
->
speed_hz
>
PCH_MAX_BAUDRATE
)
...
...
@@ -1181,8 +1182,8 @@ static void pch_spi_process_messages(struct work_struct *pwork)
spin_lock
(
&
data
->
lock
);
/* check if suspend has been initiated;if yes flush queue */
if
(
data
->
board_dat
->
suspend_sts
||
(
data
->
status
==
STATUS_EXITING
))
{
dev_dbg
(
&
data
->
master
->
dev
,
"%s suspend/remove initiated,"
"flushing queue
\n
"
,
__func__
);
dev_dbg
(
&
data
->
master
->
dev
,
"
%s suspend/remove initiated,
flushing queue
\n
"
,
__func__
);
list_for_each_entry_safe
(
pmsg
,
tmp
,
data
->
queue
.
next
,
queue
)
{
pmsg
->
status
=
-
EIO
;
...
...
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