..
static struct pm_ops my_pm = {
   prepare:  my_prepare,
   complete: my_complete,
   suspend:  my_suspend,
   resume:   my_resume,
   freeze:   my_freeze,
   thaw:     my_thaw,
   poweroff: my_poweroff,
   restore:  my_restore,
};
..
static int __init my_module_init(void)
{
   printk("my_module_init\n");
   if ((major = register_chrdev(0, "testdev", &fops))) {
       test_class = class_create(THIS_MODULE, "testclass");
       if (IS_ERR(test_class)) {
           printk("no udev support\n");
           unregister_chrdev(major, "testdev");
           return -EIO;
       }
       test_class->pm = &my_pm;
       device_create(test_class, NULL, MKDEV(major, 0), NULL, "lulu");
       return 0;
   }
   printk("loading failed\n");
   return -EIO;
}