device_create_file(&client->dev, &dev_attr_dev_info);
/*Add By XXX*/
static ssize_t mobile_camera_show(struct device *dev, struct device_attribute *attr, char *buff)
{
char *buff_bak = buff;
struct v4l2_subdev *sd = dev_get_drvdata(dev);
struct b52_sensor *sensor = to_b52_sensor(sd);
buff += sprintf(buff, "name = %s", sensor->drvdata->name);
buff += sprintf(buff, ", position = %d", sensor->cur_mod_id);
return buff - buff_bak;
}
static DEVICE_ATTR(dev_info, S_IRUGO, mobile_camera_show, NULL);
/*End Add*/
static ssize_t mobile_camera_show(struct device *dev, struct device_attribute *attr, char *buff)
{
char *buff_bak = buff;
int i=0;
struct x_subdev *xsd = container_of(dev_get_drvdata(dev), struct x_subdev, subdev);
struct v4l2_subdev *sd = &(xsd->subdev);
struct i2c_client *client = v4l2_get_subdevdata(sd);
struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client);
struct sensor_board_data *sdata = ssdd->drv_priv;
buff += sprintf(buff, "name = %s", xsd->name);
/*if(!(strcmp(xsd->name,"sp0a20-pxa-mipi")))
i=1;
buff += sprintf(buff, ", position = %d", i);*/
buff += sprintf(buff, ", position = %d", (sdata->mount_pos & SENSOR_POS_FRONT) >> 1);
return buff - buff_bak;
}
static DEVICE_ATTR(dev_info, S_IRUGO, mobile_camera_show, NULL);