Commit Graph

3948 Commits

Author SHA1 Message Date
Brandon Philips
ce54093cef V4L/DVB (7494): videobuf-dma-sg.c: Avoid NULL dereference and add comment about backwards compatibility
Signed-off-by: Brandon Philips <bphilips@suse.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
Brandon Philips
137d1cb19d V4L/DVB (7493): videobuf: Avoid deadlock with QBUF and bring up to spec for empty queue
Add a waitqueue to wait on when there are no buffers in the buffer queue.
DQBUF waits on this queue without holding vb_lock to allow a QBUF to happen.
Once a buffer has been queued we recheck that the queue is still streaming and
wait on the new buffer's waitqueue while holding the vb_lock.  The driver
should come along in a timely manner and put the buffer into its next state
finishing the DQBUF.

By implementing this waitqueue it also brings the videobuf DQBUF up to spec and
it now blocks on O_NONBLOCK even when no buffers have been queued via QBUF:

"By default VIDIOC_DQBUF blocks when no buffer is in the outgoing queue."
 - V4L2 spec

Signed-off-by: Brandon Philips <bphilips@suse.de>
CC: Trent Piepho <xyzzy@speakeasy.org>
CC: Carl Karsten <carl@personnelware.com>
CC: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
Brandon Philips
78718e5d44 V4L/DVB (7492): vivi: Simplify the vivi driver and avoid deadlocks
vivi previously had a very complex queuing system and held spinlocks while
doing copy_to_user, kmalloc, etc.  This caused the driver to easily deadlock
when a multi-threaded application used it and revealed bugs in videobuf too.

This replaces the copy_to_user with memcpy since we were never copying to user
space addresses.  And makes the kmalloc atomic.

Signed-off-by: Brandon Philips <bphilips@suse.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
Brandon Philips
aa9dbac426 V4L/DVB (7491): vivi: make vivi openable only once
vivi currently doesn't have the infrastructure to handle being opened more than
one time and will crash if it is.  So, make it openable only once.

Signed-off-by: Brandon Philips <bphilips@suse.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
Brandon Philips
cbcb565f74 V4L/DVB (7489): videobuf-vmalloc.c: Remove buf_release from videobuf_vm_close
Remove the buf_release on vm_close because it will lead to a buffer being
released multiple times since all buffers are already freed under the two
possible cases: device close or STREAMOFF.

Signed-off-by: Brandon Philips <bphilips@suse.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
Brandon Philips
009a90597e V4L/DVB (7488): videobuf: Simplify videobuf_waiton logic and possibly avoid missed wakeup
Possible missed wakeup- use kernel helpers for wait queues
  http://www.mail-archive.com/linux-usb-devel@lists.sourceforge.net/msg27983.html

Signed-off-by: Brandon Philips <bphilips@suse.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
Brandon Philips
b608f4323a V4L/DVB (7487): videobuf: Wakeup queues after changing the state to ERROR
The waitqueues must be woken up every time state changes.

Signed-off-by: Brandon Philips <bphilips@suse.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
Michael Krufky
8eb8ff3870 V4L/DVB (7483): tuner-simple: fix broken build dependency
tuner-simple is the only module that uses tuner-types - these will be
merged to a single module in the future.  For now, build both of them
if TUNER_SIMPLE is selected.

This fixes the following build warning, if tuner-simple is selected
without tuner-types:

WARNING: "tuner_count" [tuner-simple.ko] undefined!
WARNING: "tuners" [tuner-simple.ko] undefined!

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
Michael Krufky
c735372f5d V4L/DVB (7481): tda18271: fix standard map debug
Show IF level and rf agc top settings in standard map dumps.

Dump standard map during attach if DBG_MAP or DBG_ADV is set.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
Adrian Bunk
762250f884 V4L/DVB (7480): make sn9c102_i2c_try_write() static
This patch makes the needlessly global sn9c102_i2c_try_write() static.

Signed-off-by: Adrian Bunk <bunk@kernel.org>
CC: Luca Risolia <luca.risolia@studio.unibo.it>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
Adrian Bunk
d9aedf1fe8 V4L/DVB (7479): proper prototype for zoran_device.c:zr36016_write()
This patch adds a proper prototype for zr36016_write() in
drivers/media/video/zoran_card.h

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
Darryl Green
5da4e2c645 V4L/DVB (7476): New USB ID for Leadtek DVB-T USB
Detect Leadtek Winfast USB DTV Dongle with ID of 0x6f01

