mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
pps: Move timestamp read into PPS code proper
The PPS (Pulse-Per-Second) line discipline has developed a number of
unhealthy attachments to core tty data and functions, ultimately leading
to its breakage.
The previous patches fixed the crashing. This one reduces coupling further
by eliminating the timestamp parameter from the dcd_change ldisc method.
This reduces header file linkage and makes the extension more generic,
and the timestamp read is delayed only slightly, from just before the
ldisc->ops->dcd_change method call to just after.
Fix attendant build breakage in
drivers/tty/n_tty.c
drivers/tty/tty_buffer.c
drivers/staging/speakup/selection.c
drivers/staging/dgrp/dgrp_*.c
Cc: William Hubbs <[email protected]>
Cc: Chris Brannon <[email protected]>
Cc: Kirk Reiser <[email protected]>
Cc: Samuel Thibault <[email protected]>
Signed-off-by: Peter Hurley <[email protected]>
Signed-off-by: George Spelvin <[email protected]>
Acked-by: Rodolfo Giometti <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
parent
ce3da1a654
commit
593fb1ae45
9 changed files with 18 additions and 17 deletions
|
|
@ -29,11 +29,14 @@
|
|||
|
||||
#define PPS_TTY_MAGIC 0x0001
|
||||
|
||||
static void pps_tty_dcd_change(struct tty_struct *tty, unsigned int status,
|
||||
struct pps_event_time *ts)
|
||||
static void pps_tty_dcd_change(struct tty_struct *tty, unsigned int status)
|
||||
{
|
||||
struct pps_device *pps = pps_lookup_dev(tty);
|
||||
struct pps_device *pps;
|
||||
struct pps_event_time ts;
|
||||
|
||||
pps_get_ts(&ts);
|
||||
|
||||
pps = pps_lookup_dev(tty);
|
||||
/*
|
||||
* This should never fail, but the ldisc locking is very
|
||||
* convoluted, so don't crash just in case.
|
||||
|
|
@ -42,7 +45,7 @@ static void pps_tty_dcd_change(struct tty_struct *tty, unsigned int status,
|
|||
return;
|
||||
|
||||
/* Now do the PPS event report */
|
||||
pps_event(pps, ts, status ? PPS_CAPTUREASSERT :
|
||||
pps_event(pps, &ts, status ? PPS_CAPTUREASSERT :
|
||||
PPS_CAPTURECLEAR, NULL);
|
||||
|
||||
dev_dbg(pps->dev, "PPS %s at %lu\n",
|
||||
|
|
|
|||
Loading…
Reference in a new issue