快乐星球持证驾驶员

快乐星球持证驾驶员

8个粉丝

4

问答

0

专栏

0

资料

快乐星球持证驾驶员  发布于  2023-11-09 15:52:26
采纳率 0%
4个问答
357

参数传递问题

struct ov426 {
        struct i2c_client       *client;
        struct clk              *xvclk;
        struct gpio_desc        *power_gpio;
        struct gpio_desc        *reset_gpio;
    ..................................
}
static int ov426_reinit(struct i2c_client *client)
{
        struct device *dev = &client->dev;
        ..................................
}

static DEVICE_ATTR(my_attr, S_IRUGO | S_IWUSR, my_attr_show, my_attr_store);

int add_sysfs_interfaces(struct device *dev)
{
         int result;
         struct class *my_class;

         my_class = class_create(THIS_MODULE, "my");
         if (IS_ERR(my_class)) {
                 pr_err("Failed to create class\n");
                 return PTR_ERR(my_class);
    }

         dev = device_create(my_class, NULL, MKDEV(0, 0), NULL, "sensor");
         result = device_create_file(dev, &dev_attr_my_attr);
         if (result) {
                 pr_err("Failed to create sysfs file\n");
                 class_destroy(my_class);
                 return result;
    }
         return 0;
}

static ssize_t my_attr_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
{
        int ret = -1;
        struct i2c_client *client;
        client = container_of(dev, struct i2c_client, dev);
    switch (buf[0])
    {
    case '0':
        mode = 0;
        ret = count;

        ov426_reinit(client);
        break;

    case '1':
        mode = 1;
        ret = count;

        ov426_reinit(client);
        break;

default:
        printk(KERN_INFO "%s: err paramater\n", __func__);
        break;
    }

    return ret;
}

代码逻辑这样,如果我要在my_attr_store函数中调用ov426_reinit函数时,参数应该怎么传递啊,求帮助,这一块有点混乱

我来回答
回答1个
时间排序
认可量排序

hale

9个粉丝

0

问答

1

专栏

0

资料

hale 2023-11-09 16:17:56 已获得 3.00 E币
认可0

static int ov426_reinit(struct i2c_client client)
{
struct device dev = &client->dev;
struct ov426 ov = i2c_get_clientdata(client);
…………………………….
}
static ssize_t my_attr_store(struct device dev, struct device_attribute attr, const char buf, size_t count)
{
int ret = -1;
struct i2c_client client;
client = container_of(dev, struct i2c_client, dev);
struct ov426 ov = i2c_get_clientdata(client);

    ov->xvclk = ...;
    ov->power_gpio = ... ;
    ov->reset_gpio = ...;
    ...

    ov426_reinit(client);
    ...

}

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区