Commit f7d0e6d6 authored by Sonic Zhang's avatar Sonic Zhang Committed by Mauro Carvalho Chehab

[media] media: blackfin: ppi: Pass device pointer to request peripheral pins

if the pinctrl driver is enabled.
Signed-off-by: default avatarSonic Zhang <sonic.zhang@analog.com>
Acked-by: default avatarScott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent 3d3a4109
...@@ -939,7 +939,7 @@ static int bcap_probe(struct platform_device *pdev) ...@@ -939,7 +939,7 @@ static int bcap_probe(struct platform_device *pdev)
bcap_dev->cfg = config; bcap_dev->cfg = config;
bcap_dev->ppi = ppi_create_instance(config->ppi_info); bcap_dev->ppi = ppi_create_instance(pdev, config->ppi_info);
if (!bcap_dev->ppi) { if (!bcap_dev->ppi) {
v4l2_err(pdev->dev.driver, "Unable to create ppi\n"); v4l2_err(pdev->dev.driver, "Unable to create ppi\n");
ret = -ENODEV; ret = -ENODEV;
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/platform_device.h>
#include <asm/bfin_ppi.h> #include <asm/bfin_ppi.h>
#include <asm/blackfin.h> #include <asm/blackfin.h>
...@@ -307,7 +308,8 @@ static void ppi_update_addr(struct ppi_if *ppi, unsigned long addr) ...@@ -307,7 +308,8 @@ static void ppi_update_addr(struct ppi_if *ppi, unsigned long addr)
set_dma_start_addr(ppi->info->dma_ch, addr); set_dma_start_addr(ppi->info->dma_ch, addr);
} }
struct ppi_if *ppi_create_instance(const struct ppi_info *info) struct ppi_if *ppi_create_instance(struct platform_device *pdev,
const struct ppi_info *info)
{ {
struct ppi_if *ppi; struct ppi_if *ppi;
...@@ -315,14 +317,14 @@ struct ppi_if *ppi_create_instance(const struct ppi_info *info) ...@@ -315,14 +317,14 @@ struct ppi_if *ppi_create_instance(const struct ppi_info *info)
return NULL; return NULL;
if (peripheral_request_list(info->pin_req, KBUILD_MODNAME)) { if (peripheral_request_list(info->pin_req, KBUILD_MODNAME)) {
pr_err("request peripheral failed\n"); dev_err(&pdev->dev, "request peripheral failed\n");
return NULL; return NULL;
} }
ppi = kzalloc(sizeof(*ppi), GFP_KERNEL); ppi = kzalloc(sizeof(*ppi), GFP_KERNEL);
if (!ppi) { if (!ppi) {
peripheral_free_list(info->pin_req); peripheral_free_list(info->pin_req);
pr_err("unable to allocate memory for ppi handle\n"); dev_err(&pdev->dev, "unable to allocate memory for ppi handle\n");
return NULL; return NULL;
} }
ppi->ops = &ppi_ops; ppi->ops = &ppi_ops;
......
...@@ -91,6 +91,7 @@ struct ppi_if { ...@@ -91,6 +91,7 @@ struct ppi_if {
void *priv; void *priv;
}; };
struct ppi_if *ppi_create_instance(const struct ppi_info *info); struct ppi_if *ppi_create_instance(struct platform_device *pdev,
const struct ppi_info *info);
void ppi_delete_instance(struct ppi_if *ppi); void ppi_delete_instance(struct ppi_if *ppi);
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment