Commit fbadf70a authored by Jiri Slaby's avatar Jiri Slaby Committed by Greg Kroah-Hartman

tty: set tty_ldisc_ops::num statically

There is no reason to pass the ldisc number to tty_register_ldisc
separately. Just set it in the already defined tty_ldisc_ops in all the
ldiscs.

This simplifies tty_register_ldisc a bit too (no need to set the num
member there).
Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
Cc: William Hubbs <w.d.hubbs@gmail.com>
Cc: Chris Brannon <chris@the-brannons.com>
Cc: Kirk Reiser <kirk@reisers.ca>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: Marcel Holtmann <marcel@holtmann.org>
Cc: Johan Hedberg <johan.hedberg@gmail.com>
Cc: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Wolfgang Grandegger <wg@grandegger.com>
Cc: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: Andreas Koensgen <ajk@comnets.uni-bremen.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Rodolfo Giometti <giometti@enneenne.com>
Cc: Peter Ujfalusi <peter.ujfalusi@gmail.com>
Cc: Liam Girdwood <lgirdwood@gmail.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Link: https://lore.kernel.org/r/20210505091928.22010-15-jslaby@suse.czSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 64d608db
...@@ -105,6 +105,7 @@ static int spk_ttyio_receive_buf2(struct tty_struct *tty, ...@@ -105,6 +105,7 @@ static int spk_ttyio_receive_buf2(struct tty_struct *tty,
static struct tty_ldisc_ops spk_ttyio_ldisc_ops = { static struct tty_ldisc_ops spk_ttyio_ldisc_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_SPEAKUP,
.name = "speakup_ldisc", .name = "speakup_ldisc",
.open = spk_ttyio_ldisc_open, .open = spk_ttyio_ldisc_open,
.close = spk_ttyio_ldisc_close, .close = spk_ttyio_ldisc_close,
...@@ -212,7 +213,7 @@ static int spk_ttyio_initialise_ldisc(struct spk_synth *synth) ...@@ -212,7 +213,7 @@ static int spk_ttyio_initialise_ldisc(struct spk_synth *synth)
void spk_ttyio_register_ldisc(void) void spk_ttyio_register_ldisc(void)
{ {
if (tty_register_ldisc(N_SPEAKUP, &spk_ttyio_ldisc_ops)) if (tty_register_ldisc(&spk_ttyio_ldisc_ops))
pr_warn("speakup: Error registering line discipline. Most synths won't work.\n"); pr_warn("speakup: Error registering line discipline. Most synths won't work.\n");
} }
......
...@@ -821,6 +821,7 @@ static __poll_t hci_uart_tty_poll(struct tty_struct *tty, ...@@ -821,6 +821,7 @@ static __poll_t hci_uart_tty_poll(struct tty_struct *tty,
static struct tty_ldisc_ops hci_uart_ldisc = { static struct tty_ldisc_ops hci_uart_ldisc = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_HCI,
.name = "n_hci", .name = "n_hci",
.open = hci_uart_tty_open, .open = hci_uart_tty_open,
.close = hci_uart_tty_close, .close = hci_uart_tty_close,
...@@ -840,7 +841,7 @@ static int __init hci_uart_init(void) ...@@ -840,7 +841,7 @@ static int __init hci_uart_init(void)
BT_INFO("HCI UART driver ver %s", VERSION); BT_INFO("HCI UART driver ver %s", VERSION);
/* Register the tty discipline */ /* Register the tty discipline */
err = tty_register_ldisc(N_HCI, &hci_uart_ldisc); err = tty_register_ldisc(&hci_uart_ldisc);
if (err) { if (err) {
BT_ERR("HCI line discipline registration failed. (%d)", err); BT_ERR("HCI line discipline registration failed. (%d)", err);
return err; return err;
......
...@@ -274,6 +274,7 @@ static void serport_ldisc_write_wakeup(struct tty_struct * tty) ...@@ -274,6 +274,7 @@ static void serport_ldisc_write_wakeup(struct tty_struct * tty)
static struct tty_ldisc_ops serport_ldisc = { static struct tty_ldisc_ops serport_ldisc = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_MOUSE,
.name = "input", .name = "input",
.open = serport_ldisc_open, .open = serport_ldisc_open,
.close = serport_ldisc_close, .close = serport_ldisc_close,
...@@ -294,7 +295,7 @@ static struct tty_ldisc_ops serport_ldisc = { ...@@ -294,7 +295,7 @@ static struct tty_ldisc_ops serport_ldisc = {
static int __init serport_init(void) static int __init serport_init(void)
{ {
int retval; int retval;
retval = tty_register_ldisc(N_MOUSE, &serport_ldisc); retval = tty_register_ldisc(&serport_ldisc);
if (retval) if (retval)
printk(KERN_ERR "serport.c: Error registering line discipline.\n"); printk(KERN_ERR "serport.c: Error registering line discipline.\n");
......
...@@ -845,6 +845,7 @@ static void st_tty_flush_buffer(struct tty_struct *tty) ...@@ -845,6 +845,7 @@ static void st_tty_flush_buffer(struct tty_struct *tty)
} }
static struct tty_ldisc_ops st_ldisc_ops = { static struct tty_ldisc_ops st_ldisc_ops = {
.num = N_TI_WL,
.name = "n_st", .name = "n_st",
.open = st_tty_open, .open = st_tty_open,
.close = st_tty_close, .close = st_tty_close,
...@@ -860,7 +861,7 @@ int st_core_init(struct st_data_s **core_data) ...@@ -860,7 +861,7 @@ int st_core_init(struct st_data_s **core_data)
struct st_data_s *st_gdata; struct st_data_s *st_gdata;
long err; long err;
err = tty_register_ldisc(N_TI_WL, &st_ldisc_ops); err = tty_register_ldisc(&st_ldisc_ops);
if (err) { if (err) {
pr_err("error registering %d line discipline %ld", pr_err("error registering %d line discipline %ld",
N_TI_WL, err); N_TI_WL, err);
......
...@@ -382,6 +382,7 @@ static void ldisc_close(struct tty_struct *tty) ...@@ -382,6 +382,7 @@ static void ldisc_close(struct tty_struct *tty)
/* The line discipline structure. */ /* The line discipline structure. */
static struct tty_ldisc_ops caif_ldisc = { static struct tty_ldisc_ops caif_ldisc = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_CAIF,
.name = "n_caif", .name = "n_caif",
.open = ldisc_open, .open = ldisc_open,
.close = ldisc_close, .close = ldisc_close,
...@@ -431,7 +432,7 @@ static int __init caif_ser_init(void) ...@@ -431,7 +432,7 @@ static int __init caif_ser_init(void)
{ {
int ret; int ret;
ret = tty_register_ldisc(N_CAIF, &caif_ldisc); ret = tty_register_ldisc(&caif_ldisc);
if (ret < 0) if (ret < 0)
pr_err("cannot register CAIF ldisc=%d err=%d\n", N_CAIF, ret); pr_err("cannot register CAIF ldisc=%d err=%d\n", N_CAIF, ret);
......
...@@ -698,6 +698,7 @@ static int slcan_ioctl(struct tty_struct *tty, struct file *file, ...@@ -698,6 +698,7 @@ static int slcan_ioctl(struct tty_struct *tty, struct file *file,
static struct tty_ldisc_ops slc_ldisc = { static struct tty_ldisc_ops slc_ldisc = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_SLCAN,
.name = "slcan", .name = "slcan",
.open = slcan_open, .open = slcan_open,
.close = slcan_close, .close = slcan_close,
...@@ -722,7 +723,7 @@ static int __init slcan_init(void) ...@@ -722,7 +723,7 @@ static int __init slcan_init(void)
return -ENOMEM; return -ENOMEM;
/* Fill in our line protocol discipline, and register it */ /* Fill in our line protocol discipline, and register it */
status = tty_register_ldisc(N_SLCAN, &slc_ldisc); status = tty_register_ldisc(&slc_ldisc);
if (status) { if (status) {
printk(KERN_ERR "slcan: can't register line discipline\n"); printk(KERN_ERR "slcan: can't register line discipline\n");
kfree(slcan_devs); kfree(slcan_devs);
......
...@@ -744,6 +744,7 @@ static int sixpack_ioctl(struct tty_struct *tty, struct file *file, ...@@ -744,6 +744,7 @@ static int sixpack_ioctl(struct tty_struct *tty, struct file *file,
static struct tty_ldisc_ops sp_ldisc = { static struct tty_ldisc_ops sp_ldisc = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_6PACK,
.name = "6pack", .name = "6pack",
.open = sixpack_open, .open = sixpack_open,
.close = sixpack_close, .close = sixpack_close,
...@@ -766,7 +767,8 @@ static int __init sixpack_init_driver(void) ...@@ -766,7 +767,8 @@ static int __init sixpack_init_driver(void)
printk(msg_banner); printk(msg_banner);
/* Register the provided line protocol discipline */ /* Register the provided line protocol discipline */
if ((status = tty_register_ldisc(N_6PACK, &sp_ldisc)) != 0) status = tty_register_ldisc(&sp_ldisc);
if (status)
printk(msg_regfail, status); printk(msg_regfail, status);
return status; return status;
......
...@@ -933,6 +933,7 @@ static void mkiss_write_wakeup(struct tty_struct *tty) ...@@ -933,6 +933,7 @@ static void mkiss_write_wakeup(struct tty_struct *tty)
static struct tty_ldisc_ops ax_ldisc = { static struct tty_ldisc_ops ax_ldisc = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_AX25,
.name = "mkiss", .name = "mkiss",
.open = mkiss_open, .open = mkiss_open,
.close = mkiss_close, .close = mkiss_close,
...@@ -952,7 +953,7 @@ static int __init mkiss_init_driver(void) ...@@ -952,7 +953,7 @@ static int __init mkiss_init_driver(void)
printk(banner); printk(banner);
status = tty_register_ldisc(N_AX25, &ax_ldisc); status = tty_register_ldisc(&ax_ldisc);
if (status != 0) if (status != 0)
printk(msg_regfail, status); printk(msg_regfail, status);
......
...@@ -372,6 +372,7 @@ ppp_asynctty_wakeup(struct tty_struct *tty) ...@@ -372,6 +372,7 @@ ppp_asynctty_wakeup(struct tty_struct *tty)
static struct tty_ldisc_ops ppp_ldisc = { static struct tty_ldisc_ops ppp_ldisc = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_PPP,
.name = "ppp", .name = "ppp",
.open = ppp_asynctty_open, .open = ppp_asynctty_open,
.close = ppp_asynctty_close, .close = ppp_asynctty_close,
...@@ -389,7 +390,7 @@ ppp_async_init(void) ...@@ -389,7 +390,7 @@ ppp_async_init(void)
{ {
int err; int err;
err = tty_register_ldisc(N_PPP, &ppp_ldisc); err = tty_register_ldisc(&ppp_ldisc);
if (err != 0) if (err != 0)
printk(KERN_ERR "PPP_async: error %d registering line disc.\n", printk(KERN_ERR "PPP_async: error %d registering line disc.\n",
err); err);
......
...@@ -365,6 +365,7 @@ ppp_sync_wakeup(struct tty_struct *tty) ...@@ -365,6 +365,7 @@ ppp_sync_wakeup(struct tty_struct *tty)
static struct tty_ldisc_ops ppp_sync_ldisc = { static struct tty_ldisc_ops ppp_sync_ldisc = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_SYNC_PPP,
.name = "pppsync", .name = "pppsync",
.open = ppp_sync_open, .open = ppp_sync_open,
.close = ppp_sync_close, .close = ppp_sync_close,
...@@ -382,7 +383,7 @@ ppp_sync_init(void) ...@@ -382,7 +383,7 @@ ppp_sync_init(void)
{ {
int err; int err;
err = tty_register_ldisc(N_SYNC_PPP, &ppp_sync_ldisc); err = tty_register_ldisc(&ppp_sync_ldisc);
if (err != 0) if (err != 0)
printk(KERN_ERR "PPP_sync: error %d registering line disc.\n", printk(KERN_ERR "PPP_sync: error %d registering line disc.\n",
err); err);
......
...@@ -1263,6 +1263,7 @@ static int sl_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) ...@@ -1263,6 +1263,7 @@ static int sl_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
static struct tty_ldisc_ops sl_ldisc = { static struct tty_ldisc_ops sl_ldisc = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_SLIP,
.name = "slip", .name = "slip",
.open = slip_open, .open = slip_open,
.close = slip_close, .close = slip_close,
...@@ -1298,7 +1299,7 @@ static int __init slip_init(void) ...@@ -1298,7 +1299,7 @@ static int __init slip_init(void)
return -ENOMEM; return -ENOMEM;
/* Fill in our line protocol discipline, and register it */ /* Fill in our line protocol discipline, and register it */
status = tty_register_ldisc(N_SLIP, &sl_ldisc); status = tty_register_ldisc(&sl_ldisc);
if (status != 0) { if (status != 0) {
printk(KERN_ERR "SLIP: can't register line discipline (err = %d)\n", status); printk(KERN_ERR "SLIP: can't register line discipline (err = %d)\n", status);
kfree(slip_devs); kfree(slip_devs);
......
...@@ -112,12 +112,13 @@ static int __init pps_tty_init(void) ...@@ -112,12 +112,13 @@ static int __init pps_tty_init(void)
/* Init PPS_TTY data */ /* Init PPS_TTY data */
pps_ldisc_ops.owner = THIS_MODULE; pps_ldisc_ops.owner = THIS_MODULE;
pps_ldisc_ops.num = N_PPS;
pps_ldisc_ops.name = "pps_tty"; pps_ldisc_ops.name = "pps_tty";
pps_ldisc_ops.dcd_change = pps_tty_dcd_change; pps_ldisc_ops.dcd_change = pps_tty_dcd_change;
pps_ldisc_ops.open = pps_tty_open; pps_ldisc_ops.open = pps_tty_open;
pps_ldisc_ops.close = pps_tty_close; pps_ldisc_ops.close = pps_tty_close;
err = tty_register_ldisc(N_PPS, &pps_ldisc_ops); err = tty_register_ldisc(&pps_ldisc_ops);
if (err) if (err)
pr_err("can't register PPS line discipline\n"); pr_err("can't register PPS line discipline\n");
else else
......
...@@ -2857,6 +2857,7 @@ static int gsm_create_network(struct gsm_dlci *dlci, struct gsm_netconfig *nc) ...@@ -2857,6 +2857,7 @@ static int gsm_create_network(struct gsm_dlci *dlci, struct gsm_netconfig *nc)
/* Line discipline for real tty */ /* Line discipline for real tty */
static struct tty_ldisc_ops tty_ldisc_packet = { static struct tty_ldisc_ops tty_ldisc_packet = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_GSM0710,
.name = "n_gsm", .name = "n_gsm",
.open = gsmld_open, .open = gsmld_open,
.close = gsmld_close, .close = gsmld_close,
...@@ -3242,7 +3243,7 @@ static const struct tty_operations gsmtty_ops = { ...@@ -3242,7 +3243,7 @@ static const struct tty_operations gsmtty_ops = {
static int __init gsm_init(void) static int __init gsm_init(void)
{ {
/* Fill in our line protocol discipline, and register it */ /* Fill in our line protocol discipline, and register it */
int status = tty_register_ldisc(N_GSM0710, &tty_ldisc_packet); int status = tty_register_ldisc(&tty_ldisc_packet);
if (status != 0) { if (status != 0) {
pr_err("n_gsm: can't register line discipline (err = %d)\n", pr_err("n_gsm: can't register line discipline (err = %d)\n",
status); status);
......
...@@ -788,6 +788,7 @@ static struct n_hdlc_buf *n_hdlc_buf_get(struct n_hdlc_buf_list *buf_list) ...@@ -788,6 +788,7 @@ static struct n_hdlc_buf *n_hdlc_buf_get(struct n_hdlc_buf_list *buf_list)
static struct tty_ldisc_ops n_hdlc_ldisc = { static struct tty_ldisc_ops n_hdlc_ldisc = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_HDLC,
.name = "hdlc", .name = "hdlc",
.open = n_hdlc_tty_open, .open = n_hdlc_tty_open,
.close = n_hdlc_tty_close, .close = n_hdlc_tty_close,
...@@ -807,7 +808,7 @@ static int __init n_hdlc_init(void) ...@@ -807,7 +808,7 @@ static int __init n_hdlc_init(void)
/* range check maxframe arg */ /* range check maxframe arg */
maxframe = clamp(maxframe, 4096, MAX_HDLC_FRAME_SIZE); maxframe = clamp(maxframe, 4096, MAX_HDLC_FRAME_SIZE);
status = tty_register_ldisc(N_HDLC, &n_hdlc_ldisc); status = tty_register_ldisc(&n_hdlc_ldisc);
if (!status) if (!status)
pr_info("N_HDLC line discipline registered with maxframe=%d\n", pr_info("N_HDLC line discipline registered with maxframe=%d\n",
maxframe); maxframe);
......
...@@ -40,6 +40,7 @@ static void n_null_receivebuf(struct tty_struct *tty, ...@@ -40,6 +40,7 @@ static void n_null_receivebuf(struct tty_struct *tty,
static struct tty_ldisc_ops null_ldisc = { static struct tty_ldisc_ops null_ldisc = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_NULL,
.name = "n_null", .name = "n_null",
.open = n_null_open, .open = n_null_open,
.close = n_null_close, .close = n_null_close,
...@@ -50,7 +51,7 @@ static struct tty_ldisc_ops null_ldisc = { ...@@ -50,7 +51,7 @@ static struct tty_ldisc_ops null_ldisc = {
static int __init n_null_init(void) static int __init n_null_init(void)
{ {
BUG_ON(tty_register_ldisc(N_NULL, &null_ldisc)); BUG_ON(tty_register_ldisc(&null_ldisc));
return 0; return 0;
} }
......
...@@ -2424,6 +2424,7 @@ static int n_tty_ioctl(struct tty_struct *tty, struct file *file, ...@@ -2424,6 +2424,7 @@ static int n_tty_ioctl(struct tty_struct *tty, struct file *file,
static struct tty_ldisc_ops n_tty_ops = { static struct tty_ldisc_ops n_tty_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_TTY,
.name = "n_tty", .name = "n_tty",
.open = n_tty_open, .open = n_tty_open,
.close = n_tty_close, .close = n_tty_close,
...@@ -2455,5 +2456,5 @@ EXPORT_SYMBOL_GPL(n_tty_inherit_ops); ...@@ -2455,5 +2456,5 @@ EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
void __init n_tty_init(void) void __init n_tty_init(void)
{ {
tty_register_ldisc(N_TTY, &n_tty_ops); tty_register_ldisc(&n_tty_ops);
} }
...@@ -59,17 +59,16 @@ static struct tty_ldisc_ops *tty_ldiscs[NR_LDISCS]; ...@@ -59,17 +59,16 @@ static struct tty_ldisc_ops *tty_ldiscs[NR_LDISCS];
* takes tty_ldiscs_lock to guard against ldisc races * takes tty_ldiscs_lock to guard against ldisc races
*/ */
int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc) int tty_register_ldisc(struct tty_ldisc_ops *new_ldisc)
{ {
unsigned long flags; unsigned long flags;
int ret = 0; int ret = 0;
if (disc < N_TTY || disc >= NR_LDISCS) if (new_ldisc->num < N_TTY || new_ldisc->num >= NR_LDISCS)
return -EINVAL; return -EINVAL;
raw_spin_lock_irqsave(&tty_ldiscs_lock, flags); raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
tty_ldiscs[disc] = new_ldisc; tty_ldiscs[new_ldisc->num] = new_ldisc;
new_ldisc->num = disc;
new_ldisc->refcount = 0; new_ldisc->refcount = 0;
raw_spin_unlock_irqrestore(&tty_ldiscs_lock, flags); raw_spin_unlock_irqrestore(&tty_ldiscs_lock, flags);
......
...@@ -636,7 +636,7 @@ static inline int tty_port_users(struct tty_port *port) ...@@ -636,7 +636,7 @@ static inline int tty_port_users(struct tty_port *port)
return port->count + port->blocked_open; return port->count + port->blocked_open;
} }
extern int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc); extern int tty_register_ldisc(struct tty_ldisc_ops *new_ldisc);
extern int tty_unregister_ldisc(int disc); extern int tty_unregister_ldisc(int disc);
extern int tty_set_ldisc(struct tty_struct *tty, int disc); extern int tty_set_ldisc(struct tty_struct *tty, int disc);
extern int tty_ldisc_receive_buf(struct tty_ldisc *ld, const unsigned char *p, extern int tty_ldisc_receive_buf(struct tty_ldisc *ld, const unsigned char *p,
......
...@@ -442,6 +442,7 @@ EXPORT_SYMBOL_GPL(nci_uart_set_config); ...@@ -442,6 +442,7 @@ EXPORT_SYMBOL_GPL(nci_uart_set_config);
static struct tty_ldisc_ops nci_uart_ldisc = { static struct tty_ldisc_ops nci_uart_ldisc = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.num = N_NCI,
.name = "n_nci", .name = "n_nci",
.open = nci_uart_tty_open, .open = nci_uart_tty_open,
.close = nci_uart_tty_close, .close = nci_uart_tty_close,
...@@ -456,7 +457,7 @@ static struct tty_ldisc_ops nci_uart_ldisc = { ...@@ -456,7 +457,7 @@ static struct tty_ldisc_ops nci_uart_ldisc = {
static int __init nci_uart_init(void) static int __init nci_uart_init(void)
{ {
return tty_register_ldisc(N_NCI, &nci_uart_ldisc); return tty_register_ldisc(&nci_uart_ldisc);
} }
static void __exit nci_uart_exit(void) static void __exit nci_uart_exit(void)
......
...@@ -396,6 +396,7 @@ static void cx81801_wakeup(struct tty_struct *tty) ...@@ -396,6 +396,7 @@ static void cx81801_wakeup(struct tty_struct *tty)
static struct tty_ldisc_ops cx81801_ops = { static struct tty_ldisc_ops cx81801_ops = {
.name = "cx81801", .name = "cx81801",
.num = N_V253,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.open = cx81801_open, .open = cx81801_open,
.close = cx81801_close, .close = cx81801_close,
...@@ -503,7 +504,7 @@ static int ams_delta_cx20442_init(struct snd_soc_pcm_runtime *rtd) ...@@ -503,7 +504,7 @@ static int ams_delta_cx20442_init(struct snd_soc_pcm_runtime *rtd)
} }
/* Register optional line discipline for over the modem control */ /* Register optional line discipline for over the modem control */
ret = tty_register_ldisc(N_V253, &cx81801_ops); ret = tty_register_ldisc(&cx81801_ops);
if (ret) { if (ret) {
dev_warn(card->dev, dev_warn(card->dev,
"Failed to register line discipline, " "Failed to register line discipline, "
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment