Skip to content

Commit

Permalink
powerpc/pseries: Move hvsi support into a library
Browse files Browse the repository at this point in the history
This will allow a different backend to share it

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
  • Loading branch information
Benjamin Herrenschmidt committed Jun 29, 2011
1 parent 4d2bb3f commit 17bdc6c
Show file tree
Hide file tree
Showing 4 changed files with 482 additions and 385 deletions.
34 changes: 34 additions & 0 deletions arch/powerpc/include/asm/hvsi.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,5 +56,39 @@ struct hvsi_query_response {
} u;
} __attribute__((packed));

/* hvsi lib struct definitions */
#define HVSI_INBUF_SIZE 255
struct tty_struct;
struct hvsi_priv {
unsigned int inbuf_len; /* data in input buffer */
unsigned char inbuf[HVSI_INBUF_SIZE];
unsigned int inbuf_cur; /* Cursor in input buffer */
unsigned int inbuf_pktlen; /* packet lenght from cursor */
atomic_t seqno; /* packet sequence number */
unsigned int opened:1; /* driver opened */
unsigned int established:1; /* protocol established */
unsigned int is_console:1; /* used as a kernel console device */
unsigned int mctrl_update:1; /* modem control updated */
unsigned short mctrl; /* modem control */
struct tty_struct *tty; /* tty structure */
int (*get_chars)(uint32_t termno, char *buf, int count);
int (*put_chars)(uint32_t termno, const char *buf, int count);
uint32_t termno;
};

/* hvsi lib functions */
struct hvc_struct;
extern void hvsi_init(struct hvsi_priv *pv,
int (*get_chars)(uint32_t termno, char *buf, int count),
int (*put_chars)(uint32_t termno, const char *buf,
int count),
int termno, int is_console);
extern int hvsi_open(struct hvsi_priv *pv, struct hvc_struct *hp);
extern void hvsi_close(struct hvsi_priv *pv, struct hvc_struct *hp);
extern int hvsi_read_mctrl(struct hvsi_priv *pv);
extern int hvsi_write_mctrl(struct hvsi_priv *pv, int dtr);
extern void hvsi_establish(struct hvsi_priv *pv);
extern int hvsi_get_chars(struct hvsi_priv *pv, char *buf, int count);
extern int hvsi_put_chars(struct hvsi_priv *pv, const char *buf, int count);

#endif /* _HVSI_H */
2 changes: 1 addition & 1 deletion drivers/tty/hvc/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
obj-$(CONFIG_HVC_CONSOLE) += hvc_vio.o
obj-$(CONFIG_HVC_CONSOLE) += hvc_vio.o hvsi_lib.o
obj-$(CONFIG_HVC_OLD_HVSI) += hvsi.o
obj-$(CONFIG_HVC_ISERIES) += hvc_iseries.o
obj-$(CONFIG_HVC_RTAS) += hvc_rtas.o
Expand Down
Loading

0 comments on commit 17bdc6c

Please sign in to comment.