Hi all,

I am trying to backport Michael's patch to add PROBE and REMOVE ioctls
to 2.6.21
http://article.gmane.org/gmane.linux.drivers.i2c/3339/match=ioctls+probe

I have been able to add the IOCTLS and re-compile the kernel module, but
am confused as to what function to call in the old device model.  I
believe that I should use i2c_attach_client() from i2c-core.c.  Is this
correct?

This is what I have so far:

I2c-dev.c:
static int i2cdev_ioctl(struct inode *inode, struct file *file,
                unsigned int cmd, unsigned long arg)
{
        char   *colon, request[I2C_NAME_SIZE + 5];
        char   probeTemp[I2C_NAME_SIZE];
        int    addr;
...
        case I2C_PROBE:
                res = copy_from_user(request, (char *)arg,
sizeof(request));
                if (res)
                        return res;
                colon = strchr(request, ',');
                if((!colon) || (colon - request > I2C_NAME_SIZE - 1))
                        return -EINVAL;
                memset (probeTemp,0,sizeof(probeTemp)); // set the whole
buffer to 0 so that when the string is added it is automatically null
terminated.
                strncpy(probeTemp, request, colon - request);
                addr = simple_strtoul(colon + 1, NULL, 0);
                printk (KERN_ERR "got %s and %d\n",probeTemp,addr);
                printk (KERN_ERR "client info name: %s\n",
client->name);
                printk (KERN_ERR "client's adapter's name: %s\n",
client->adapter->name); // this is what probe wants
                /* Check for address business */
                if (i2c_check_addr(client->adapter, client->addr))
                        return -EBUSY;

??? What call to put here to probe the actual chip ???

                return 0;


Thanks!
Chuck
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to