@@ -24,6 +24,7 @@
#include <linux/slab.h>
#include <linux/clk.h>
#include <linux/of.h>
+#include <linux/of_device.h>
#include <media/v4l2-ioctl.h>
#include "gsc-core.h"
@@ -975,24 +976,12 @@ static irqreturn_t gsc_irq_handler(int irq, void *priv)
};
MODULE_DEVICE_TABLE(of, exynos_gsc_match);
-static void *gsc_get_drv_data(struct platform_device *pdev)
-{
- struct gsc_driverdata *driver_data = NULL;
- const struct of_device_id *match;
-
- match = of_match_node(exynos_gsc_match, pdev->dev.of_node);
- if (match)
- driver_data = (struct gsc_driverdata *)match->data;
-
- return driver_data;
-}
-
static int gsc_probe(struct platform_device *pdev)
{
struct gsc_dev *gsc;
struct resource *res;
- struct gsc_driverdata *drv_data = gsc_get_drv_data(pdev);
struct device *dev = &pdev->dev;
+ const struct gsc_driverdata *drv_data = of_device_get_match_data(dev);
int ret;
gsc = devm_kzalloc(dev, sizeof(struct gsc_dev), GFP_KERNEL);
Replace open-coded driver data extraction code with generic helper. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> --- drivers/media/platform/exynos-gsc/gsc-core.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-)