Signed-off-by: Darryl Green <darryl.green@aanet.com.au>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
Alexander Simon
dc88807ed6 V4L/DVB (7475): Added support for Terratec Cinergy T USB XXS
Alexander Simon found out that the Terratec Cinergy T USB XXS is just a clone of another DiB7070P-based device.

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:56 -03:00
Patrick Boettcher
58e6f95e61 V4L/DVB (7474): support key repeat with dib0700 ir receiver
This patch enables support for repeating last event when a key is holded
down with dib0700 devices. It works with rc5 and nec remotes.
It also fixes an annoying bug that floods kernel log with "Unknown key"
messages after each keypress. This happened because the driver was not
resetting infrared register after each poll so it kept polling last key
even if nothing was being pressed. Fixing this, (calling rc_setup after
each poll), permits to implement key repeat.

Signed-off-by: Filippo Argiolas <filippo.argiolas at gmail.com>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:56 -03:00
Albert Comerma
6ca8f0b974 V4L/DVB (7473): PATCH for various Dibcom based devices
This patch introduces support for dvb-t for the following DiBcom based cards:

- Terratec Cinergy HT USB XE (USB-ID: 0ccd:0058)
- Terratec Cinergy HT Express (USB-ID: 0ccd:0060)
- Pinnacle 320CX (USB-ID: 2304:022e)
- Pinnacle PCTV72e (USB-ID: 2304:0236)
- Pinnacle PCTV73e (USB-ID: 2304:0237)
- Yuan EC372S (USB-ID: 1164:1edc)

Signed-off-by: Hans-Frieder Vogt <hfvogt@gmx.net>
Signed-off-by: Felix Apitzsch <F.Apitzsch@soz.uni-frankfurt.de>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Albert Comerma <albert.comerma@gmail.com>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:56 -03:00
Andre Weidemann
8c899bce2a V4L/DVB (7472): reworked patch to support TT connect S-2400
Added support for Technotrend connect S-2400.

Signed-off-by: Andre Weidemann <Andre.Weidemann@web.de>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:56 -03:00
Patrick Boettcher
ca06fa79a5 V4L/DVB (7470): CX24123: preparing support for CX24113 tuner
To support a new device based on CX24123 (using the CX24113-tuner) the following was done:

- added two parameters to de-select the internal PLL-driver (for CX24108) and a AGC-function callback.
- added a virtual i2c-adapter which allow simple access behind the i2c-gate
- cleanup up some code

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:56 -03:00
Patrick Boettcher
6394cf53ab V4L/DVB (7469): Preparation for supporting new devices, cleanup and saneness
To prepare the support for new device to the flexcop-family some preparation and cleanups was done + some saneness:

- created an i2c-adapter for each i2c-port available. Easier usage for devices with several device on different i2c-busses
- initialize i2c before doing the eeprom read
- changed the way to attach the different frontends, easier to read now
- enabled support for i2c-devices having no register address (1-byte access)

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:56 -03:00
Frej Drejhammar
0b5afdd2ea V4L/DVB (7463): cx88: Enable color killer by default
An enabled color killer will not degrade picture quality for color
input signals, only suppress bogus color information on
black-and-white input. Therefore enable it by default.

Signed-off-by: Frej Drejhammar <frej.drejhammar@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:56 -03:00
Mauro Carvalho Chehab
d69b2e41a5 V4L/DVB (7462): bttv: Fix some API non-compliances for some audio/input V4L2 calls
Thanks to Cyrill Gorcunov <gorcunov@gmail.com> for pointing this
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:56 -03:00
Roel Kluin
7bf9746d93 V4L/DVB (7459): Test cmd, not definition in decoder_command(), drivers/media/video/zoran_device.c
include/linux/video_decoder.h:
34:#define DECODER_SET_NORM	_IOW('d', 3, int)
35:#define DECODER_SET_INPUT	_IOW('d', 4, int)

untested, please confirm it's right.

