18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef EADM_SCH_H 38c2ecf20Sopenharmony_ci#define EADM_SCH_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#include <linux/completion.h> 68c2ecf20Sopenharmony_ci#include <linux/device.h> 78c2ecf20Sopenharmony_ci#include <linux/timer.h> 88c2ecf20Sopenharmony_ci#include <linux/list.h> 98c2ecf20Sopenharmony_ci#include "orb.h" 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_cistruct eadm_private { 128c2ecf20Sopenharmony_ci union orb orb; 138c2ecf20Sopenharmony_ci enum {EADM_IDLE, EADM_BUSY, EADM_NOT_OPER} state; 148c2ecf20Sopenharmony_ci struct completion *completion; 158c2ecf20Sopenharmony_ci struct subchannel *sch; 168c2ecf20Sopenharmony_ci struct timer_list timer; 178c2ecf20Sopenharmony_ci struct list_head head; 188c2ecf20Sopenharmony_ci} __aligned(8); 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci#define get_eadm_private(n) ((struct eadm_private *)dev_get_drvdata(&n->dev)) 218c2ecf20Sopenharmony_ci#define set_eadm_private(n, p) (dev_set_drvdata(&n->dev, p)) 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci#endif 24