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
52d85ebb
Commit
52d85ebb
authored
11 years ago
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'spi/topic/bfin' into spi-next
parents
2ef2e60d
db9371b8
Changes
24
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
88 additions
and
88 deletions
+88
-88
Documentation/driver-model/devres.txt
Documentation/driver-model/devres.txt
+3
-0
drivers/spi/spi-bcm2835.c
drivers/spi/spi-bcm2835.c
+1
-3
drivers/spi/spi-bcm63xx.c
drivers/spi/spi-bcm63xx.c
+1
-5
drivers/spi/spi-bfin-sport.c
drivers/spi/spi-bfin-sport.c
+14
-13
drivers/spi/spi-bfin-v3.c
drivers/spi/spi-bfin-v3.c
+1
-2
drivers/spi/spi-bfin5xx.c
drivers/spi/spi-bfin5xx.c
+15
-12
drivers/spi/spi-clps711x.c
drivers/spi/spi-clps711x.c
+1
-3
drivers/spi/spi-ep93xx.c
drivers/spi/spi-ep93xx.c
+1
-2
drivers/spi/spi-mpc512x-psc.c
drivers/spi/spi-mpc512x-psc.c
+1
-3
drivers/spi/spi-mxs.c
drivers/spi/spi-mxs.c
+1
-3
drivers/spi/spi-octeon.c
drivers/spi/spi-octeon.c
+1
-3
drivers/spi/spi-omap-100k.c
drivers/spi/spi-omap-100k.c
+1
-3
drivers/spi/spi-omap2-mcspi.c
drivers/spi/spi-omap2-mcspi.c
+1
-2
drivers/spi/spi-orion.c
drivers/spi/spi-orion.c
+1
-3
drivers/spi/spi-pl022.c
drivers/spi/spi-pl022.c
+1
-5
drivers/spi/spi-pxa2xx.c
drivers/spi/spi-pxa2xx.c
+1
-4
drivers/spi/spi-sh-hspi.c
drivers/spi/spi-sh-hspi.c
+1
-2
drivers/spi/spi-tegra114.c
drivers/spi/spi-tegra114.c
+1
-2
drivers/spi/spi-tegra20-sflash.c
drivers/spi/spi-tegra20-sflash.c
+1
-2
drivers/spi/spi-tegra20-slink.c
drivers/spi/spi-tegra20-slink.c
+1
-2
drivers/spi/spi-ti-qspi.c
drivers/spi/spi-ti-qspi.c
+1
-11
drivers/spi/spi-txx9.c
drivers/spi/spi-txx9.c
+1
-3
drivers/spi/spi.c
drivers/spi/spi.c
+35
-0
include/linux/spi/spi.h
include/linux/spi/spi.h
+2
-0
No files found.
Documentation/driver-model/devres.txt
View file @
52d85ebb
...
@@ -302,3 +302,6 @@ PHY
...
@@ -302,3 +302,6 @@ PHY
SLAVE DMA ENGINE
SLAVE DMA ENGINE
devm_acpi_dma_controller_register()
devm_acpi_dma_controller_register()
SPI
devm_spi_register_master()
This diff is collapsed.
Click to expand it.
drivers/spi/spi-bcm2835.c
View file @
52d85ebb
...
@@ -358,7 +358,7 @@ static int bcm2835_spi_probe(struct platform_device *pdev)
...
@@ -358,7 +358,7 @@ static int bcm2835_spi_probe(struct platform_device *pdev)
bcm2835_wr
(
bs
,
BCM2835_SPI_CS
,
bcm2835_wr
(
bs
,
BCM2835_SPI_CS
,
BCM2835_SPI_CS_CLEAR_RX
|
BCM2835_SPI_CS_CLEAR_TX
);
BCM2835_SPI_CS_CLEAR_RX
|
BCM2835_SPI_CS_CLEAR_TX
);
err
=
spi_register_master
(
master
);
err
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
err
)
{
if
(
err
)
{
dev_err
(
&
pdev
->
dev
,
"could not register SPI master: %d
\n
"
,
err
);
dev_err
(
&
pdev
->
dev
,
"could not register SPI master: %d
\n
"
,
err
);
goto
out_free_irq
;
goto
out_free_irq
;
...
@@ -381,14 +381,12 @@ static int bcm2835_spi_remove(struct platform_device *pdev)
...
@@ -381,14 +381,12 @@ static int bcm2835_spi_remove(struct platform_device *pdev)
struct
bcm2835_spi
*
bs
=
spi_master_get_devdata
(
master
);
struct
bcm2835_spi
*
bs
=
spi_master_get_devdata
(
master
);
free_irq
(
bs
->
irq
,
master
);
free_irq
(
bs
->
irq
,
master
);
spi_unregister_master
(
master
);
/* Clear FIFOs, and disable the HW block */
/* Clear FIFOs, and disable the HW block */
bcm2835_wr
(
bs
,
BCM2835_SPI_CS
,
bcm2835_wr
(
bs
,
BCM2835_SPI_CS
,
BCM2835_SPI_CS_CLEAR_RX
|
BCM2835_SPI_CS_CLEAR_TX
);
BCM2835_SPI_CS_CLEAR_RX
|
BCM2835_SPI_CS_CLEAR_TX
);
clk_disable_unprepare
(
bs
->
clk
);
clk_disable_unprepare
(
bs
->
clk
);
spi_master_put
(
master
);
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-bcm63xx.c
View file @
52d85ebb
...
@@ -412,7 +412,7 @@ static int bcm63xx_spi_probe(struct platform_device *pdev)
...
@@ -412,7 +412,7 @@ static int bcm63xx_spi_probe(struct platform_device *pdev)
bcm_spi_writeb
(
bs
,
SPI_INTR_CLEAR_ALL
,
SPI_INT_STATUS
);
bcm_spi_writeb
(
bs
,
SPI_INTR_CLEAR_ALL
,
SPI_INT_STATUS
);
/* register and we are done */
/* register and we are done */
ret
=
spi_register_master
(
master
);
ret
=
devm_spi_register_master
(
dev
,
master
);
if
(
ret
)
{
if
(
ret
)
{
dev_err
(
dev
,
"spi register failed
\n
"
);
dev_err
(
dev
,
"spi register failed
\n
"
);
goto
out_clk_disable
;
goto
out_clk_disable
;
...
@@ -438,8 +438,6 @@ static int bcm63xx_spi_remove(struct platform_device *pdev)
...
@@ -438,8 +438,6 @@ static int bcm63xx_spi_remove(struct platform_device *pdev)
struct
spi_master
*
master
=
spi_master_get
(
platform_get_drvdata
(
pdev
));
struct
spi_master
*
master
=
spi_master_get
(
platform_get_drvdata
(
pdev
));
struct
bcm63xx_spi
*
bs
=
spi_master_get_devdata
(
master
);
struct
bcm63xx_spi
*
bs
=
spi_master_get_devdata
(
master
);
spi_unregister_master
(
master
);
/* reset spi block */
/* reset spi block */
bcm_spi_writeb
(
bs
,
0
,
SPI_INT_MASK
);
bcm_spi_writeb
(
bs
,
0
,
SPI_INT_MASK
);
...
@@ -447,8 +445,6 @@ static int bcm63xx_spi_remove(struct platform_device *pdev)
...
@@ -447,8 +445,6 @@ static int bcm63xx_spi_remove(struct platform_device *pdev)
clk_disable_unprepare
(
bs
->
clk
);
clk_disable_unprepare
(
bs
->
clk
);
clk_put
(
bs
->
clk
);
clk_put
(
bs
->
clk
);
spi_master_put
(
master
);
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-bfin-sport.c
View file @
52d85ebb
...
@@ -879,11 +879,10 @@ static int bfin_sport_spi_remove(struct platform_device *pdev)
...
@@ -879,11 +879,10 @@ static int bfin_sport_spi_remove(struct platform_device *pdev)
return
0
;
return
0
;
}
}
#ifdef CONFIG_PM
#ifdef CONFIG_PM_SLEEP
static
int
static
int
bfin_sport_spi_suspend
(
struct
device
*
dev
)
bfin_sport_spi_suspend
(
struct
platform_device
*
pdev
,
pm_message_t
state
)
{
{
struct
bfin_sport_spi_master_data
*
drv_data
=
platform_get_drvdata
(
p
dev
);
struct
bfin_sport_spi_master_data
*
drv_data
=
dev_get_drvdata
(
dev
);
int
status
;
int
status
;
status
=
bfin_sport_spi_stop_queue
(
drv_data
);
status
=
bfin_sport_spi_stop_queue
(
drv_data
);
...
@@ -896,10 +895,9 @@ bfin_sport_spi_suspend(struct platform_device *pdev, pm_message_t state)
...
@@ -896,10 +895,9 @@ bfin_sport_spi_suspend(struct platform_device *pdev, pm_message_t state)
return
status
;
return
status
;
}
}
static
int
static
int
bfin_sport_spi_resume
(
struct
device
*
dev
)
bfin_sport_spi_resume
(
struct
platform_device
*
pdev
)
{
{
struct
bfin_sport_spi_master_data
*
drv_data
=
platform_get_drvdata
(
p
dev
);
struct
bfin_sport_spi_master_data
*
drv_data
=
dev_get_drvdata
(
dev
);
int
status
;
int
status
;
/* Enable the SPI interface */
/* Enable the SPI interface */
...
@@ -912,19 +910,22 @@ bfin_sport_spi_resume(struct platform_device *pdev)
...
@@ -912,19 +910,22 @@ bfin_sport_spi_resume(struct platform_device *pdev)
return
status
;
return
status
;
}
}
static
SIMPLE_DEV_PM_OPS
(
bfin_sport_spi_pm_ops
,
bfin_sport_spi_suspend
,
bfin_sport_spi_resume
);
#define BFIN_SPORT_SPI_PM_OPS (&bfin_sport_spi_pm_ops)
#else
#else
# define bfin_sport_spi_suspend NULL
#define BFIN_SPORT_SPI_PM_OPS NULL
# define bfin_sport_spi_resume NULL
#endif
#endif
static
struct
platform_driver
bfin_sport_spi_driver
=
{
static
struct
platform_driver
bfin_sport_spi_driver
=
{
.
driver
=
{
.
driver
=
{
.
name
=
DRV_NAME
,
.
name
=
DRV_NAME
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
pm
=
BFIN_SPORT_SPI_PM_OPS
,
},
},
.
probe
=
bfin_sport_spi_probe
,
.
probe
=
bfin_sport_spi_probe
,
.
remove
=
bfin_sport_spi_remove
,
.
remove
=
bfin_sport_spi_remove
,
.
suspend
=
bfin_sport_spi_suspend
,
.
resume
=
bfin_sport_spi_resume
,
};
};
module_platform_driver
(
bfin_sport_spi_driver
);
module_platform_driver
(
bfin_sport_spi_driver
);
This diff is collapsed.
Click to expand it.
drivers/spi/spi-bfin-v3.c
View file @
52d85ebb
...
@@ -867,7 +867,7 @@ static int bfin_spi_probe(struct platform_device *pdev)
...
@@ -867,7 +867,7 @@ static int bfin_spi_probe(struct platform_device *pdev)
tasklet_init
(
&
drv_data
->
pump_transfers
,
tasklet_init
(
&
drv_data
->
pump_transfers
,
bfin_spi_pump_transfers
,
(
unsigned
long
)
drv_data
);
bfin_spi_pump_transfers
,
(
unsigned
long
)
drv_data
);
/* register with the SPI framework */
/* register with the SPI framework */
ret
=
spi_register_master
(
master
);
ret
=
devm_spi_register_master
(
dev
,
master
);
if
(
ret
)
{
if
(
ret
)
{
dev_err
(
dev
,
"can not register spi master
\n
"
);
dev_err
(
dev
,
"can not register spi master
\n
"
);
goto
err_free_peripheral
;
goto
err_free_peripheral
;
...
@@ -898,7 +898,6 @@ static int bfin_spi_remove(struct platform_device *pdev)
...
@@ -898,7 +898,6 @@ static int bfin_spi_remove(struct platform_device *pdev)
free_dma
(
drv_data
->
rx_dma
);
free_dma
(
drv_data
->
rx_dma
);
free_dma
(
drv_data
->
tx_dma
);
free_dma
(
drv_data
->
tx_dma
);
spi_unregister_master
(
drv_data
->
master
);
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-bfin5xx.c
View file @
52d85ebb
...
@@ -1411,10 +1411,10 @@ static int bfin_spi_remove(struct platform_device *pdev)
...
@@ -1411,10 +1411,10 @@ static int bfin_spi_remove(struct platform_device *pdev)
return
0
;
return
0
;
}
}
#ifdef CONFIG_PM
#ifdef CONFIG_PM
_SLEEP
static
int
bfin_spi_suspend
(
struct
platform_device
*
pdev
,
pm_message_t
state
)
static
int
bfin_spi_suspend
(
struct
device
*
dev
)
{
{
struct
bfin_spi_master_data
*
drv_data
=
platform_get_drvdata
(
p
dev
);
struct
bfin_spi_master_data
*
drv_data
=
dev_get_drvdata
(
dev
);
int
status
=
0
;
int
status
=
0
;
status
=
bfin_spi_stop_queue
(
drv_data
);
status
=
bfin_spi_stop_queue
(
drv_data
);
...
@@ -1433,9 +1433,9 @@ static int bfin_spi_suspend(struct platform_device *pdev, pm_message_t state)
...
@@ -1433,9 +1433,9 @@ static int bfin_spi_suspend(struct platform_device *pdev, pm_message_t state)
return
0
;
return
0
;
}
}
static
int
bfin_spi_resume
(
struct
platform_device
*
p
dev
)
static
int
bfin_spi_resume
(
struct
device
*
dev
)
{
{
struct
bfin_spi_master_data
*
drv_data
=
platform_get_drvdata
(
p
dev
);
struct
bfin_spi_master_data
*
drv_data
=
dev_get_drvdata
(
dev
);
int
status
=
0
;
int
status
=
0
;
bfin_write
(
&
drv_data
->
regs
->
ctl
,
drv_data
->
ctrl_reg
);
bfin_write
(
&
drv_data
->
regs
->
ctl
,
drv_data
->
ctrl_reg
);
...
@@ -1444,31 +1444,34 @@ static int bfin_spi_resume(struct platform_device *pdev)
...
@@ -1444,31 +1444,34 @@ static int bfin_spi_resume(struct platform_device *pdev)
/* Start the queue running */
/* Start the queue running */
status
=
bfin_spi_start_queue
(
drv_data
);
status
=
bfin_spi_start_queue
(
drv_data
);
if
(
status
!=
0
)
{
if
(
status
!=
0
)
{
dev_err
(
&
pdev
->
dev
,
"problem starting queue (%d)
\n
"
,
status
);
dev_err
(
dev
,
"problem starting queue (%d)
\n
"
,
status
);
return
status
;
return
status
;
}
}
return
0
;
return
0
;
}
}
static
SIMPLE_DEV_PM_OPS
(
bfin_spi_pm_ops
,
bfin_spi_suspend
,
bfin_spi_resume
);
#define BFIN_SPI_PM_OPS (&bfin_spi_pm_ops)
#else
#else
#define bfin_spi_suspend NULL
#define BFIN_SPI_PM_OPS NULL
#define bfin_spi_resume NULL
#endif
#endif
/* CONFIG_PM */
MODULE_ALIAS
(
"platform:bfin-spi"
);
MODULE_ALIAS
(
"platform:bfin-spi"
);
static
struct
platform_driver
bfin_spi_driver
=
{
static
struct
platform_driver
bfin_spi_driver
=
{
.
driver
=
{
.
driver
=
{
.
name
=
DRV_NAME
,
.
name
=
DRV_NAME
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
pm
=
BFIN_SPI_PM_OPS
,
},
},
.
suspend
=
bfin_spi_suspend
,
.
probe
=
bfin_spi_probe
,
.
resume
=
bfin_spi_resume
,
.
remove
=
bfin_spi_remove
,
.
remove
=
bfin_spi_remove
,
};
};
static
int
__init
bfin_spi_init
(
void
)
static
int
__init
bfin_spi_init
(
void
)
{
{
return
platform_driver_
probe
(
&
bfin_spi_driver
,
bfin_spi_probe
);
return
platform_driver_
register
(
&
bfin_spi_driver
);
}
}
subsys_initcall
(
bfin_spi_init
);
subsys_initcall
(
bfin_spi_init
);
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-clps711x.c
View file @
52d85ebb
...
@@ -229,7 +229,7 @@ static int spi_clps711x_probe(struct platform_device *pdev)
...
@@ -229,7 +229,7 @@ static int spi_clps711x_probe(struct platform_device *pdev)
goto
clk_out
;
goto
clk_out
;
}
}
ret
=
spi_register_master
(
master
);
ret
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
!
ret
)
{
if
(
!
ret
)
{
dev_info
(
&
pdev
->
dev
,
dev_info
(
&
pdev
->
dev
,
"SPI bus driver initialized. Master clock %u Hz
\n
"
,
"SPI bus driver initialized. Master clock %u Hz
\n
"
,
...
@@ -260,8 +260,6 @@ static int spi_clps711x_remove(struct platform_device *pdev)
...
@@ -260,8 +260,6 @@ static int spi_clps711x_remove(struct platform_device *pdev)
if
(
gpio_is_valid
(
hw
->
chipselect
[
i
]))
if
(
gpio_is_valid
(
hw
->
chipselect
[
i
]))
gpio_free
(
hw
->
chipselect
[
i
]);
gpio_free
(
hw
->
chipselect
[
i
]);
spi_unregister_master
(
master
);
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-ep93xx.c
View file @
52d85ebb
...
@@ -942,7 +942,7 @@ static int ep93xx_spi_probe(struct platform_device *pdev)
...
@@ -942,7 +942,7 @@ static int ep93xx_spi_probe(struct platform_device *pdev)
/* make sure that the hardware is disabled */
/* make sure that the hardware is disabled */
ep93xx_spi_write_u8
(
espi
,
SSPCR1
,
0
);
ep93xx_spi_write_u8
(
espi
,
SSPCR1
,
0
);
error
=
spi_register_master
(
master
);
error
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
error
)
{
if
(
error
)
{
dev_err
(
&
pdev
->
dev
,
"failed to register SPI master
\n
"
);
dev_err
(
&
pdev
->
dev
,
"failed to register SPI master
\n
"
);
goto
fail_free_dma
;
goto
fail_free_dma
;
...
@@ -968,7 +968,6 @@ static int ep93xx_spi_remove(struct platform_device *pdev)
...
@@ -968,7 +968,6 @@ static int ep93xx_spi_remove(struct platform_device *pdev)
ep93xx_spi_release_dma
(
espi
);
ep93xx_spi_release_dma
(
espi
);
spi_unregister_master
(
master
);
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-mpc512x-psc.c
View file @
52d85ebb
...
@@ -536,7 +536,7 @@ static int mpc512x_psc_spi_do_probe(struct device *dev, u32 regaddr,
...
@@ -536,7 +536,7 @@ static int mpc512x_psc_spi_do_probe(struct device *dev, u32 regaddr,
if
(
ret
<
0
)
if
(
ret
<
0
)
goto
free_clock
;
goto
free_clock
;
ret
=
spi_register_master
(
master
);
ret
=
devm_spi_register_master
(
dev
,
master
);
if
(
ret
<
0
)
if
(
ret
<
0
)
goto
free_clock
;
goto
free_clock
;
...
@@ -559,12 +559,10 @@ static int mpc512x_psc_spi_do_remove(struct device *dev)
...
@@ -559,12 +559,10 @@ static int mpc512x_psc_spi_do_remove(struct device *dev)
struct
spi_master
*
master
=
spi_master_get
(
dev_get_drvdata
(
dev
));
struct
spi_master
*
master
=
spi_master_get
(
dev_get_drvdata
(
dev
));
struct
mpc512x_psc_spi
*
mps
=
spi_master_get_devdata
(
master
);
struct
mpc512x_psc_spi
*
mps
=
spi_master_get_devdata
(
master
);
spi_unregister_master
(
master
);
clk_disable_unprepare
(
mps
->
clk_mclk
);
clk_disable_unprepare
(
mps
->
clk_mclk
);
free_irq
(
mps
->
irq
,
mps
);
free_irq
(
mps
->
irq
,
mps
);
if
(
mps
->
psc
)
if
(
mps
->
psc
)
iounmap
(
mps
->
psc
);
iounmap
(
mps
->
psc
);
spi_master_put
(
master
);
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-mxs.c
View file @
52d85ebb
...
@@ -571,7 +571,7 @@ static int mxs_spi_probe(struct platform_device *pdev)
...
@@ -571,7 +571,7 @@ static int mxs_spi_probe(struct platform_device *pdev)
platform_set_drvdata
(
pdev
,
master
);
platform_set_drvdata
(
pdev
,
master
);
ret
=
spi_register_master
(
master
);
ret
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
ret
)
{
if
(
ret
)
{
dev_err
(
&
pdev
->
dev
,
"Cannot register SPI master, %d
\n
"
,
ret
);
dev_err
(
&
pdev
->
dev
,
"Cannot register SPI master, %d
\n
"
,
ret
);
goto
out_disable_clk
;
goto
out_disable_clk
;
...
@@ -598,10 +598,8 @@ static int mxs_spi_remove(struct platform_device *pdev)
...
@@ -598,10 +598,8 @@ static int mxs_spi_remove(struct platform_device *pdev)
spi
=
spi_master_get_devdata
(
master
);
spi
=
spi_master_get_devdata
(
master
);
ssp
=
&
spi
->
ssp
;
ssp
=
&
spi
->
ssp
;
spi_unregister_master
(
master
);
clk_disable_unprepare
(
ssp
->
clk
);
clk_disable_unprepare
(
ssp
->
clk
);
dma_release_channel
(
ssp
->
dmach
);
dma_release_channel
(
ssp
->
dmach
);
spi_master_put
(
master
);
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-octeon.c
View file @
52d85ebb
...
@@ -272,7 +272,7 @@ static int octeon_spi_probe(struct platform_device *pdev)
...
@@ -272,7 +272,7 @@ static int octeon_spi_probe(struct platform_device *pdev)
master
->
bits_per_word_mask
=
SPI_BPW_MASK
(
8
);
master
->
bits_per_word_mask
=
SPI_BPW_MASK
(
8
);
master
->
dev
.
of_node
=
pdev
->
dev
.
of_node
;
master
->
dev
.
of_node
=
pdev
->
dev
.
of_node
;
err
=
spi_register_master
(
master
);
err
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
err
)
{
if
(
err
)
{
dev_err
(
&
pdev
->
dev
,
"register master failed: %d
\n
"
,
err
);
dev_err
(
&
pdev
->
dev
,
"register master failed: %d
\n
"
,
err
);
goto
fail
;
goto
fail
;
...
@@ -292,8 +292,6 @@ static int octeon_spi_remove(struct platform_device *pdev)
...
@@ -292,8 +292,6 @@ static int octeon_spi_remove(struct platform_device *pdev)
struct
octeon_spi
*
p
=
spi_master_get_devdata
(
master
);
struct
octeon_spi
*
p
=
spi_master_get_devdata
(
master
);
u64
register_base
=
p
->
register_base
;
u64
register_base
=
p
->
register_base
;
spi_unregister_master
(
master
);
/* Clear the CSENA* and put everything in a known state. */
/* Clear the CSENA* and put everything in a known state. */
cvmx_write_csr
(
register_base
+
OCTEON_SPI_CFG
,
0
);
cvmx_write_csr
(
register_base
+
OCTEON_SPI_CFG
,
0
);
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-omap-100k.c
View file @
52d85ebb
...
@@ -457,7 +457,7 @@ static int omap1_spi100k_probe(struct platform_device *pdev)
...
@@ -457,7 +457,7 @@ static int omap1_spi100k_probe(struct platform_device *pdev)
goto
err
;
goto
err
;
}
}
status
=
spi_register_master
(
master
);
status
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
status
<
0
)
if
(
status
<
0
)
goto
err
;
goto
err
;
...
@@ -485,8 +485,6 @@ static int omap1_spi100k_remove(struct platform_device *pdev)
...
@@ -485,8 +485,6 @@ static int omap1_spi100k_remove(struct platform_device *pdev)
r
=
platform_get_resource
(
pdev
,
IORESOURCE_MEM
,
0
);
r
=
platform_get_resource
(
pdev
,
IORESOURCE_MEM
,
0
);
spi_unregister_master
(
master
);
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-omap2-mcspi.c
View file @
52d85ebb
...
@@ -1413,7 +1413,7 @@ static int omap2_mcspi_probe(struct platform_device *pdev)
...
@@ -1413,7 +1413,7 @@ static int omap2_mcspi_probe(struct platform_device *pdev)
if
(
status
<
0
)
if
(
status
<
0
)
goto
disable_pm
;
goto
disable_pm
;
status
=
spi_register_master
(
master
);
status
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
status
<
0
)
if
(
status
<
0
)
goto
disable_pm
;
goto
disable_pm
;
...
@@ -1441,7 +1441,6 @@ static int omap2_mcspi_remove(struct platform_device *pdev)
...
@@ -1441,7 +1441,6 @@ static int omap2_mcspi_remove(struct platform_device *pdev)
pm_runtime_put_sync
(
mcspi
->
dev
);
pm_runtime_put_sync
(
mcspi
->
dev
);
pm_runtime_disable
(
&
pdev
->
dev
);
pm_runtime_disable
(
&
pdev
->
dev
);
spi_unregister_master
(
master
);
kfree
(
dma_channels
);
kfree
(
dma_channels
);
return
0
;
return
0
;
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-orion.c
View file @
52d85ebb
...
@@ -457,7 +457,7 @@ static int orion_spi_probe(struct platform_device *pdev)
...
@@ -457,7 +457,7 @@ static int orion_spi_probe(struct platform_device *pdev)
goto
out_rel_clk
;
goto
out_rel_clk
;
master
->
dev
.
of_node
=
pdev
->
dev
.
of_node
;
master
->
dev
.
of_node
=
pdev
->
dev
.
of_node
;
status
=
spi_register_master
(
master
);
status
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
status
<
0
)
if
(
status
<
0
)
goto
out_rel_clk
;
goto
out_rel_clk
;
...
@@ -483,8 +483,6 @@ static int orion_spi_remove(struct platform_device *pdev)
...
@@ -483,8 +483,6 @@ static int orion_spi_remove(struct platform_device *pdev)
clk_disable_unprepare
(
spi
->
clk
);
clk_disable_unprepare
(
spi
->
clk
);
clk_put
(
spi
->
clk
);
clk_put
(
spi
->
clk
);
spi_unregister_master
(
master
);
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-pl022.c
View file @
52d85ebb
...
@@ -1619,7 +1619,6 @@ static int verify_controller_parameters(struct pl022 *pl022,
...
@@ -1619,7 +1619,6 @@ static int verify_controller_parameters(struct pl022 *pl022,
dev_err
(
&
pl022
->
adev
->
dev
,
dev_err
(
&
pl022
->
adev
->
dev
,
"RX FIFO Trigger Level is configured incorrectly
\n
"
);
"RX FIFO Trigger Level is configured incorrectly
\n
"
);
return
-
EINVAL
;
return
-
EINVAL
;
break
;
}
}
switch
(
chip_info
->
tx_lev_trig
)
{
switch
(
chip_info
->
tx_lev_trig
)
{
case
SSP_TX_1_OR_MORE_EMPTY_LOC
:
case
SSP_TX_1_OR_MORE_EMPTY_LOC
:
...
@@ -1645,7 +1644,6 @@ static int verify_controller_parameters(struct pl022 *pl022,
...
@@ -1645,7 +1644,6 @@ static int verify_controller_parameters(struct pl022 *pl022,
dev_err
(
&
pl022
->
adev
->
dev
,
dev_err
(
&
pl022
->
adev
->
dev
,
"TX FIFO Trigger Level is configured incorrectly
\n
"
);
"TX FIFO Trigger Level is configured incorrectly
\n
"
);
return
-
EINVAL
;
return
-
EINVAL
;
break
;
}
}
if
(
chip_info
->
iface
==
SSP_INTERFACE_NATIONAL_MICROWIRE
)
{
if
(
chip_info
->
iface
==
SSP_INTERFACE_NATIONAL_MICROWIRE
)
{
if
((
chip_info
->
ctrl_len
<
SSP_BITS_4
)
if
((
chip_info
->
ctrl_len
<
SSP_BITS_4
)
...
@@ -2227,7 +2225,7 @@ static int pl022_probe(struct amba_device *adev, const struct amba_id *id)
...
@@ -2227,7 +2225,7 @@ static int pl022_probe(struct amba_device *adev, const struct amba_id *id)
/* Register with the SPI framework */
/* Register with the SPI framework */
amba_set_drvdata
(
adev
,
pl022
);
amba_set_drvdata
(
adev
,
pl022
);
status
=
spi_register_master
(
master
);
status
=
devm_spi_register_master
(
&
adev
->
dev
,
master
);
if
(
status
!=
0
)
{
if
(
status
!=
0
)
{
dev_err
(
&
adev
->
dev
,
dev_err
(
&
adev
->
dev
,
"probe - problem registering spi master
\n
"
);
"probe - problem registering spi master
\n
"
);
...
@@ -2287,8 +2285,6 @@ pl022_remove(struct amba_device *adev)
...
@@ -2287,8 +2285,6 @@ pl022_remove(struct amba_device *adev)
clk_unprepare
(
pl022
->
clk
);
clk_unprepare
(
pl022
->
clk
);
amba_release_regions
(
adev
);
amba_release_regions
(
adev
);
tasklet_disable
(
&
pl022
->
pump_transfers
);
tasklet_disable
(
&
pl022
->
pump_transfers
);
spi_unregister_master
(
pl022
->
master
);
amba_set_drvdata
(
adev
,
NULL
);
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-pxa2xx.c
View file @
52d85ebb
...
@@ -1201,7 +1201,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
...
@@ -1201,7 +1201,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
/* Register with the SPI framework */
/* Register with the SPI framework */
platform_set_drvdata
(
pdev
,
drv_data
);
platform_set_drvdata
(
pdev
,
drv_data
);
status
=
spi_register_master
(
master
);
status
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
status
!=
0
)
{
if
(
status
!=
0
)
{
dev_err
(
&
pdev
->
dev
,
"problem registering spi master
\n
"
);
dev_err
(
&
pdev
->
dev
,
"problem registering spi master
\n
"
);
goto
out_error_clock_enabled
;
goto
out_error_clock_enabled
;
...
@@ -1253,9 +1253,6 @@ static int pxa2xx_spi_remove(struct platform_device *pdev)
...
@@ -1253,9 +1253,6 @@ static int pxa2xx_spi_remove(struct platform_device *pdev)
/* Release SSP */
/* Release SSP */
pxa_ssp_free
(
ssp
);
pxa_ssp_free
(
ssp
);
/* Disconnect from the SPI framework */
spi_unregister_master
(
drv_data
->
master
);
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-sh-hspi.c
View file @
52d85ebb
...
@@ -305,7 +305,7 @@ static int hspi_probe(struct platform_device *pdev)
...
@@ -305,7 +305,7 @@ static int hspi_probe(struct platform_device *pdev)
master
->
mode_bits
=
SPI_CPOL
|
SPI_CPHA
;
master
->
mode_bits
=
SPI_CPOL
|
SPI_CPHA
;
master
->
auto_runtime_pm
=
true
;
master
->
auto_runtime_pm
=
true
;
master
->
transfer_one_message
=
hspi_transfer_one_message
;
master
->
transfer_one_message
=
hspi_transfer_one_message
;
ret
=
spi_register_master
(
master
);
ret
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"spi_register_master error.
\n
"
);
dev_err
(
&
pdev
->
dev
,
"spi_register_master error.
\n
"
);
goto
error1
;
goto
error1
;
...
@@ -328,7 +328,6 @@ static int hspi_remove(struct platform_device *pdev)
...
@@ -328,7 +328,6 @@ static int hspi_remove(struct platform_device *pdev)
pm_runtime_disable
(
&
pdev
->
dev
);
pm_runtime_disable
(
&
pdev
->
dev
);
clk_put
(
hspi
->
clk
);
clk_put
(
hspi
->
clk
);
spi_unregister_master
(
hspi
->
master
);
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-tegra114.c
View file @
52d85ebb
...
@@ -1115,7 +1115,7 @@ static int tegra_spi_probe(struct platform_device *pdev)
...
@@ -1115,7 +1115,7 @@ static int tegra_spi_probe(struct platform_device *pdev)
pm_runtime_put
(
&
pdev
->
dev
);
pm_runtime_put
(
&
pdev
->
dev
);
master
->
dev
.
of_node
=
pdev
->
dev
.
of_node
;
master
->
dev
.
of_node
=
pdev
->
dev
.
of_node
;
ret
=
spi_register_master
(
master
);
ret
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"can not register to master err %d
\n
"
,
ret
);
dev_err
(
&
pdev
->
dev
,
"can not register to master err %d
\n
"
,
ret
);
goto
exit_pm_disable
;
goto
exit_pm_disable
;
...
@@ -1142,7 +1142,6 @@ static int tegra_spi_remove(struct platform_device *pdev)
...
@@ -1142,7 +1142,6 @@ static int tegra_spi_remove(struct platform_device *pdev)
struct
tegra_spi_data
*
tspi
=
spi_master_get_devdata
(
master
);
struct
tegra_spi_data
*
tspi
=
spi_master_get_devdata
(
master
);
free_irq
(
tspi
->
irq
,
tspi
);
free_irq
(
tspi
->
irq
,
tspi
);
spi_unregister_master
(
master
);
if
(
tspi
->
tx_dma_chan
)
if
(
tspi
->
tx_dma_chan
)
tegra_spi_deinit_dma_param
(
tspi
,
false
);
tegra_spi_deinit_dma_param
(
tspi
,
false
);
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-tegra20-sflash.c
View file @
52d85ebb
...
@@ -529,7 +529,7 @@ static int tegra_sflash_probe(struct platform_device *pdev)
...
@@ -529,7 +529,7 @@ static int tegra_sflash_probe(struct platform_device *pdev)
pm_runtime_put
(
&
pdev
->
dev
);
pm_runtime_put
(
&
pdev
->
dev
);
master
->
dev
.
of_node
=
pdev
->
dev
.
of_node
;
master
->
dev
.
of_node
=
pdev
->
dev
.
of_node
;
ret
=
spi_register_master
(
master
);
ret
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"can not register to master err %d
\n
"
,
ret
);
dev_err
(
&
pdev
->
dev
,
"can not register to master err %d
\n
"
,
ret
);
goto
exit_pm_disable
;
goto
exit_pm_disable
;
...
@@ -553,7 +553,6 @@ static int tegra_sflash_remove(struct platform_device *pdev)
...
@@ -553,7 +553,6 @@ static int tegra_sflash_remove(struct platform_device *pdev)
struct
tegra_sflash_data
*
tsd
=
spi_master_get_devdata
(
master
);
struct
tegra_sflash_data
*
tsd
=
spi_master_get_devdata
(
master
);
free_irq
(
tsd
->
irq
,
tsd
);
free_irq
(
tsd
->
irq
,
tsd
);
spi_unregister_master
(
master
);
pm_runtime_disable
(
&
pdev
->
dev
);
pm_runtime_disable
(
&
pdev
->
dev
);
if
(
!
pm_runtime_status_suspended
(
&
pdev
->
dev
))
if
(
!
pm_runtime_status_suspended
(
&
pdev
->
dev
))
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-tegra20-slink.c
View file @
52d85ebb
...
@@ -1164,7 +1164,7 @@ static int tegra_slink_probe(struct platform_device *pdev)
...
@@ -1164,7 +1164,7 @@ static int tegra_slink_probe(struct platform_device *pdev)
pm_runtime_put
(
&
pdev
->
dev
);
pm_runtime_put
(
&
pdev
->
dev
);
master
->
dev
.
of_node
=
pdev
->
dev
.
of_node
;
master
->
dev
.
of_node
=
pdev
->
dev
.
of_node
;
ret
=
spi_register_master
(
master
);
ret
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"can not register to master err %d
\n
"
,
ret
);
dev_err
(
&
pdev
->
dev
,
"can not register to master err %d
\n
"
,
ret
);
goto
exit_pm_disable
;
goto
exit_pm_disable
;
...
@@ -1191,7 +1191,6 @@ static int tegra_slink_remove(struct platform_device *pdev)
...
@@ -1191,7 +1191,6 @@ static int tegra_slink_remove(struct platform_device *pdev)
struct
tegra_slink_data
*
tspi
=
spi_master_get_devdata
(
master
);
struct
tegra_slink_data
*
tspi
=
spi_master_get_devdata
(
master
);
free_irq
(
tspi
->
irq
,
tspi
);
free_irq
(
tspi
->
irq
,
tspi
);
spi_unregister_master
(
master
);
if
(
tspi
->
tx_dma_chan
)
if
(
tspi
->
tx_dma_chan
)
tegra_slink_deinit_dma_param
(
tspi
,
false
);
tegra_slink_deinit_dma_param
(
tspi
,
false
);
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-ti-qspi.c
View file @
52d85ebb
...
@@ -532,7 +532,7 @@ static int ti_qspi_probe(struct platform_device *pdev)
...
@@ -532,7 +532,7 @@ static int ti_qspi_probe(struct platform_device *pdev)
if
(
!
of_property_read_u32
(
np
,
"spi-max-frequency"
,
&
max_freq
))
if
(
!
of_property_read_u32
(
np
,
"spi-max-frequency"
,
&
max_freq
))
qspi
->
spi_max_frequency
=
max_freq
;
qspi
->
spi_max_frequency
=
max_freq
;
ret
=
spi_register_master
(
master
);
ret
=
devm_spi_register_master
(
&
pdev
->
dev
,
master
);
if
(
ret
)
if
(
ret
)
goto
free_master
;
goto
free_master
;
...
@@ -543,22 +543,12 @@ static int ti_qspi_probe(struct platform_device *pdev)
...
@@ -543,22 +543,12 @@ static int ti_qspi_probe(struct platform_device *pdev)
return
ret
;
return
ret
;
}
}
static
int
ti_qspi_remove
(
struct
platform_device
*
pdev
)
{
struct
ti_qspi
*
qspi
=
platform_get_drvdata
(
pdev
);
spi_unregister_master
(
qspi
->
master
);
return
0
;
}
static
const
struct
dev_pm_ops
ti_qspi_pm_ops
=
{
static
const
struct
dev_pm_ops
ti_qspi_pm_ops
=
{
.
runtime_resume
=
ti_qspi_runtime_resume
,
.
runtime_resume
=
ti_qspi_runtime_resume
,
};
};
static
struct
platform_driver
ti_qspi_driver
=
{
static
struct
platform_driver
ti_qspi_driver
=
{
.
probe
=
ti_qspi_probe
,
.
probe
=
ti_qspi_probe
,
.
remove
=
ti_qspi_remove
,
.
driver
=
{
.
driver
=
{
.
name
=
"ti,dra7xxx-qspi"
,
.
name
=
"ti,dra7xxx-qspi"
,
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi-txx9.c
View file @
52d85ebb
...
@@ -406,7 +406,7 @@ static int txx9spi_probe(struct platform_device *dev)
...
@@ -406,7 +406,7 @@ static int txx9spi_probe(struct platform_device *dev)
master
->
num_chipselect
=
(
u16
)
UINT_MAX
;
/* any GPIO numbers */
master
->
num_chipselect
=
(
u16
)
UINT_MAX
;
/* any GPIO numbers */
master
->
bits_per_word_mask
=
SPI_BPW_MASK
(
8
)
|
SPI_BPW_MASK
(
16
);
master
->
bits_per_word_mask
=
SPI_BPW_MASK
(
8
)
|
SPI_BPW_MASK
(
16
);
ret
=
spi_register_master
(
master
);
ret
=
devm_spi_register_master
(
&
dev
->
dev
,
master
);
if
(
ret
)
if
(
ret
)
goto
exit
;
goto
exit
;
return
0
;
return
0
;
...
@@ -428,11 +428,9 @@ static int txx9spi_remove(struct platform_device *dev)
...
@@ -428,11 +428,9 @@ static int txx9spi_remove(struct platform_device *dev)
struct
spi_master
*
master
=
spi_master_get
(
platform_get_drvdata
(
dev
));
struct
spi_master
*
master
=
spi_master_get
(
platform_get_drvdata
(
dev
));
struct
txx9spi
*
c
=
spi_master_get_devdata
(
master
);
struct
txx9spi
*
c
=
spi_master_get_devdata
(
master
);
spi_unregister_master
(
master
);
destroy_workqueue
(
c
->
workqueue
);
destroy_workqueue
(
c
->
workqueue
);
clk_disable
(
c
->
clk
);
clk_disable
(
c
->
clk
);
clk_put
(
c
->
clk
);
clk_put
(
c
->
clk
);
spi_master_put
(
master
);
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
drivers/spi/spi.c
View file @
52d85ebb
...
@@ -1245,6 +1245,41 @@ int spi_register_master(struct spi_master *master)
...
@@ -1245,6 +1245,41 @@ int spi_register_master(struct spi_master *master)
}
}
EXPORT_SYMBOL_GPL
(
spi_register_master
);
EXPORT_SYMBOL_GPL
(
spi_register_master
);
static
void
devm_spi_unregister
(
struct
device
*
dev
,
void
*
res
)
{
spi_unregister_master
(
*
(
struct
spi_master
**
)
res
);
}
/**
* dev_spi_register_master - register managed SPI master controller
* @dev: device managing SPI master
* @master: initialized master, originally from spi_alloc_master()
* Context: can sleep
*
* Register a SPI device as with spi_register_master() which will
* automatically be unregister
*/
int
devm_spi_register_master
(
struct
device
*
dev
,
struct
spi_master
*
master
)
{
struct
spi_master
**
ptr
;
int
ret
;
ptr
=
devres_alloc
(
devm_spi_unregister
,
sizeof
(
*
ptr
),
GFP_KERNEL
);
if
(
!
ptr
)
return
-
ENOMEM
;
ret
=
spi_register_master
(
master
);
if
(
ret
!=
0
)
{
*
ptr
=
master
;
devres_add
(
dev
,
ptr
);
}
else
{
devres_free
(
ptr
);
}
return
ret
;
}
EXPORT_SYMBOL_GPL
(
devm_spi_register_master
);
static
int
__unregister
(
struct
device
*
dev
,
void
*
null
)
static
int
__unregister
(
struct
device
*
dev
,
void
*
null
)
{
{
spi_unregister_device
(
to_spi_device
(
dev
));
spi_unregister_device
(
to_spi_device
(
dev
));
...
...
This diff is collapsed.
Click to expand it.
include/linux/spi/spi.h
View file @
52d85ebb
...
@@ -434,6 +434,8 @@ extern struct spi_master *
...
@@ -434,6 +434,8 @@ extern struct spi_master *
spi_alloc_master
(
struct
device
*
host
,
unsigned
size
);
spi_alloc_master
(
struct
device
*
host
,
unsigned
size
);
extern
int
spi_register_master
(
struct
spi_master
*
master
);
extern
int
spi_register_master
(
struct
spi_master
*
master
);
extern
int
devm_spi_register_master
(
struct
device
*
dev
,
struct
spi_master
*
master
);
extern
void
spi_unregister_master
(
struct
spi_master
*
master
);
extern
void
spi_unregister_master
(
struct
spi_master
*
master
);
extern
struct
spi_master
*
spi_busnum_to_master
(
u16
busnum
);
extern
struct
spi_master
*
spi_busnum_to_master
(
u16
busnum
);
...
...
This diff is collapsed.
Click to expand it.
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