lkml.org 
[lkml]   [2010]   [Aug]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCHv3 15/16] pps: add parallel port PPS client
    On Thu,  5 Aug 2010 01:06:52 +0400
    Alexander Gordeev <lasaine@lvk.cs.msu.su> wrote:

    > Add parallel port PPS client. It uses a standard method for capturing
    > timestamps for assert edge transitions: getting a timestamp soon after
    > an interrupt has happened. This is not a very precise source of time
    > information due to interrupt handling delays. However, timestamps for
    > clear edge transitions are much more precise because the interrupt
    > handler continuously polls hardware port until the transition is done.
    > Hardware port operations require only about 1us so the maximum error
    > should not exceed this value. This was my primary goal when developing
    > this client.
    > Clear edge capture could be disabled using clear_wait parameter.
    >
    >
    > ...
    >
    > +
    > +#define SIGNAL_IS_SET(port) \
    > + ((port->ops->read_status(port) & PARPORT_STATUS_ACK) != 0)

    This could (and hence should) be implemented in a regular old C
    function.

    >
    > ...
    >
    > +{
    > + struct pps_client_pp *device;
    > + struct pps_source_info info = {
    > + .name = DRVNAME,
    > + .path = "",
    > + .mode = PPS_CAPTUREBOTH | \
    > + PPS_OFFSETASSERT | PPS_OFFSETCLEAR | \
    > + PPS_ECHOASSERT | PPS_ECHOCLEAR | \
    > + PPS_CANWAIT | PPS_TSFMT_TSPEC,
    > + .echo = pps_echo,
    > + .owner = THIS_MODULE,
    > + .dev = NULL
    > + };
    > +
    > + device = kzalloc(sizeof(struct pps_client_pp), GFP_KERNEL);
    > + if (!device) {
    > + pr_err(DRVNAME ": memory allocation failed, not attaching\n");
    > + return;

    eww. parport_driver.attach() returns void so there's no way to
    propagate the error code back. That sucks a bit.

    >
    > ...
    >


    \
     
     \ /
      Last update: 2010-08-05 01:37    [W:4.128 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site