mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-30 16:13:18 +00:00 
			
		
		
		
	 fce3a24e70
			
		
	
	
		fce3a24e70
		
	
	
	
	
		
			
			INIT_WORK() dropped the data arg, so now we have to stash an extra pointer and backpedal instead. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
		
			
				
	
	
		
			32 lines
		
	
	
		
			716 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			716 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __ASM_SH_PUSH_SWITCH_H
 | |
| #define __ASM_SH_PUSH_SWITCH_H
 | |
| 
 | |
| #include <linux/timer.h>
 | |
| #include <linux/interrupt.h>
 | |
| #include <linux/workqueue.h>
 | |
| #include <linux/platform_device.h>
 | |
| 
 | |
| struct push_switch {
 | |
| 	/* switch state */
 | |
| 	unsigned int		state:1;
 | |
| 	/* debounce timer */
 | |
| 	struct timer_list	debounce;
 | |
| 	/* workqueue */
 | |
| 	struct work_struct	work;
 | |
| 	/* platform device, for workqueue handler */
 | |
| 	struct platform_device	*pdev;
 | |
| };
 | |
| 
 | |
| struct push_switch_platform_info {
 | |
| 	/* IRQ handler */
 | |
| 	irqreturn_t		(*irq_handler)(int irq, void *data);
 | |
| 	/* Special IRQ flags */
 | |
| 	unsigned int		irq_flags;
 | |
| 	/* Bit location of switch */
 | |
| 	unsigned int		bit;
 | |
| 	/* Symbolic switch name */
 | |
| 	const char		*name;
 | |
| };
 | |
| 
 | |
| #endif /* __ASM_SH_PUSH_SWITCH_H */
 |