29 Dec, 2007

1 commit

  • We're exporting an __init function, oops :-)

    The core issue here is that add_preferred_console() is marked
    as __init, this makes it impossible to invoke this thing from
    a driver probe routine which is what the Sparc serial drivers
    need to do.

    There is no harm in dropping the __init marker. This code will
    actually work properly when invoked from a modular driver,
    except that init will probably not pick up the console change
    without some other support code.

    Then we can drop the __init from sunserial_console_match()
    and we're no longer exporting an __init function to modules.

    Signed-off-by: David S. Miller

    David S. Miller
     

12 Dec, 2007

1 commit

  • This patch against 2.6.23 sparc-2.6.git contains a number of minor
    cleanups of the sparc serial drivers. Initially I fixed this build
    warning:

    WARNING: vmlinux.o(.text+0x107a2c): Section mismatch: reference to .init.text:add_preferred_console (between 'sunserial_console_match' and 'sunserial_console_termios')

    which is done by declaring sunserial_console_match() as __init. This
    resulted in build warnings on sunserial_current_minor. To resolve
    these the variable was changed so it is no longer global, and to hide
    operations on it inside 2 new functions. These functions handle the
    UART minor handling code that is common to all sparc serial drivers.

    These changes allowed to clean up the uart counters in all the sparc
    serial drivers, and the administration of minor device numbers.

    Lastly, sunserial_console_termios() does not need to be exported since
    it is only called from non-modular code.

    Sadly, the following build warning still exists:

    WARNING: vmlinux.o(__ksymtab+0x2910): Section mismatch: reference to .init.text:sunserial_console_match (between '__ksymtab_sunserial_console_match' and '__ksymtab_sunserial_unregister_minors')

    This could be resolved by not exporting sunserial_console_match(), but
    this is not possible at the moment because it is being called from
    modular code. On the other hand, this is a bogus warning since it
    comes from a ksymtab section.

    Signed-off-by: Martin Habets
    Signed-off-by: David S. Miller

    Martin Habets
     

21 Jul, 2007

1 commit

  • The current scheme works on static interpretation of text names, which
    is wrong.

    The output-device setting, for example, must be resolved via an alias
    or similar to a full path name to the console device.

    Paths also contain an optional set of 'options', which starts with a
    colon at the end of the path. The option area is used to specify
    which of two serial ports ('a' or 'b') the path refers to when a
    device node drives multiple ports. 'a' is assumed if the option
    specification is missing.

    This was caught by the UltraSPARC-T1 simulator. The 'output-device'
    property was set to 'ttya' and we didn't pick upon the fact that this
    is an OBP alias set to '/virtual-devices/console'. Instead we saw it
    as the first serial console device, instead of the hypervisor console.

    The infrastructure is now there to take advantage of this to resolve
    the console correctly even in multi-head situations in fbcon too.

    Thanks to Greg Onufer for the bug report.

    Signed-off-by: David S. Miller

    David S. Miller
     

29 May, 2007

1 commit

  • The Linux kernel ignored the PROM's serial settings (115200,n,8,1 in
    my case). This was because mode_prop remained "ttyX-mode" (expected:
    "ttya-mode") due to the constness of string literals when used with
    "char *". Since there is no "ttyX-mode" property in the PROM, Linux
    always used the default 9600.

    [ Investigation of the suncore.s assembler reveals that gcc optimizied
    away the stores, yet did not emit a warning, which is a pretty
    anti-social thing to do and is the only reason this bug lived for
    so long -DaveM ]

    Signed-off-by: Jan Engelhardt
    Signed-off-by: David S. Miller

    Jan Engelhardt
     

01 Jul, 2006

1 commit


19 Jan, 2006

1 commit

  • From: Eddie C. Dost

    I have the following patch for serial console over the RSC
    (remote system controller) on my E250 machine. It basically adds
    support for input-device=rsc and output-device=rsc from OBP, and
    allows 115200,8,n,1,- serial mode setting.

    Signed-off-by: David S. Miller

    Eddie C. Dost
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds