Lines Matching defs:info
52 static void vibra_enable(struct vibra_info *info)
66 info->enabled = true;
69 static void vibra_disable(struct vibra_info *info)
82 info->enabled = false;
87 struct vibra_info *info = container_of(work,
93 dir = info->direction;
94 pwm = info->speed;
98 if (pwm && (!info->coexist || !(reg & TWL4030_VIBRA_SEL))) {
100 if (!info->enabled)
101 vibra_enable(info);
115 if (info->enabled)
116 vibra_disable(info);
125 struct vibra_info *info = input_get_drvdata(input);
127 info->speed = effect->u.rumble.strong_magnitude >> 8;
128 if (!info->speed)
129 info->speed = effect->u.rumble.weak_magnitude >> 9;
130 info->direction = effect->direction < EFFECT_DIR_180_DEG ? 0 : 1;
131 schedule_work(&info->play_work);
137 struct vibra_info *info = input_get_drvdata(input);
139 cancel_work_sync(&info->play_work);
141 if (info->enabled)
142 vibra_disable(info);
149 struct vibra_info *info = platform_get_drvdata(pdev);
151 if (info->enabled)
152 vibra_disable(info);
187 struct vibra_info *info;
195 info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL);
196 if (!info)
199 info->dev = &pdev->dev;
200 info->coexist = twl4030_vibra_check_coexist(pdata, twl4030_core_node);
201 INIT_WORK(&info->play_work, vibra_play_work);
203 info->input_dev = devm_input_allocate_device(&pdev->dev);
204 if (info->input_dev == NULL) {
209 input_set_drvdata(info->input_dev, info);
211 info->input_dev->name = "twl4030:vibrator";
212 info->input_dev->id.version = 1;
213 info->input_dev->close = twl4030_vibra_close;
214 __set_bit(FF_RUMBLE, info->input_dev->ffbit);
216 ret = input_ff_create_memless(info->input_dev, NULL, vibra_play);
222 ret = input_register_device(info->input_dev);
230 platform_set_drvdata(pdev, info);
234 input_ff_destroy(info->input_dev);