mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-03 09:41:54 +09:00
staging: vchiq_arm: Fix camera device registration
Since the camera driver isn't probed via DT, we need to properly setup DMA.
Fixes: 37b7b3087a ("staging/vc04_services: Register a platform device for the camera driver.")
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
1a321ea68b
commit
405e2f9863
@@ -49,6 +49,7 @@
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/compat.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <soc/bcm2835/raspberrypi-firmware.h>
|
||||
|
||||
#include "vchiq_core.h"
|
||||
@@ -3479,6 +3480,28 @@ static const struct of_device_id vchiq_of_match[] = {
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, vchiq_of_match);
|
||||
|
||||
static struct platform_device *
|
||||
vchiq_register_child(struct platform_device *pdev, const char *name)
|
||||
{
|
||||
struct platform_device_info pdevinfo;
|
||||
struct platform_device *child;
|
||||
|
||||
memset(&pdevinfo, 0, sizeof(pdevinfo));
|
||||
|
||||
pdevinfo.parent = &pdev->dev;
|
||||
pdevinfo.name = name;
|
||||
pdevinfo.id = PLATFORM_DEVID_NONE;
|
||||
pdevinfo.dma_mask = DMA_BIT_MASK(32);
|
||||
|
||||
child = platform_device_register_full(&pdevinfo);
|
||||
if (IS_ERR(child)) {
|
||||
dev_warn(&pdev->dev, "%s not registered\n", name);
|
||||
child = NULL;
|
||||
}
|
||||
|
||||
return child;
|
||||
}
|
||||
|
||||
static int vchiq_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device_node *fw_node;
|
||||
@@ -3529,9 +3552,7 @@ static int vchiq_probe(struct platform_device *pdev)
|
||||
VCHIQ_VERSION, VCHIQ_VERSION_MIN,
|
||||
MAJOR(vchiq_devid), MINOR(vchiq_devid));
|
||||
|
||||
bcm2835_camera = platform_device_register_data(&pdev->dev,
|
||||
"bcm2835-camera", -1,
|
||||
NULL, 0);
|
||||
bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
|
||||
|
||||
return 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user