162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef EADM_SCH_H 362306a36Sopenharmony_ci#define EADM_SCH_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include <linux/completion.h> 662306a36Sopenharmony_ci#include <linux/device.h> 762306a36Sopenharmony_ci#include <linux/timer.h> 862306a36Sopenharmony_ci#include <linux/list.h> 962306a36Sopenharmony_ci#include "orb.h" 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_cistruct eadm_private { 1262306a36Sopenharmony_ci union orb orb; 1362306a36Sopenharmony_ci enum {EADM_IDLE, EADM_BUSY, EADM_NOT_OPER} state; 1462306a36Sopenharmony_ci struct completion *completion; 1562306a36Sopenharmony_ci struct subchannel *sch; 1662306a36Sopenharmony_ci struct timer_list timer; 1762306a36Sopenharmony_ci struct list_head head; 1862306a36Sopenharmony_ci} __aligned(8); 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci#define get_eadm_private(n) ((struct eadm_private *)dev_get_drvdata(&n->dev)) 2162306a36Sopenharmony_ci#define set_eadm_private(n, p) (dev_set_drvdata(&n->dev, p)) 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci#endif 24