Test cmd value, not definition of DECODER_SET_INPUT

Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:56 -03:00
Mauro Carvalho Chehab
95a2fdb6f7 V4L/DVB (7458): saa7134: Adds analog support for Avermedia A16D
Thanks to timf <timf@iinet.net.au>, "Richard (MQ)" <osl2008@googlemail.com> and
gian luca rasponi <lucarasp@inwind.it> for their tests.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:56 -03:00
Mauro Carvalho Chehab
cf8267ff10 V4L/DVB (7456): vivi: Add 32bit compatibility to the module
Thanks to Jiri Slaby <jirislaby@gmail.com> for pointing this issue.


Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:56 -03:00
Mauro Carvalho Chehab
0b86755f57 V4L/DVB (7455): cx88_dvb: qam doesn't apply on Kword ATSC 120
Thanks to Michael Krufky for pointing this.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:56 -03:00
Frej Drejhammar
1b879c4381 V4L/DVB (7454): cx88: Add user control for color killer
The cx2388x family has a color killer. This patch implements the
V4L2_CID_COLOR_KILLER control for the cx2388x family. By default the
color killer is disabled, as in previous versions of the driver.

Signed-off-by: "Frej Drejhammar <frej.drejhammar@gmail.com>"
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:56 -03:00
Frej Drejhammar
87a1738919 V4L/DVB (7452): cx88: Enable chroma AGC by default for all non-SECAM modes
An enabled chroma AGC will not degrade picture quality if enabled on a
color PAL or NTSC signal with nominal signal levels. It will give a
significant color reproduction improvement if the chroma signals
diverge from nominal levels. Therefore enable chroma AGC by default
for PAL and NTSC standards.

Signed-off-by: "Frej Drejhammar <frej.drejhammar@gmail.com>"
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Frej Drejhammar
6d04203c7f V4L/DVB (7451): cx88: Add user control for chroma AGC
The cx2388x family has support for chroma AGC. This patch implements a
the V4L2_CID_CHROMA_AGC control for the cx2388x family. By default
chroma AGC is disabled, as in previous versions of the driver.

Signed-off-by: "Frej Drejhammar <frej.drejhammar@gmail.com>"
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Marton Balint
b12203d253 V4L/DVB (7449): cx88: fix oops on module removal caused by IR worker
If the IR worker is not stopped before the removal of the cx88xx module,
an OOPS may occur, because the worker function cx88_ir_work gets called.
So stop the ir worker.

Signed-off-by: Marton Balint <cus@fazekas.hu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Mauro Carvalho Chehab
99e09eac25 V4L/DVB (7448): Add support for Kworld ATSC 120
This board has a s5h1409 demod, plus a xc30x8 tuner (probably, xc3018).

This patch adds proper support for radio, video, s-video, composite and ATSC.
However, support for radio and video depends on having s5h1409 i2c gate open,
otherwise, xc30x8 chip won't be visible.

For a better support, some rework is needed on cx88 driver, to allow adding
xc30x8 to i2c bus without sending i2c 0 byte reading to 0xc2 address.

Thanks to Vanessa Ezekowitz <vanessaezekowitz@gmail.com> for helping to figure
out the proper parameters for s5h1409 and the GPIO pins used by each
configuration.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Mike Isely
a2401d9eed V4L/DVB (7447): pvrusb2: Fix compilation warning
Fix use of a non-int (size_t) being passed in a printf width field.
This benign issue has apparently been around for a long time, but went
undetected until now.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Michael Krufky
2c4963d4fb V4L/DVB (7441): kconfig fixes for tuner-simple
Update Kconfig for the hybrid devices recently converted
to use tuner-simple rather than dvb-pll.

dvb-bt8xx no longer uses dvb-pll at all, so remove all
references to dvb-pll within that driver.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Michael Krufky
a03402d8ad V4L/DVB (7440): dvb-bt8xx: fix build error
Fix the following build error:

