Commit Graph

336560 Commits

Author SHA1 Message Date
Greg Kroah-Hartman
05e5027efc Staging: ipack: move out of staging
The ipack subsystem is cleaned up enough to now move out of the staging
tree, and into drivers/ipack.

Cc: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
Cc: Jens Taprogge <jens.taprogge@taprogge.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-16 08:14:18 -08:00
Samuel Iglesias Gonsalvez
76859725ad Staging: ipack: adapt copyright to CERN guidelines
Adapt the copyright clause to CERN guidelines, as it has the copyright over
them.

Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-16 08:09:08 -08:00
Alexandra Chin
a13ea24e20 staging: ste_rmi4: Convert to Type-B support
Convert to MT-B because Synaptics touch devices are capable
of tracking identifiable fingers.

Signed-off-by: Alexandra Chin <alexandra.chin@tw.synaptics.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-16 04:20:37 -08:00
Greg Kroah-Hartman
a369aa0eb7 Staging: ipack: remove last TODO items
The code is checkpatch clean, and the logic and flow looks good to me,
so I don't think there's anything left to do here.

Cc: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
Cc: Jens Taprogge <jens.taprogge@taprogge.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-15 17:55:24 -08:00
Greg Kroah-Hartman
bdbd3b38d3 Staging: ipack: CONFIG_HOTPLUG is always enabled
as CONFIG_HOTPLUG is always enabled now, just remove the #ifdef logic in
the ipack core for it if was disabled.

Cc:Samuel Iglesias Gonsalvez <siglesias@igalia.com>
Cc: Jens Taprogge <jens.taprogge@taprogge.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-15 17:50:14 -08:00
Harvey Yang
a6bb87522f usb: usbip: userspace: remove the port state file when detaching port.
with the last detached port state file remaining, usbip reports error on
attaching. So clean up the state files on detaching.

Signed-off-by: Harvey Yang <harvey.huawei.yang@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-15 17:47:29 -08:00
Malcolm Priestley
2a38e6fcf9 staging: vt6656: iwctl_giwaplist() re warn: possible memory leak of 'qual'
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-15 15:26:14 -08:00
Kumar Amit Mehta
4087641b25 staging: rtl8192e: rtl8192e: rtl_core.c: Audit the return value of register_netdev()
Inspect the return value of register_netdev() in the driver probe routine and
return -ENODEV in case of error.

Signed-off-by: Kumar Amit Mehta <gmate.amit@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-15 15:26:14 -08:00
H Hartley Sweeten
dba2939c8d staging: comedi: cb_pcidas64: use cfc_check_trigger_arg_*() helpers
Use the new helpers in the step 3 tests of {ai,ao}_cmdtest().

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 19:42:37 -08:00
Kumar Amit Mehta
36e97a5714 staging: rtl8187se: r8180_core.c: Inspect the return value of register_netdev()
Inspect the return value of register_netdev() in the driver probe routine and
return -ENODEV in case of error.

Signed-off-by: Kumar Amit Mehta <gmate.amit@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:34:58 -08:00
YAMANE Toshiaki
c17d37df98 staging/omapdrm: Fix spacing coding style in omap_plane.c
The following errors and warnings fixed.
- ERROR: code indent should use tabs where possible
- WARNING: please, no spaces at the start of a line

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:05 -08:00
YAMANE Toshiaki
373de7f4f7 staging/omapdrm: Fix spacing coding style in omap_plane.c
The following warning fixed.
- WARNING: braces {} are not necessary for single statement blocks

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:05 -08:00
YAMANE Toshiaki
4a19313c9d staging/omapdrm: Fix spacing coding style in omap_gem_helper.c
The following warning fixed.
- WARNING: braces {} are not necessary for single statement blocks

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:04 -08:00
YAMANE Toshiaki
b1ca079e7e staging/omapdrm: Fix spacing coding style in omap_gem_helper.c
The following error fixed.
- ERROR: "foo ** bar" should be "foo **bar"

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:04 -08:00
YAMANE Toshiaki
11d3d27b69 staging/omapdrm: Fix spacing coding style in omap_gem_dmabuf.c
The following errors fixed.
- ERROR: "foo * bar" should be "foo *bar"

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:04 -08:00
YAMANE Toshiaki
696e3ca30a staging/omapdrm: Fix spacing coding style in omap_gem.c
The following errors fixed.
- ERROR: space prohibited after that '!' (ctx:BxW)

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:04 -08:00
YAMANE Toshiaki
ae05303955 staging/omapdrm: Fix spacing coding style in omap_gem.c
The following warnings fixed.
- WARNING: braces {} are not necessary for single statement blocks

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:04 -08:00
YAMANE Toshiaki
801d5bc601 staging/omapdrm: Fix spacing coding style in omap_gem.c
The following error fixed.
- ERROR: "foo ** bar" should be "foo **bar"

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:04 -08:00
YAMANE Toshiaki
ddcd49ed6e staging/omapdrm: Fix spacing coding style in omap_fb.c
The following warnings fixed.
- WARNING: braces {} are not necessary for single statement blocks

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:03 -08:00
YAMANE Toshiaki
582bc28c2d staging/omapdrm: Fix spacing coding style in omap_encoder.c
The following warnings fixed.
- WARNING: braces {} are not necessary for single statement blocks

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:03 -08:00
YAMANE Toshiaki
bc1e158176 staging/omapdrm: Fix spacing coding style in omap_drv.h
The following warnings fixed.
- WARNING: braces {} are not necessary for single statement blocks

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:03 -08:00
YAMANE Toshiaki
7ced63cf7e staging/omapdrm: Fix spacing coding style in omap_drv.h
The following errors fixed.
- ERROR: "foo * bar" should be "foo *bar"

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:03 -08:00
YAMANE Toshiaki
c7f904b334 staging/omapdrm: Fix spacing coding style in omap_drv.c
The following warnings fixed.
- WARNING: braces {} are not necessary for single statement blocks

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:03 -08:00
YAMANE Toshiaki
d21a9d3ba5 staging/omapdrm: Fix spacing coding style in omap_crtc.c
The following warning fixed.
- WARNING: braces {} are not necessary for single statement blocks

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:03 -08:00
YAMANE Toshiaki
bd690dece9 staging/omapdrm: remove the unnecessary initialization of a local variable in omap_crtc.c
The following error fixed.
- ERROR: do not initialise statics to 0 or NULL

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:03 -08:00
YAMANE Toshiaki
fdbf20b3b0 staging/omapdrm: Fix spacing coding style in omap_connector.c
The following warnings fixed.
- WARNING: braces {} are not necessary for any arm of this statement
- WARNING: braces {} are not necessary for single statement blocks

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:31:02 -08:00
Stefan Hajnoczi
c6c2f47f30 staging: line6: drop unused CONFIG_LINE6_USB_DUMP_MIDI
Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:29:31 -08:00
Stefan Hajnoczi
10c39f1d71 staging: line6: drop MIDI from CONFIG_LINE6_USB_DUMP_ANY
CONFIG_LINE6_USB_DUMP_MIDI is no longer used by the code and therefore
no longer plays a role in CONFIG_LINE6_USB_DUMP_ANY.

Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:29:31 -08:00
Stefan Hajnoczi
36a01f4d97 staging: line6: drop MIDI dumping code
ALSA amidi(1) and aseqdump(1) can be used to dump MIDI instead of
manually dumping MIDI messages in the driver.  The advantage of using
these existing tools is that can be used at run-time rather than
compile-time.

Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:29:30 -08:00
Stefan Hajnoczi
4aea449ac8 staging: line6: drop unused CONFIG_LINE6_USB_DUMP_CTRL
Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:29:30 -08:00
Stefan Hajnoczi
19ae77935e staging: line6: drop CONTROL from CONFIG_LINE6_USB_DUMP_ANY
CONFIG_LINE6_USB_DUMP_CTRL is no longer used by the code and therefore
no longer plays a role in CONFIG_LINE6_USB_DUMP_ANY.

Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:29:30 -08:00
Stefan Hajnoczi
70ce93954f staging: line6: drop control URB dumping code
The usbmon feature should be used instead of manually dumping control
URBs.  There are a few advantages to using usbmon:

 * Can be turned on/off at runtime
 * Provides full USB-level traffic
 * tcpdump and wireshark support for powerful analysis
 * No driver-specific code is required

Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:29:30 -08:00
Bill Pemberton
8fdefcb0ab staging: dgrp: remove TIOCGSOFTCAR and TIOCSSOFTCAR handling
The TIOCGSOFTCAR and TIOCSSOFTCAR ioctls are handled by the tty layer
so the dgrp driver shouldn't try to deal with them itself.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:27:36 -08:00
Ian Abbott
581a7ddec1 staging: comedi: use inlines for PCI/USB auto config
Apart from the somewhat unnecessary `BUG_ON()` calls,
`comedi_pci_auto_config()` and `comedi_usb_auto_config()` are just
one-line wrappers around `comedi_auto_config()`, and
`comedi_pci_auto_unconfig()` and `comedi_usb_auto_unconfig()` are just
one-line wrappers around `comedi_auto_unconfig()`.  Convert them to
inline functions and remove the `BUG_ON()` calls.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:25:48 -08:00
Ian Abbott
ddbd029903 staging: comedi: remove attach_pci and attach_usb handlers
No comedi drivers set the `attach_pci()` or `attach_usb()` handlers in
their `struct comedi_driver` any longer as they have all been replaced
with an `auto_attach()` handler.  Also, no code calls the `attach_pci()`
or `attach_usb()` handlers any longer.  Remove them from `struct
comedi_driver`.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:25:48 -08:00
Ian Abbott
a588da1d5a staging: comedi: simplify comedi_auto_attach()
`comedi_auto_config()` just calls internal function
`comedi_auto_config_helper()`, passing it a wrapper function
`comedi_auto_config_wrapper()` to handle the specifics of checking and
calling the low-level comedi driver's `auto_attach()` handler.

Since there are no other callers of `comedi_auto_config_helper()` or
`comedi_auto_config_wrapper()`, combine everything into the single
exported function `comedi_auto_config()`.

Change the ordering of the check for existence of the low-level comedi
driver's `auto_attach()` handler and the allocation of the comedi minor
device number.  This means the log message warning of the absence of the
handler now has to be refer to the hardware device instead of the
not-yet-allocated comedi device.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:25:48 -08:00
Ian Abbott
af448aca8f staging: comedi: don't check driver->auto_attach
There is no need for `comedi_pci_auto_config()` and
`comedi_usb_auto_config()` to check that `driver->auto_attach` is
non-null before calling `comedi_auto_attach()` as this check is done by
`comedi_auto_config()` itself (actually by
`comedi_auto_config_wrapper()`).  Remove the unnecessary checks.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:25:47 -08:00
Ian Abbott
45d6f1965e staging: comedi: don't call attach_usb handler
All the Comedi drivers that call `comedi_usb_auto_config()` have
replaced the `attach_usb()` handler in their `struct comedi_driver` with
a `auto_attach()` handler, so there is no need to check for the
existence of the `attach_usb()` handler any more.  Remove this check and
the code that calls it.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:25:47 -08:00
Ian Abbott
a692e9743a staging: comedi: don't call attach_pci handler
All the Comedi drivers that call `comedi_pci_auto_config()` have
replaced the `attach_pci()` handler in their `struct comedi_driver` with
a `auto_attach()` handler, so there is no need to check for the
existence of the `attach_pci()` handler any more.  Remove this check and
the code that calls it.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:25:47 -08:00
Ian Abbott
847d74a260 staging: comedi: remove old auto-config
All the Comedi drivers that call `comedi_pci_auto_config()` or
`comedi_usb_auto_config()` define a `auto_attach()` handler in their
`struct comedi_driver`.  There is no need to fall back to abusing the
`attach()` handler any more, so remove the code that supports that.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:25:47 -08:00
Ian Abbott
206cb10816 staging: comedi: define operations for INSN_CONFIG_DIGITAL_TRIG
The 'addi_apci_1032' driver recently started supporting the
`INSN_CONFIG_DIGITAL_TRIG` configuration instruction, but as no other
drivers were using it before, there was no existing practice of how the
instruction should look.

