1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2eadb86abSSebastian Ott #ifndef EADM_SCH_H 3eadb86abSSebastian Ott #define EADM_SCH_H 4eadb86abSSebastian Ott 56aa2677aSSebastian Ott #include <linux/completion.h> 6eadb86abSSebastian Ott #include <linux/device.h> 7eadb86abSSebastian Ott #include <linux/timer.h> 8eadb86abSSebastian Ott #include <linux/list.h> 9eadb86abSSebastian Ott #include "orb.h" 10eadb86abSSebastian Ott 11eadb86abSSebastian Ott struct eadm_private { 12eadb86abSSebastian Ott union orb orb; 13eadb86abSSebastian Ott enum {EADM_IDLE, EADM_BUSY, EADM_NOT_OPER} state; 146aa2677aSSebastian Ott struct completion *completion; 156aa2677aSSebastian Ott struct subchannel *sch; 16eadb86abSSebastian Ott struct timer_list timer; 17eadb86abSSebastian Ott struct list_head head; 18eadb86abSSebastian Ott } __aligned(8); 19eadb86abSSebastian Ott 20eadb86abSSebastian Ott #define get_eadm_private(n) ((struct eadm_private *)dev_get_drvdata(&n->dev)) 21eadb86abSSebastian Ott #define set_eadm_private(n, p) (dev_set_drvdata(&n->dev, p)) 22eadb86abSSebastian Ott 23eadb86abSSebastian Ott #endif 24