mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
Merge branch 'topic/rcar' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-rspi
This commit is contained in:
commit
13ea330010
1316 changed files with 15408 additions and 7137 deletions
|
|
@ -377,7 +377,7 @@ out_master_put:
|
|||
|
||||
static int bcm2835_spi_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct spi_master *master = spi_master_get(platform_get_drvdata(pdev));
|
||||
struct spi_master *master = platform_get_drvdata(pdev);
|
||||
struct bcm2835_spi *bs = spi_master_get_devdata(master);
|
||||
|
||||
free_irq(bs->irq, master);
|
||||
|
|
|
|||
|
|
@ -435,7 +435,7 @@ out:
|
|||
|
||||
static int bcm63xx_spi_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct spi_master *master = spi_master_get(platform_get_drvdata(pdev));
|
||||
struct spi_master *master = platform_get_drvdata(pdev);
|
||||
struct bcm63xx_spi *bs = spi_master_get_devdata(master);
|
||||
|
||||
/* reset spi block */
|
||||
|
|
|
|||
|
|
@ -557,7 +557,7 @@ free_master:
|
|||
|
||||
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 = dev_get_drvdata(dev);
|
||||
struct mpc512x_psc_spi *mps = spi_master_get_devdata(master);
|
||||
|
||||
clk_disable_unprepare(mps->clk_mclk);
|
||||
|
|
|
|||
|
|
@ -565,7 +565,7 @@ static int mxs_spi_remove(struct platform_device *pdev)
|
|||
struct mxs_spi *spi;
|
||||
struct mxs_ssp *ssp;
|
||||
|
||||
master = spi_master_get(platform_get_drvdata(pdev));
|
||||
master = platform_get_drvdata(pdev);
|
||||
spi = spi_master_get_devdata(master);
|
||||
ssp = &spi->ssp;
|
||||
|
||||
|
|
|
|||
|
|
@ -1073,6 +1073,8 @@ pxa2xx_spi_acpi_get_pdata(struct platform_device *pdev)
|
|||
static struct acpi_device_id pxa2xx_spi_acpi_match[] = {
|
||||
{ "INT33C0", 0 },
|
||||
{ "INT33C1", 0 },
|
||||
{ "INT3430", 0 },
|
||||
{ "INT3431", 0 },
|
||||
{ "80860F0E", 0 },
|
||||
{ },
|
||||
};
|
||||
|
|
@ -1291,6 +1293,9 @@ static int pxa2xx_spi_resume(struct device *dev)
|
|||
/* Enable the SSP clock */
|
||||
clk_prepare_enable(ssp->clk);
|
||||
|
||||
/* Restore LPSS private register bits */
|
||||
lpss_ssp_setup(drv_data);
|
||||
|
||||
/* Start the queue running */
|
||||
status = spi_master_resume(drv_data->master);
|
||||
if (status != 0) {
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@ static int qspi_set_config_register(const struct rspi_data *rspi,
|
|||
spcmd = SPCMD_SPB_8BIT;
|
||||
else if (access_size == 16)
|
||||
spcmd = SPCMD_SPB_16BIT;
|
||||
else if (access_size == 32)
|
||||
else
|
||||
spcmd = SPCMD_SPB_32BIT;
|
||||
|
||||
spcmd |= SPCMD_SCKDEN | SPCMD_SLNDEN | rspi->spcmd | SPCMD_SPNDEN;
|
||||
|
|
@ -922,14 +922,9 @@ static void rspi_release_dma(struct rspi_data *rspi)
|
|||
|
||||
static int rspi_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct rspi_data *rspi = spi_master_get(platform_get_drvdata(pdev));
|
||||
struct rspi_data *rspi = platform_get_drvdata(pdev);
|
||||
|
||||
spi_unregister_master(rspi->master);
|
||||
rspi_release_dma(rspi);
|
||||
free_irq(platform_get_irq(pdev, 0), rspi);
|
||||
clk_put(rspi->clk);
|
||||
iounmap(rspi->addr);
|
||||
spi_master_put(rspi->master);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -951,12 +946,6 @@ static int rspi_probe(struct platform_device *pdev)
|
|||
dev_err(&pdev->dev, "there is no set_config_register\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
/* get base addr */
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
if (unlikely(res == NULL)) {
|
||||
dev_err(&pdev->dev, "invalid resource\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
irq = platform_get_irq(pdev, 0);
|
||||
if (irq < 0) {
|
||||
|
|
@ -974,19 +963,20 @@ static int rspi_probe(struct platform_device *pdev)
|
|||
platform_set_drvdata(pdev, rspi);
|
||||
rspi->ops = ops;
|
||||
rspi->master = master;
|
||||
rspi->addr = ioremap(res->start, resource_size(res));
|
||||
if (rspi->addr == NULL) {
|
||||
dev_err(&pdev->dev, "ioremap error.\n");
|
||||
ret = -ENOMEM;
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
rspi->addr = devm_ioremap_resource(&pdev->dev, res);
|
||||
if (IS_ERR(rspi->addr)) {
|
||||
ret = PTR_ERR(rspi->addr);
|
||||
goto error1;
|
||||
}
|
||||
|
||||
snprintf(clk_name, sizeof(clk_name), "%s%d", id_entry->name, pdev->id);
|
||||
rspi->clk = clk_get(&pdev->dev, clk_name);
|
||||
rspi->clk = devm_clk_get(&pdev->dev, clk_name);
|
||||
if (IS_ERR(rspi->clk)) {
|
||||
dev_err(&pdev->dev, "cannot get clock\n");
|
||||
ret = PTR_ERR(rspi->clk);
|
||||
goto error2;
|
||||
goto error1;
|
||||
}
|
||||
clk_enable(rspi->clk);
|
||||
|
||||
|
|
@ -1005,36 +995,32 @@ static int rspi_probe(struct platform_device *pdev)
|
|||
master->cleanup = rspi_cleanup;
|
||||
master->mode_bits = SPI_CPHA | SPI_CPOL;
|
||||
|
||||
ret = request_irq(irq, rspi_irq, 0, dev_name(&pdev->dev), rspi);
|
||||
ret = devm_request_irq(&pdev->dev, irq, rspi_irq, 0,
|
||||
dev_name(&pdev->dev), rspi);
|
||||
if (ret < 0) {
|
||||
dev_err(&pdev->dev, "request_irq error\n");
|
||||
goto error3;
|
||||
goto error1;
|
||||
}
|
||||
|
||||
rspi->irq = irq;
|
||||
ret = rspi_request_dma(rspi, pdev);
|
||||
if (ret < 0) {
|
||||
dev_err(&pdev->dev, "rspi_request_dma failed.\n");
|
||||
goto error4;
|
||||
goto error2;
|
||||
}
|
||||
|
||||
ret = spi_register_master(master);
|
||||
ret = devm_spi_register_master(&pdev->dev, master);
|
||||
if (ret < 0) {
|
||||
dev_err(&pdev->dev, "spi_register_master error.\n");
|
||||
goto error4;
|
||||
goto error2;
|
||||
}
|
||||
|
||||
dev_info(&pdev->dev, "probed\n");
|
||||
|
||||
return 0;
|
||||
|
||||
error4:
|
||||
rspi_release_dma(rspi);
|
||||
free_irq(irq, rspi);
|
||||
error3:
|
||||
clk_put(rspi->clk);
|
||||
error2:
|
||||
iounmap(rspi->addr);
|
||||
rspi_release_dma(rspi);
|
||||
error1:
|
||||
spi_master_put(master);
|
||||
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ static int ti_qspi_setup(struct spi_device *spi)
|
|||
qspi->spi_max_frequency, clk_div);
|
||||
|
||||
ret = pm_runtime_get_sync(qspi->dev);
|
||||
if (ret) {
|
||||
if (ret < 0) {
|
||||
dev_err(qspi->dev, "pm_runtime_get_sync() failed\n");
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -459,11 +459,10 @@ static int ti_qspi_probe(struct platform_device *pdev)
|
|||
if (!of_property_read_u32(np, "num-cs", &num_cs))
|
||||
master->num_chipselect = num_cs;
|
||||
|
||||
platform_set_drvdata(pdev, master);
|
||||
|
||||
qspi = spi_master_get_devdata(master);
|
||||
qspi->master = master;
|
||||
qspi->dev = &pdev->dev;
|
||||
platform_set_drvdata(pdev, qspi);
|
||||
|
||||
r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
|
||||
|
|
@ -517,10 +516,26 @@ free_master:
|
|||
|
||||
static int ti_qspi_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct ti_qspi *qspi = platform_get_drvdata(pdev);
|
||||
struct spi_master *master;
|
||||
struct ti_qspi *qspi;
|
||||
int ret;
|
||||
|
||||
master = platform_get_drvdata(pdev);
|
||||
qspi = spi_master_get_devdata(master);
|
||||
|
||||
ret = pm_runtime_get_sync(qspi->dev);
|
||||
if (ret < 0) {
|
||||
dev_err(qspi->dev, "pm_runtime_get_sync() failed\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
ti_qspi_write(qspi, QSPI_WC_INT_DISABLE, QSPI_INTR_ENABLE_CLEAR_REG);
|
||||
|
||||
pm_runtime_put(qspi->dev);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
|
||||
spi_unregister_master(master);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -425,7 +425,7 @@ exit:
|
|||
|
||||
static int txx9spi_remove(struct platform_device *dev)
|
||||
{
|
||||
struct spi_master *master = spi_master_get(platform_get_drvdata(dev));
|
||||
struct spi_master *master = platform_get_drvdata(dev);
|
||||
struct txx9spi *c = spi_master_get_devdata(master);
|
||||
|
||||
destroy_workqueue(c->workqueue);
|
||||
|
|
|
|||
|
|
@ -1415,7 +1415,7 @@ int devm_spi_register_master(struct device *dev, struct spi_master *master)
|
|||
return -ENOMEM;
|
||||
|
||||
ret = spi_register_master(master);
|
||||
if (ret != 0) {
|
||||
if (!ret) {
|
||||
*ptr = master;
|
||||
devres_add(dev, ptr);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in a new issue