Define the format to be something a bit more configurable.  In
particular, a subdevice might have more than one trigger requiring an ID
and/or `COMEDI_EV_...` flags to disambiguate them, a trigger might have
more than 32 inputs, and a trigger might need several
`INSN_CONFIG_DIGITAL_TRIG` configuration instructions to configure
completely (if there are more than 32 inputs or if it uses a combination
of edge-triggered and level-triggered inputs).

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:25:08 -08:00
Ian Abbott
b0a2b6d8ac staging: comedi: check data length for INSN_CONFIG_DIGITAL_TRIG
The newly defined format for the `INSN_CONFIG_DIGITAL_TRIG`
configuration instruction expects 6 data values.  Check the length in
`check_insn_config_length()` before calling the comedi subdevice's
`insn_config` handler.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:25:08 -08:00
Ian Abbott
33cdce6293 staging: comedi: addi_apci_1032: conform to new INSN_CONFIG_DIGITAL_TRIG
Conform to the new definition of the `INSN_CONFIG_DIGITAL_TRIG`
configuration instruction.

Return an error if the 'trigger number' in `data[1]` is non-zero or if
the configuration operation in `data[2]` is not supported.  Deal with
the 'left-shift' amount in `data[3]`.

The trigger's input channels can only be configured as a set of rising
and falling edges ('OR' mode) or as a set of high and low levels ('AND'
mode).  Preserve the old input channels to the right of the 'left-shift'
value except when switching modes.

(The 'left-shift' support is a bit of an overkill for this driver since
the trigger only has 16 input channels.)

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:25:08 -08:00
H Hartley Sweeten
c3be5c7f1e staging: comedi: ni_mio_common: use cfc_check_trigger_arg_*() helpers
Use the new helpers in the step 3 tests of ni_{ai,ao,cdio}_cmdtest().

Note that all the command triggers in ni_cdio_cmdtest are single source
so the extra tests are not required.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:23:20 -08:00
H Hartley Sweeten
7ec265905a staging: comedi: usbduxsigma: use cfc_check_trigger_arg_*() helpers
Use the new helpers in the step 3 tests of usbdux_{ai,ao}_cmdtest().

Also, remove some debug noise.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:23:20 -08:00
H Hartley Sweeten
9309c4772e staging: comedi: usbduxfast: use cfc_check_trigger_arg_*() helpers
Use the new helpers in the step 3 tests of usbduxfast_ai_cmdtest().

Also, remove some debug noise.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:23:20 -08:00
H Hartley Sweeten
f4d36c7a42 staging: comedi: usbdux: use cfc_check_trigger_arg_*() helpers
Use the new helpers in the step 3 tests of usbdux_{ai,ao}_cmdtest().

Also, remove some dev_dbg() noise.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:23:19 -08:00
H Hartley Sweeten
0cd0b8fde1 staging: comedi: skel: use cfc_check_trigger_arg_*() helpers
Use the new helpers in the step 3 tests of skel_ai_cmdtest().

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:23:19 -08:00
H Hartley Sweeten
53a254b92c staging: comedi: s626: use cfc_check_trigger_arg_*() helpers
Use the new helpers in the step 3 tests of s626_ai_cmdtest().

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:23:19 -08:00
H Hartley Sweeten
8a2b08ec90 staging: comedi: rtd520: use cfc_check_trigger_arg_*() helpers
Use the new helpers in the step 3 tests of rtd_ai_cmdtest().

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-14 16:23:19 -08:00