In file included from dvb-bt8xx.c:35:
dvb-bt8xx.h:42:26: error: tuner-simple.h: No such file or directory
dvb-bt8xx.c: In function 'frontend_init':
dvb-bt8xx.c:612: error: 'simple_tuner_attach' undeclared (first use in this function)
dvb-bt8xx.c:612: error: (Each undeclared identifier is reported only once
dvb-bt8xx.c:612: error: for each function it appears in.)
dvb-bt8xx.c:612: warning: type defaults to 'int' in declaration of '__a'
dvb-bt8xx.c:612: warning: type defaults to 'int' in declaration of 'type name'
dvb-bt8xx.c:612: warning: cast from pointer to integer of different size
dvb-bt8xx.c:612: warning: type defaults to 'int' in declaration of 'type name'
dvb-bt8xx.c:612: warning: cast from pointer to integer of different size
dvb-bt8xx.c:612: error: called object '__a' is not a function
dvb-bt8xx.c:696: warning: type defaults to 'int' in declaration of '__a'
dvb-bt8xx.c:696: warning: type defaults to 'int' in declaration of 'type name'
dvb-bt8xx.c:696: warning: cast from pointer to integer of different size
dvb-bt8xx.c:696: warning: type defaults to 'int' in declaration of 'type name'
dvb-bt8xx.c:696: warning: cast from pointer to integer of different size
dvb-bt8xx.c:696: error: called object '__a' is not a function

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Mauro Carvalho Chehab
5c913c0571 V4L/DVB (7439): tuner-xc2028: Adds an option to allow forcing to load an specific firmware name
There are a number of different firmware versions and variants, shipped
together with boards.

This patch adds an extra parameter to the tuner-xc2028 to allow specifying for
an specific firmware name to be loaded. This helps to test for a firmware that
better fits some board.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Michael Krufky
5ec96b0c80 V4L/DVB (7437): tda18271: increment module version minor
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Michael Krufky
868f5ccd64 V4L/DVB (7436): tda18271: add basic support for slave tuner configurations
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Michael Krufky
4efb0ca5d0 V4L/DVB (7435): tda18271: add function tda18271_charge_pump_source
Force the main pll charge pump or cal pll charge pump to source current
to the main pll loop filter or cal pll loop filter, respectively.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Michael Krufky
40194b2b1b V4L/DVB (7434): tda18271: set rfagc modes during channel configuration
Set rfagc to high speed mode before setting the pll.
Set rfagc to normal speed mode at the end of the function.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Michael Krufky
e7809a0766 V4L/DVB (7433): tda18271: fix comparison bug in tda18271_powerscan
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Michael Krufky
c0dc0c1122 V4L/DVB (7432): tda18271: allow device-specific configuration of rf agc top
allow device-specific configuration of rf agc rf top and if top

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:55 -03:00
Michael Krufky
14c74b23b6 V4L/DVB (7431): tda18271: allow device-specific configuration of IF level
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:54 -03:00
Michael Krufky
ae07d042f6 V4L/DVB (7430): tda18271: fix typo in tda18271_calibrate_rf
The internal calibration signal must be set on the cal pll.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:54 -03:00
Michael Krufky
e83ebb64ef V4L/DVB (7429): tda18271: write EP3 thru MD3 for image rejection low band initialization
Both the tda18271 c1 and c2 parts only need EP3 through MD3 to be written for
the image rejection calibration's low band initialization.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:54 -03:00
Michael Krufky
0c3ea9941c V4L/DVB (7427): dvb-pll: remove rf input module options
The ability to select RF input was a supported feature only available on
Philips TUV1236d and Philips FCV1236d.

This feature, along with support for the tuners that used it,
was moved into the tuner-simple module.

This can now be removed from dvb-pll.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:54 -03:00
Michael Krufky
b6fd549e50 V4L/DVB (7426): dvb-pll: renumber remaining description id's
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:54 -03:00
Michael Krufky
5e8556de79 V4L/DVB (7425): dvb-pll: remove dead code
remove #if 0'd support for:

Philips TUV1236D
Philips TD1316
Philips FMD1216ME
LG TDVS-H06xF
Philips FCV1236D
Thomson FE6600
Microtune 4042 FI5
Thomson dtt761x

Support for these tuners has been moved into the 'tuner-simple' module.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:54 -03:00
Michael Krufky
b7f81b2058 V4L/DVB (7424): dvb-pll: remove support for Philips TUV1236D
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:54 -03:00
Michael Krufky
ad561caafa V4L/DVB (7423): dvb-pll: remove support for Philips TD1316
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:54 -03:00
Michael Krufky
92d1069f3c V4L/DVB (7422): dvb-pll: remove support for Philips FMD1216ME
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:54 -03:00
Michael Krufky
75a791925d V4L/DVB (7421): dvb-pll: remove support for LG TDVS-H06xF
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:54 -03:00
Michael Krufky
89418750f7 V4L/DVB (7420): dvb-pll: remove support for Philips FCV1236D
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:54 -03:00