Lines Matching refs:ams_info
32 struct ams ams_info; variable
41 u32 orient = ams_info.vflag? ams_info.orient1 : ams_info.orient2; in ams_sensors()
45 ams_info.get_xyz(y, x, z); in ams_sensors()
47 ams_info.get_xyz(x, y, z); in ams_sensors()
62 mutex_lock(&ams_info.lock); in ams_show_current()
64 mutex_unlock(&ams_info.lock); in ams_show_current()
75 spin_lock(&ams_info.irq_lock); in ams_handle_irq()
77 ams_info.worker_irqs |= irq; in ams_handle_irq()
78 schedule_work(&ams_info.worker); in ams_handle_irq()
80 spin_unlock(&ams_info.irq_lock); in ams_handle_irq()
105 mutex_lock(&ams_info.lock); in ams_worker()
107 spin_lock_irqsave(&ams_info.irq_lock, flags); in ams_worker()
108 irqs_to_clear = ams_info.worker_irqs; in ams_worker()
110 if (ams_info.worker_irqs & AMS_IRQ_FREEFALL) { in ams_worker()
114 ams_info.worker_irqs &= ~AMS_IRQ_FREEFALL; in ams_worker()
117 if (ams_info.worker_irqs & AMS_IRQ_SHOCK) { in ams_worker()
121 ams_info.worker_irqs &= ~AMS_IRQ_SHOCK; in ams_worker()
124 spin_unlock_irqrestore(&ams_info.irq_lock, flags); in ams_worker()
126 ams_info.clear_irq(irqs_to_clear); in ams_worker()
128 mutex_unlock(&ams_info.lock); in ams_worker()
138 prop = of_get_property(ams_info.of_node, "orientation", NULL); in ams_sensor_attach()
141 ams_info.orient1 = *prop; in ams_sensor_attach()
142 ams_info.orient2 = *(prop + 1); in ams_sensor_attach()
145 result = pmf_register_irq_client(ams_info.of_node, in ams_sensor_attach()
152 ams_info.worker_irqs = 0; in ams_sensor_attach()
155 result = pmf_register_irq_client(ams_info.of_node, in ams_sensor_attach()
162 ams_info.of_dev = of_platform_device_create(ams_info.of_node, "ams", NULL); in ams_sensor_attach()
163 if (!ams_info.of_dev) { in ams_sensor_attach()
169 result = device_create_file(&ams_info.of_dev->dev, &dev_attr_current); in ams_sensor_attach()
173 ams_info.vflag = !!(ams_info.get_vendor() & 0x10); in ams_sensor_attach()
182 device_remove_file(&ams_info.of_dev->dev, &dev_attr_current); in ams_sensor_attach()
184 of_device_unregister(ams_info.of_dev); in ams_sensor_attach()
196 spin_lock_init(&ams_info.irq_lock); in ams_init()
197 mutex_init(&ams_info.lock); in ams_init()
198 INIT_WORK(&ams_info.worker, ams_worker); in ams_init()
222 device_remove_file(&ams_info.of_dev->dev, &dev_attr_current); in ams_sensor_detach()
229 flush_work(&ams_info.worker); in ams_sensor_detach()
232 of_device_unregister(ams_info.of_dev); in ams_sensor_detach()
242 ams_info.exit(); in ams_exit()