Lines Matching refs:mg

167 	struct msic_gpio *mg = irq_data_get_irq_chip_data(data);  in msic_irq_type()  local
168 u32 gpio = data->irq - mg->irq_base; in msic_irq_type()
170 if (gpio >= mg->chip.ngpio) in msic_irq_type()
174 mg->trig_change_mask |= (1 << gpio); in msic_irq_type()
175 mg->trig_type = type; in msic_irq_type()
182 struct msic_gpio *mg = container_of(chip, struct msic_gpio, chip); in msic_gpio_to_irq() local
183 return mg->irq_base + offset; in msic_gpio_to_irq()
188 struct msic_gpio *mg = irq_data_get_irq_chip_data(data); in msic_bus_lock() local
189 mutex_lock(&mg->buslock); in msic_bus_lock()
194 struct msic_gpio *mg = irq_data_get_irq_chip_data(data); in msic_bus_sync_unlock() local
202 if (mg->trig_change_mask) { in msic_bus_sync_unlock()
203 offset = __ffs(mg->trig_change_mask); in msic_bus_sync_unlock()
209 if (mg->trig_type & IRQ_TYPE_EDGE_RISING) in msic_bus_sync_unlock()
211 if (mg->trig_type & IRQ_TYPE_EDGE_FALLING) in msic_bus_sync_unlock()
215 mg->trig_change_mask = 0; in msic_bus_sync_unlock()
218 mutex_unlock(&mg->buslock); in msic_bus_sync_unlock()
238 struct msic_gpio *mg = irq_data_get_irq_handler_data(data); in msic_gpio_irq_handler() local
240 struct intel_msic *msic = pdev_to_intel_msic(mg->pdev); in msic_gpio_irq_handler()
246 for (i = 0; i < (mg->chip.ngpio / BITS_PER_BYTE); i++) { in msic_gpio_irq_handler()
252 generic_handle_irq(mg->irq_base + in msic_gpio_irq_handler()
263 struct msic_gpio *mg; in platform_msic_gpio_probe() local
278 mg = kzalloc(sizeof(*mg), GFP_KERNEL); in platform_msic_gpio_probe()
279 if (!mg) in platform_msic_gpio_probe()
282 dev_set_drvdata(dev, mg); in platform_msic_gpio_probe()
284 mg->pdev = pdev; in platform_msic_gpio_probe()
285 mg->irq = irq; in platform_msic_gpio_probe()
286 mg->irq_base = pdata->gpio_base + MSIC_GPIO_IRQ_OFFSET; in platform_msic_gpio_probe()
287 mg->chip.label = "msic_gpio"; in platform_msic_gpio_probe()
288 mg->chip.direction_input = msic_gpio_direction_input; in platform_msic_gpio_probe()
289 mg->chip.direction_output = msic_gpio_direction_output; in platform_msic_gpio_probe()
290 mg->chip.get = msic_gpio_get; in platform_msic_gpio_probe()
291 mg->chip.set = msic_gpio_set; in platform_msic_gpio_probe()
292 mg->chip.to_irq = msic_gpio_to_irq; in platform_msic_gpio_probe()
293 mg->chip.base = pdata->gpio_base; in platform_msic_gpio_probe()
294 mg->chip.ngpio = MSIC_NUM_GPIO; in platform_msic_gpio_probe()
295 mg->chip.can_sleep = true; in platform_msic_gpio_probe()
296 mg->chip.dev = dev; in platform_msic_gpio_probe()
298 mutex_init(&mg->buslock); in platform_msic_gpio_probe()
300 retval = gpiochip_add(&mg->chip); in platform_msic_gpio_probe()
306 for (i = 0; i < mg->chip.ngpio; i++) { in platform_msic_gpio_probe()
307 irq_set_chip_data(i + mg->irq_base, mg); in platform_msic_gpio_probe()
308 irq_set_chip_and_handler(i + mg->irq_base, in platform_msic_gpio_probe()
312 irq_set_chained_handler(mg->irq, msic_gpio_irq_handler); in platform_msic_gpio_probe()
313 irq_set_handler_data(mg->irq, mg); in platform_msic_gpio_probe()
317 kfree(mg); in platform_msic_gpio_probe()