lkml.org 
[lkml]   [2012]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 26/41] TTY: use tty_port_link_device
    Date
    So now for those drivers that can use neither tty_port_install nor
    tty_port_register_driver but still have tty_port available before
    tty_register_driver we use newly added tty_port_link_device.

    The rest of the drivers that still do not provide tty_struct <->
    tty_port link will have to be converted to implement
    tty->ops->install.

    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    ---
    arch/alpha/kernel/srmcons.c | 1 +
    arch/ia64/hp/sim/simserial.c | 1 +
    arch/parisc/kernel/pdc_cons.c | 1 +
    arch/xtensa/platforms/iss/console.c | 1 +
    drivers/char/ttyprintk.c | 1 +
    drivers/s390/char/sclp_tty.c | 1 +
    drivers/s390/char/sclp_vt220.c | 1 +
    drivers/tty/amiserial.c | 9 +++++----
    drivers/tty/bfin_jtag_comm.c | 1 +
    drivers/tty/hvc/hvsi.c | 2 ++
    drivers/tty/serial/68328serial.c | 15 +++++++++------
    drivers/tty/serial/crisv10.c | 9 ++++++---
    12 files changed, 30 insertions(+), 13 deletions(-)

    diff --git a/arch/alpha/kernel/srmcons.c b/arch/alpha/kernel/srmcons.c
    index 3ea8094..5d58652 100644
    --- a/arch/alpha/kernel/srmcons.c
    +++ b/arch/alpha/kernel/srmcons.c
    @@ -223,6 +223,7 @@ srmcons_init(void)
    driver->subtype = SYSTEM_TYPE_SYSCONS;
    driver->init_termios = tty_std_termios;
    tty_set_operations(driver, &srmcons_ops);
    + tty_port_link_device(&srmcons_singleton.port, driver, 0);
    err = tty_register_driver(driver);
    if (err) {
    put_tty_driver(driver);
    diff --git a/arch/ia64/hp/sim/simserial.c b/arch/ia64/hp/sim/simserial.c
    index 1ce97f4..ec536e4 100644
    --- a/arch/ia64/hp/sim/simserial.c
    +++ b/arch/ia64/hp/sim/simserial.c
    @@ -545,6 +545,7 @@ static int __init simrs_init(void)
    /* the port is imaginary */
    printk(KERN_INFO "ttyS0 at 0x03f8 (irq = %d) is a 16550\n", state->irq);

    + tty_port_link_device(&state->port, hp_simserial_driver, 0);
    retval = tty_register_driver(hp_simserial_driver);
    if (retval) {
    printk(KERN_ERR "Couldn't register simserial driver\n");
    diff --git a/arch/parisc/kernel/pdc_cons.c b/arch/parisc/kernel/pdc_cons.c
    index 47341aa..8823863 100644
    --- a/arch/parisc/kernel/pdc_cons.c
    +++ b/arch/parisc/kernel/pdc_cons.c
    @@ -202,6 +202,7 @@ static int __init pdc_console_tty_driver_init(void)
    pdc_console_tty_driver->flags = TTY_DRIVER_REAL_RAW |
    TTY_DRIVER_RESET_TERMIOS;
    tty_set_operations(pdc_console_tty_driver, &pdc_console_tty_ops);
    + tty_port_link_device(&tty_port, pdc_console_tty_driver, 0);

    err = tty_register_driver(pdc_console_tty_driver);
    if (err) {
    diff --git a/arch/xtensa/platforms/iss/console.c b/arch/xtensa/platforms/iss/console.c
    index f9726f6..2cd3d3a 100644
    --- a/arch/xtensa/platforms/iss/console.c
    +++ b/arch/xtensa/platforms/iss/console.c
    @@ -223,6 +223,7 @@ int __init rs_init(void)
    serial_driver->flags = TTY_DRIVER_REAL_RAW;

    tty_set_operations(serial_driver, &serial_ops);
    + tty_port_link_device(&serial_port, serial_driver, 0);

    if (tty_register_driver(serial_driver))
    panic("Couldn't register serial driver\n");
    diff --git a/drivers/char/ttyprintk.c b/drivers/char/ttyprintk.c
    index 9e6272f..561f8aa 100644
    --- a/drivers/char/ttyprintk.c
    +++ b/drivers/char/ttyprintk.c
    @@ -198,6 +198,7 @@ static int __init ttyprintk_init(void)
    ttyprintk_driver->init_termios = tty_std_termios;
    ttyprintk_driver->init_termios.c_oflag = OPOST | OCRNL | ONOCR | ONLRET;
    tty_set_operations(ttyprintk_driver, &ttyprintk_ops);
    + tty_port_link_device(&tpk_port.port, ttyprintk_driver, 0);

    ret = tty_register_driver(ttyprintk_driver);
    if (ret < 0) {
    diff --git a/drivers/s390/char/sclp_tty.c b/drivers/s390/char/sclp_tty.c
    index 0792c85..30ec09e 100644
    --- a/drivers/s390/char/sclp_tty.c
    +++ b/drivers/s390/char/sclp_tty.c
    @@ -567,6 +567,7 @@ sclp_tty_init(void)
    driver->init_termios.c_lflag = ISIG | ECHO;
    driver->flags = TTY_DRIVER_REAL_RAW;
    tty_set_operations(driver, &sclp_ops);
    + tty_port_link_device(&sclp_port, driver, 0);
    rc = tty_register_driver(driver);
    if (rc) {
    put_tty_driver(driver);
    diff --git a/drivers/s390/char/sclp_vt220.c b/drivers/s390/char/sclp_vt220.c
    index edfc0fd..7e60f3d 100644
    --- a/drivers/s390/char/sclp_vt220.c
    +++ b/drivers/s390/char/sclp_vt220.c
    @@ -691,6 +691,7 @@ static int __init sclp_vt220_tty_init(void)
    driver->init_termios = tty_std_termios;
    driver->flags = TTY_DRIVER_REAL_RAW;
    tty_set_operations(driver, &sclp_vt220_ops);
    + tty_port_link_device(&sclp_vt220_port, driver, 0);

    rc = tty_register_driver(driver);
    if (rc)
    diff --git a/drivers/tty/amiserial.c b/drivers/tty/amiserial.c
    index 0e8441e..2acf199 100644
    --- a/drivers/tty/amiserial.c
    +++ b/drivers/tty/amiserial.c
    @@ -1710,10 +1710,6 @@ static int __init amiga_serial_probe(struct platform_device *pdev)
    serial_driver->flags = TTY_DRIVER_REAL_RAW;
    tty_set_operations(serial_driver, &serial_ops);

    - error = tty_register_driver(serial_driver);
    - if (error)
    - goto fail_put_tty_driver;
    -
    state = rs_table;
    state->port = (int)&custom.serdatr; /* Just to give it a value */
    state->custom_divisor = 0;
    @@ -1724,6 +1720,11 @@ static int __init amiga_serial_probe(struct platform_device *pdev)
    state->icount.overrun = state->icount.brk = 0;
    tty_port_init(&state->tport);
    state->tport.ops = &amiga_port_ops;
    + tty_port_link_device(&state->tport, serial_driver, 0);
    +
    + error = tty_register_driver(serial_driver);
    + if (error)
    + goto fail_put_tty_driver;

    printk(KERN_INFO "ttyS0 is the amiga builtin serial port\n");

    diff --git a/drivers/tty/bfin_jtag_comm.c b/drivers/tty/bfin_jtag_comm.c
    index 61fc74f..02b7d3a 100644
    --- a/drivers/tty/bfin_jtag_comm.c
    +++ b/drivers/tty/bfin_jtag_comm.c
    @@ -263,6 +263,7 @@ static int __init bfin_jc_init(void)
    bfin_jc_driver->subtype = SERIAL_TYPE_NORMAL;
    bfin_jc_driver->init_termios = tty_std_termios;
    tty_set_operations(bfin_jc_driver, &bfin_jc_ops);
    + tty_port_link_device(&port, bfin_jc_driver, 0);

    ret = tty_register_driver(bfin_jc_driver);
    if (ret)
    diff --git a/drivers/tty/hvc/hvsi.c b/drivers/tty/hvc/hvsi.c
    index 6f5bc49..0083bc1 100644
    --- a/drivers/tty/hvc/hvsi.c
    +++ b/drivers/tty/hvc/hvsi.c
    @@ -1080,6 +1080,8 @@ static int __init hvsi_init(void)
    struct hvsi_struct *hp = &hvsi_ports[i];
    int ret = 1;

    + tty_port_link_device(&hp->port, hvsi_driver, i);
    +
    ret = request_irq(hp->virq, hvsi_interrupt, 0, "hvsi", hp);
    if (ret)
    printk(KERN_ERR "HVSI: couldn't reserve irq 0x%x (error %i)\n",
    diff --git a/drivers/tty/serial/68328serial.c b/drivers/tty/serial/68328serial.c
    index cc4c092..66c38a3 100644
    --- a/drivers/tty/serial/68328serial.c
    +++ b/drivers/tty/serial/68328serial.c
    @@ -1189,12 +1189,6 @@ rs68328_init(void)
    serial_driver->flags = TTY_DRIVER_REAL_RAW;
    tty_set_operations(serial_driver, &rs_ops);

    - if (tty_register_driver(serial_driver)) {
    - put_tty_driver(serial_driver);
    - printk(KERN_ERR "Couldn't register serial driver\n");
    - return -ENOMEM;
    - }
    -
    local_irq_save(flags);

    for(i=0;i<NR_PORTS;i++) {
    @@ -1224,8 +1218,17 @@ rs68328_init(void)
    0,
    "M68328_UART", info))
    panic("Unable to attach 68328 serial interrupt\n");
    +
    + tty_port_link_device(&info->tport, serial_driver, i);
    }
    local_irq_restore(flags);
    +
    + if (tty_register_driver(serial_driver)) {
    + put_tty_driver(serial_driver);
    + printk(KERN_ERR "Couldn't register serial driver\n");
    + return -ENOMEM;
    + }
    +
    return 0;
    }

    diff --git a/drivers/tty/serial/crisv10.c b/drivers/tty/serial/crisv10.c
    index 708c3bf..8ea2081 100644
    --- a/drivers/tty/serial/crisv10.c
    +++ b/drivers/tty/serial/crisv10.c
    @@ -4447,10 +4447,8 @@ static int __init rs_init(void)

    tty_set_operations(driver, &rs_ops);
    serial_driver = driver;
    - if (tty_register_driver(driver))
    - panic("Couldn't register serial driver\n");
    - /* do some initializing for the separate ports */

    + /* do some initializing for the separate ports */
    for (i = 0, info = rs_table; i < NR_PORTS; i++,info++) {
    if (info->enabled) {
    if (cris_request_io_interface(info->io_if,
    @@ -4502,7 +4500,12 @@ static int __init rs_init(void)
    printk(KERN_INFO "%s%d at %p is a builtin UART with DMA\n",
    serial_driver->name, info->line, info->ioport);
    }
    + tty_port_link_device(&info->port, driver, i);
    }
    +
    + if (tty_register_driver(driver))
    + panic("Couldn't register serial driver\n");
    +
    #ifdef CONFIG_ETRAX_FAST_TIMER
    #ifdef CONFIG_ETRAX_SERIAL_FAST_TIMER
    memset(fast_timers, 0, sizeof(fast_timers));
    --
    1.7.10.4



    \
     
     \ /
      Last update: 2012-08-07 23:01    [W:0.033 / U:1.384 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site