Commit e583bfbf authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Mauro Carvalho Chehab
Browse files

media: staging: atomisp: Switch to use struct device_driver directly



In a preparation of split PCI glue driver from core part, convert
the driver to use more generic struct device_driver.

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 9e993ed0
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -15,9 +15,9 @@
 *
 */

#include <linux/device.h>
#include <linux/err.h>
#include <linux/kernel.h>
#include <linux/pci.h>

#include "atomisp_compat.h"
#include "atomisp_internal.h"
@@ -33,7 +33,7 @@
 *        bit 2: memory statistic
*/
struct _iunit_debug {
	struct pci_driver	*drv;
	struct device_driver	*drv;
	struct atomisp_device	*isp;
	unsigned int		dbglvl;
	unsigned int		dbgfun;
@@ -164,26 +164,25 @@ static const struct driver_attribute iunit_drvfs_attrs[] = {
	__ATTR(dbgopt, 0644, iunit_dbgopt_show, iunit_dbgopt_store),
};

static int iunit_drvfs_create_files(struct pci_driver *drv)
static int iunit_drvfs_create_files(struct device_driver *drv)
{
	int i, ret = 0;

	for (i = 0; i < ARRAY_SIZE(iunit_drvfs_attrs); i++)
		ret |= driver_create_file(&(drv->driver),
					&iunit_drvfs_attrs[i]);
		ret |= driver_create_file(drv, &iunit_drvfs_attrs[i]);

	return ret;
}

static void iunit_drvfs_remove_files(struct pci_driver *drv)
static void iunit_drvfs_remove_files(struct device_driver *drv)
{
	int i;

	for (i = 0; i < ARRAY_SIZE(iunit_drvfs_attrs); i++)
		driver_remove_file(&(drv->driver), &iunit_drvfs_attrs[i]);
		driver_remove_file(drv, &iunit_drvfs_attrs[i]);
}

int atomisp_drvfs_init(struct pci_driver *drv, struct atomisp_device *isp)
int atomisp_drvfs_init(struct device_driver *drv, struct atomisp_device *isp)
{
	int ret;

@@ -193,7 +192,7 @@ int atomisp_drvfs_init(struct pci_driver *drv, struct atomisp_device *isp)
	ret = iunit_drvfs_create_files(iunit_debug.drv);
	if (ret) {
		dev_err(atomisp_dev, "drvfs_create_files error: %d\n", ret);
		iunit_drvfs_remove_files(drv);
		iunit_drvfs_remove_files(iunit_debug.drv);
	}

	return ret;
+2 −3
Original line number Diff line number Diff line
@@ -18,8 +18,7 @@
#ifndef	__ATOMISP_DRVFS_H__
#define	__ATOMISP_DRVFS_H__

extern int atomisp_drvfs_init(struct pci_driver *drv, struct atomisp_device
				*isp);
extern void atomisp_drvfs_exit(void);
int atomisp_drvfs_init(struct device_driver *drv, struct atomisp_device *isp);
void atomisp_drvfs_exit(void);

#endif /* __ATOMISP_DRVFS_H__ */
+1 −3
Original line number Diff line number Diff line
@@ -1152,8 +1152,6 @@ static int init_atomisp_wdts(struct atomisp_device *isp)
	return err;
}

static struct pci_driver atomisp_pci_driver;

#define ATOM_ISP_PCI_BAR	0

static int atomisp_pci_probe(struct pci_dev *dev,
@@ -1451,7 +1449,7 @@ static int atomisp_pci_probe(struct pci_dev *dev,
	isp->firmware = NULL;
	isp->css_env.isp_css_fw.data = NULL;

	atomisp_drvfs_init(&atomisp_pci_driver, isp);
	atomisp_drvfs_init(&dev->driver->driver, isp);

	return 0;