Diff
Modified: trunk/drivers/media/video/blackfin/adv7183b.c (5988 => 5989)
--- trunk/drivers/media/video/blackfin/adv7183b.c 2009-01-09 14:02:48 UTC (rev 5988)
+++ trunk/drivers/media/video/blackfin/adv7183b.c 2009-01-09 15:13:55 UTC (rev 5989)
@@ -190,7 +190,7 @@
return 0;
}
-static int adv7183b_create_sysfs(struct video_device *v4ldev)
+static int adv7183b_create_sysfs(struct video_device *v4ldev, int action)
{
return 0;
}
Modified: trunk/drivers/media/video/blackfin/blackfin_cam.c (5988 => 5989)
--- trunk/drivers/media/video/blackfin/blackfin_cam.c 2009-01-09 14:02:48 UTC (rev 5988)
+++ trunk/drivers/media/video/blackfin/blackfin_cam.c 2009-01-09 15:13:55 UTC (rev 5989)
@@ -356,7 +356,7 @@
{
struct video_device *v4ldev = cam->videodev;
- return cam->cam_ops->create_sysfs(v4ldev);
+ return cam->cam_ops->create_sysfs(v4ldev, 1);
}
static int bcap_init_v4l(struct sensor_data *data)
@@ -444,7 +444,7 @@
if (!data->cam_ops) {
err = -ENODEV;
goto error_out;
- };
+ }
i2c_global_client = new_client = &data->client;
i2c_set_clientdata(new_client, data);
@@ -495,33 +495,23 @@
static int sensor_detach_client(struct i2c_client *client)
{
- struct sensor_data *data;
+ struct sensor_data *data = ""
int err;
- data = ""
-
data->cam_ops->cam_control(i2c_global_client, CAM_CMD_EXIT, 1);
+ data->cam_ops->create_sysfs(data->bcap_dev->videodev, 0);
if ((err = i2c_detach_client(client)))
return err;
video_unregister_device(data->bcap_dev->videodev);
- kfree(data->bcap_dev->videodev);
kfree(data->bcap_dev->ppidev);
kfree(data->bcap_dev);
-
kfree(data);
return 0;
}
-static int sensor_command(struct i2c_client *client, unsigned int cmd,
- void *arg)
-{
- /* as yet unimplemented */
- return -EINVAL;
-}
-
static struct i2c_driver sensor_driver = {
.driver = {
.name = SENSOR_NAME,
@@ -529,7 +519,6 @@
.id = I2C_DRIVERID_BCAP,
.attach_adapter = sensor_attach_adapter,
.detach_client = sensor_detach_client,
- .command = sensor_command,
};
#if 0
Modified: trunk/drivers/media/video/blackfin/blackfin_cam.h (5988 => 5989)
--- trunk/drivers/media/video/blackfin/blackfin_cam.h 2009-01-09 14:02:48 UTC (rev 5988)
+++ trunk/drivers/media/video/blackfin/blackfin_cam.h 2009-01-09 15:13:55 UTC (rev 5989)
@@ -214,7 +214,7 @@
struct bcap_camera_ops {
int (*cam_control) (struct i2c_client * client, u32 cmd, u32 arg);
- int (*create_sysfs) (struct video_device * v4ldev);
+ int (*create_sysfs) (struct video_device *v4ldev, int action);
int (*power) (u32 arg);
};
Modified: trunk/drivers/media/video/blackfin/mt9v022.c (5988 => 5989)
--- trunk/drivers/media/video/blackfin/mt9v022.c 2009-01-09 14:02:48 UTC (rev 5988)
+++ trunk/drivers/media/video/blackfin/mt9v022.c 2009-01-09 15:13:55 UTC (rev 5989)
@@ -342,7 +342,7 @@
static DEVICE_ATTR(v_mirror, S_IRUGO | S_IWUSR,
sysfs_v_mirror_show, sysfs_v_mirror_store);
-static int mt9v022_create_sysfs(struct video_device *v4ldev)
+static int mt9v022_create_sysfs(struct video_device *v4ldev, int action)
{
int rc;
Modified: trunk/drivers/media/video/blackfin/ov9655.c (5988 => 5989)
--- trunk/drivers/media/video/blackfin/ov9655.c 2009-01-09 14:02:48 UTC (rev 5988)
+++ trunk/drivers/media/video/blackfin/ov9655.c 2009-01-09 15:13:55 UTC (rev 5989)
@@ -340,7 +340,7 @@
static DEVICE_ATTR(v_mirror, S_IRUGO | S_IWUSR,
sysfs_v_mirror_show, sysfs_v_mirror_store);
-static int ov9655_create_sysfs(struct video_device *v4ldev)
+static int ov9655_create_sysfs(struct video_device *v4ldev, int action)
{
int rc;
Modified: trunk/drivers/media/video/blackfin/vs6524.c (5988 => 5989)
--- trunk/drivers/media/video/blackfin/vs6524.c 2009-01-09 14:02:48 UTC (rev 5988)
+++ trunk/drivers/media/video/blackfin/vs6524.c 2009-01-09 15:13:55 UTC (rev 5989)
@@ -494,10 +494,13 @@
static DEVICE_ATTR(v_mirror, S_IRUGO | S_IWUSR,
sysfs_v_mirror_show, sysfs_v_mirror_store);
-static int vs6524_create_sysfs(struct video_device *v4ldev)
+static int vs6524_create_sysfs(struct video_device *v4ldev, int action)
{
- int rc;
+ int rc = 0;
+ if (!action)
+ goto remove;
+
rc = device_create_file(&v4ldev->dev, &dev_attr_fps);
if (rc)
goto err;
@@ -513,6 +516,8 @@
return 0;
+remove:
+ device_remove_file(&v4ldev->dev, &dev_attr_h_mirror);
err_h_mirror:
device_remove_file(&v4ldev->dev, &dev_attr_v_mirror);
err_v_mirror:
Modified: trunk/drivers/media/video/blackfin/vs6624.c (5988 => 5989)
--- trunk/drivers/media/video/blackfin/vs6624.c 2009-01-09 14:02:48 UTC (rev 5988)
+++ trunk/drivers/media/video/blackfin/vs6624.c 2009-01-09 15:13:55 UTC (rev 5989)
@@ -588,10 +588,13 @@
static DEVICE_ATTR(v_mirror, S_IRUGO | S_IWUSR,
sysfs_v_mirror_show, sysfs_v_mirror_store);
-static int vs6624_create_sysfs(struct video_device *v4ldev)
+static int vs6624_create_sysfs(struct video_device *v4ldev, int action)
{
- int rc;
+ int rc = 0;
+ if (!action)
+ goto remove;
+
rc = device_create_file(&v4ldev->dev, &dev_attr_fps);
if (rc)
goto err;
@@ -607,6 +610,8 @@
return 0;
+remove:
+ device_remove_file(&v4ldev->dev, &dev_attr_h_mirror);
err_h_mirror:
device_remove_file(&v4ldev->dev, &dev_attr_v_mirror);
err_v_mirror: