+static void rdstor_restart(char mode, const char *cmd)
+{
+ struct i2c_msg msg;
+ struct i2c_adapter *adap = i2c_get_adapter(1);
+ unsigned char buf[2];
+
+ if (!adap) {
+ printk(KERN_ERR "I2C adapter 1 not found\n");
+ return;
+ }
+
+ buf[0] = 0x01; /* cmd arg offset */
+ buf[1] = 0x00; /* 0 seconds delay */
+ msg.addr = 0x38;
+ msg.flags = 0;
+ msg.len = 2;
+ msg.buf = buf;
+
+ i2c_transfer(adap, &msg, 1);
+
+ printk(KERN_INFO "RDStor restarting...\n");
+
+ buf[0] = 0x00; /* cmd offset */
+ buf[1] = 0x04; /* reboot cmd */
+ msg.addr = 0x38;
+ msg.flags = 0;
+ msg.len = 2;
+ msg.buf = buf;
+
+ i2c_transfer(adap, &msg, 1);
+}
+