[lkml]   [2007]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: How to access correctly serial port inside module?
    Hash: SHA1

    Tilman Schmidt schrieb:
    > Am 03.06.2007 22:28 schrieb Lars K.W. Gohlke:
    >> Tilman Schmidt schrieb:
    >>> Am 17.05.2007 08:15 schrieb huang ying:
    >>>> I think the "serio" (through drivers/input/serio/serport.c) may be a
    >>>> choice too, like that in linux/drivers/input/mouse/sermouse.c, which
    >>>> is an example to program serial port in kernel space.
    >>> Interesting. I wonder if that would have been a better choice for
    >>> the Gigaset M101 driver. It seems even to have a probe mechanism
    >>> so one could try to determine if the expected device is really
    >>> connected to the port.
    >>> Is there any documentation on this interface? I find the source a
    >>> bit hard to understand, sparsely commented as it is.
    >> how can I open ttyS1 with major=4 and minor=65?
    > a) With "my" approach, ie. writing a line discipline, you open
    > /dev/ttyS1 in a user space program and then push your line discipline
    > onto it using ioctl(,TIOCSETD,).
    > b) With the "serio" approach, if the probe mechanism is really what
    > I think it is, you register your probe function and wait for it to
    > be called for each active serial port, then do your thing to determine
    > whether this is a/the port you want to use.
    >> Does anybody have some code to read from it the first e.g. 2bytes?
    > That's not how things work in the kernel. You don't "read the first
    > <n> bytes" at will. You have to provide means to process whatever
    > data happens to arrive on the serial port, as it arrives.
    > a) With a line discipline, you provide a callback function
    > ".receive_buf" which will be called by the serial driver if some
    > data has been received, and has to process that data then and there.
    > You might just stow it away in a buffer of course, provided you
    > are sure to get around to processing it later.
    > b) With the "serio" interface, it seems the ".interrupt" function
    > serves the same purpose - though, as I said, I am not really
    > competent on that topic.
    > HTH
    > T.
    ok because I want to handle it in kernel space I will no take option a)

    I will try it the way of b)

    anyway thx.
    Version: GnuPG v1.4.3 (MingW32) - GPGrelay v0.959

    -----END PGP SIGNATURE-----
    fn:Lars K.W. Gohlke
    n:Gohlke;Lars K.W.

     \ /
      Last update: 2007-06-06 10:29    [W:0.024 / U:3.276 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site