Age | Commit message (Collapse) | Author |
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
As pointed by Andrew Morton, the error testing were wrong. After reviewing
tea5767, it were returning a positive value for errors.
So, the double errors were cancelling each other.
This patch fix it properly. It also considers any positive value as ok, on
tuner-core.
CC: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Ingo Molnar <mingo@elte.hu>
x86.git randconfig testing found a build failure on latest -git:
drivers/built-in.o: In function `set_type':
tuner-core.c:(.text+0x2a9a26): undefined reference to `tea5761_attach'
tuner-core.c:(.text+0x2a9d05): undefined reference to `tda9887_attach'
tuner-core.c:(.text+0x2a9d51): undefined reference to `xc2028_attach'
tuner-core.c:(.text+0x2a9e22): undefined reference to `tda829x_attach'
tuner-core.c:(.text+0x2a9e3f): undefined reference to `microtune_attach'
drivers/built-in.o: In function `tuner_probe':
tuner-core.c:(.text+0x2aa18a): undefined reference to `tda829x_probe'
tuner-core.c:(.text+0x2aa302): undefined reference to `tea5761_autodetection'
with the following config:
http://redhat.com/~mingo/misc/config-Wed_Apr_30_10_21_40_CEST_2008.bad
the problem is caused by the drivers/media/common/tuners/ subdirectory
not being part of the kbuild hierarchy anymore, due to commit
7c91f0624 ("V4L/DVB(7767): Move tuners to common/tuners").
this seems similar to the problem also reported by Mike Galbraith.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Forgot to add this file again.
kernel-sync:
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
kernel-sync:
Auto generated by this script:
for i in `find drivers/media/ -name Kconfig`; do
cat $i |\
sed s,DVB_CORE_ATTACH,MEDIA_ATTACH,g |\
sed s,VIDEO_TUNER,MEDIA_TUNER,g |\
sed s,TUNER_SIMPLE,MEDIA_TUNER_SIMPLE,g |\
sed s,TUNER_TDA8290,MEDIA_TUNER_TDA8290,g |\
sed s,DVB_TDA827X,MEDIA_TUNER_TDA827X,g |\
sed s,DVB_TDA18271,MEDIA_TUNER_TDA18271,g |\
sed s,TUNER_TDA9887,MEDIA_TUNER_TDA9887,g |\
sed s,TUNER_TEA5761,MEDIA_TUNER_TEA5761,g |\
sed s,TUNER_TEA5767,MEDIA_TUNER_TEA5767,g |\
sed s,TUNER_MT20XX,MEDIA_TUNER_MT20XX,g |\
sed s,DVB_TUNER_MT2060,MEDIA_TUNER_MT2060,g |\
sed s,DVB_TUNER_MT2266,MEDIA_TUNER_MT2266,g |\
sed s,DVB_TUNER_MT2131,MEDIA_TUNER_MT2131,g |\
sed s,DVB_TUNER_QT1010,MEDIA_TUNER_QT1010,g |\
sed s,TUNER_XC2028,MEDIA_TUNER_XC2028,g |\
sed s,DVB_TUNER_XC5000,MEDIA_TUNER_XC5000,g >/tmp/temp_mv$$
mv /tmp/temp_mv$$ $i
done
for i in `find drivers/media/ -type f`; do
cat $i |\
sed s,CONFIG_DVB_CORE_ATTACH,CONFIG_MEDIA_ATTACH,g |\
sed s,CONFIG_VIDEO_TUNER,CONFIG_MEDIA_TUNER,g |\
sed s,CONFIG_TUNER_SIMPLE,CONFIG_MEDIA_TUNER_SIMPLE,g |\
sed s,CONFIG_TUNER_TDA8290,CONFIG_MEDIA_TUNER_TDA8290,g |\
sed s,CONFIG_DVB_TDA827X,CONFIG_MEDIA_TUNER_TDA827X,g |\
sed s,CONFIG_DVB_TDA18271,CONFIG_MEDIA_TUNER_TDA18271,g |\
sed s,CONFIG_TUNER_TDA9887,CONFIG_MEDIA_TUNER_TDA9887,g |\
sed s,CONFIG_TUNER_TEA5761,CONFIG_MEDIA_TUNER_TEA5761,g |\
sed s,CONFIG_TUNER_TEA5767,CONFIG_MEDIA_TUNER_TEA5767,g |\
sed s,CONFIG_TUNER_MT20XX,CONFIG_MEDIA_TUNER_MT20XX,g |\
sed s,CONFIG_DVB_TUNER_MT2060,CONFIG_MEDIA_TUNER_MT2060,g |\
sed s,CONFIG_DVB_TUNER_MT2266,CONFIG_MEDIA_TUNER_MT2266,g |\
sed s,CONFIG_DVB_TUNER_MT2131,CONFIG_MEDIA_TUNER_MT2131,g |\
sed s,CONFIG_DVB_TUNER_QT1010,CONFIG_MEDIA_TUNER_QT1010,g |\
sed s,CONFIG_TUNER_XC2028,CONFIG_MEDIA_TUNER_XC2028,g |\
sed s,CONFIG_DVB_TUNER_XC5000,CONFIG_MEDIA_TUNER_XC5000,g >/tmp/temp_mv$$
mv /tmp/temp_mv$$ $i
done
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Due to the feedback I got, I've changed the -git patch. This needs to be
reflected also at -hg tree.
kernel-sync:
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
kernel-sync:
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
kernel-sync:
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Those tuners are currently used only under media/dvb. However,
they can support also analog TV. Better to move them to the same place
as the other hybrid tuners. This would make easier to use those tuners also
by analog drivers.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
Move tuners to common/tuners
There were several issues in the past, caused by the hybrid tuner design, since
now, the same tuner can be used by drivers/media/dvb and drivers/media/video.
This patch moves those common tuners into a common dir. It also moves saa7146
driver into drivers/media/video, where other hybrid drivers are placed.
Kconfig items were rearranged, to split V4L/DVB core from their drivers.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Dmitry Belimov <d.belimov@gmail.com>
Beholder TV/FM tuners:
Changes:
Add support Beholder Columbus PCMCIA card.
Add key map for remote control of Beholder Columbus PCMCIA card.
Fix gpiomask for all Beholder tuners.
Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Ivan Bobyr <brefi@yandex.ru>
The patch extends the default keymap of FlyVIdeo2000 IR remote control so that
this remote may also serve movie & music players in a better way.
I bought a SAA7130 TV tuner with a remote control having 3 additional button
as the default layout, exactly as:
1) labeled "<<<" : key code 0x19, may be used as "backward"in MPlayer,XMMS etc
2) labeled ">>>" : key code 0x1f, may be used as "forward"...
3) not labeled : key code 0x0a, may be used as "pause"...
Once have added these code definitions to the kernel, me got all these
operations available for viewing movies & listening music.
Signed-off-by : Ivan Bobyr <brefi@yandex.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Original patch from Al Viro <viro@ftp.linux.org.uk>
Date: Sat Mar 29 03:07:38 2008 +0000
NULL noise: drivers/media
kernel-sync:
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Harvey Harrison <harvey.harrison@gmail.com>
__FUNCTION__ is gcc-specific, use __func__
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Acked-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
|
|
From: Dâniel Fraga <fragabr@gmail.com>
The attached patch adds complete remote control support for
Powercolor Real Angel 330.
Signed-off-by: Daniel Fraga <fragabr@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Lacy <mauro@lacy.com.ar>
Signed-off-by: Mauro Lacy <mauro@lacy.com.ar>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Harvey Harrison <harvey.harrison@gmail.com>
Went along with the existing file style.
drivers/media/common/saa7146_core.c:309:6: warning: Using plain integer as NULL pointer
drivers/media/common/saa7146_core.c:311:8: warning: Using plain integer as NULL pointer
drivers/media/common/saa7146_core.c:319:7: warning: Using plain integer as NULL pointer
drivers/media/common/saa7146_core.c:319:28: warning: Using plain integer as NULL pointer
drivers/media/common/saa7146_core.c:325:7: warning: Using plain integer as NULL pointer
drivers/media/common/saa7146_core.c:325:28: warning: Using plain integer as NULL pointer
drivers/media/common/saa7146_fops.c:275:12: warning: Using plain integer as NULL pointer
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
Subject: Convert videobuf-dma-sg to generic DMA API
Date: Tue, 19 Feb 2008 13:40:54 +0100 (CET)
videobuf-dma-sg does not need to depend on PCI. Switch it to using generic
DMA API, convert all affected drivers, relax Kconfig restriction, improve
compile-time type checking, fix some Coding Style violations while at it.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@pengutronix.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Adrian Pardini <pardo.bsso@gmail.com>
Signed-off-by: Adrian Pardini <pardo.bsso@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Original changelog:
Author: Joe Perches <joe@perches.com>
Date: Sun Feb 3 17:18:59 2008 +0200
drivers/media/: Spelling fixes
kernel-sync:
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
As pointed by Adrian Bunk, with I2C=m and VIDEO_DEV=y, videodev brokes.
This patch moves the functions that videodev needs from v4l2-common. It also
fixes some Kconfig changes.
After this patch, I2C=m / VIDEO_DEV=y will make v4l2 core statically linked
into kernel. v4l2-common will be m, and all V4L drivers will also be m.
This approach is very conservative, since it is possible to have V4L drivers
that don't need I2C or v4l2-common. The better is to map what drivers really
need v4l2-common, making them to select v4l2-common, and allowing the others to
be 'y', 'm' and 'n'.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Removes the duplicated mutex_init code.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Douglas Schilling Landgraf <dougsland@gmail.com>
- Static memory is always initialized with 0.
- Replaced in some cases C99 comments for /* */
Signed-off-by: Douglas Schilling Landgraf <dougsland@gmail.com>
|
|
From: Steven Toth <stoth@hauppauge.com>
IR corrections for the Pinnacle 800i
Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Chaogui Zhang <czhang1974@gmail.com>
|
|
From: Julia Lawall <julia@diku.dk>
Video_device_alloc returns the result of a kzalloc. In this case, the
value is stored in a local variable which is not copied elsewhere before
the point of the error return (video_register_device does not save its
first argument anywhere if it returns a negative value). Thus, a
video_device_release it needed before the error return.
The problem was found using the following semantic match.
(http://www.emn.fr/x-info/coccinelle/)
// <smpl>
@@
type T,T1,T2;
identifier E;
statement S;
expression x1,x2,x3;
int ret;
@@
T E;
...
* E = video_device_alloc(...);
if (E == NULL) S
... when != video_device_release(...,(T1)E,...)
when != if (E != NULL) { ... video_device_release(...,(T1)E,...); ...}
when != x1 = (T1)E
when != E = x3;
when any
if (...) {
... when != video_device_release(...,(T2)E,...)
when != if (E != NULL) { ... video_device_release(...,(T2)E,...); ...}
when != x2 = (T2)E
(
* return;
|
* return ret;
)
}
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
CC: Oliver Endriss <o.endriss@gmx.de>
CC: Michael Hunold <michael@mihu.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Andrey J. Melnikoff (TEMHOTA) <temnota@kmv.ru>
This patch updates cardlist for Beholder TV tuners:
old models (with GPIO ir) 401, 403, 405, 407, 409, 505, 507
and add support for 607, 609, M6 cards with new i2c-ir.
Signed-off-by: Igor Kuznetsov <igk72@yandex.ru>
Signed-off-by: Andrey J. Melnikov <temnota@kmv.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
kernel-sync:
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Michel Lespinasse <walken@zoy.org>
This change adds support for 4 extra keys on the remote currently being
shipped by leadtek with their "WinFast TV2000 XP/Expert" and
"WinFast PVR2000" cards. The remote P/N seems to be Y04G0033 and
you can see a picture of it here: http://lespinasse.org/y04g0033.jpg
The extra keys are at the bottom and are labeled MCE +VOL, -VOL, +CH, -CH.
I chose to map them to the F21-F24 keycodes, following the precedent of
ir_codes_gotview7135[], so as to differentiate these 'MCE' keys from the
other +VOL, -VOL, +CH, -CH 'arrow' keys higher up on the remote.
Signed-off-by: Michel Lespinasse <walken@zoy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
Fallout from videobuf_mmap_setup() locking fixes.
Signed-off-by: Brandon Philips <bphilips@suse.de>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
- Add comments to functions that require that caller hold q->lock
- Add __videobuf_mmap_free that doesn't hold q->lock for use within videobuf
- Add locking to videobuf_mmap_free
- Fix linux/drivers/media/common/saa7146_video.c which was holding lock around
videobuf_read_stop
- Add locking to functions that operate on a queue
- Add videobuf_stop to take care of stopping in both the read and stream case
TODO: bttv still has an unsafe call to videobuf_queue_is_busy
Signed-off-by: Brandon Philips <bphilips@suse.de>
|
|
s/STATE_NEEDS_INIT/VIDEOBUF_NEEDS_INIT/g
s/STATE_PREPARED/VIDEOBUF_PREPARED/g
s/STATE_QUEUED/VIDEOBUF_QUEUED/g
s/STATE_ACTIVE/VIDEOBUF_ACTIVE/g
s/STATE_DONE/VIDEOBUF_DONE/g
s/STATE_ERROR/VIDEOBUF_ERROR/g
s/STATE_IDLE/VIDEOBUF_IDLE/g
Signed-off-by: Brandon Philips <bphilips@suse.de>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
kernel-sync:
Backport kernel changesets:
45711f1af6eff1a6d010703b4862e0d2b9afd056
117636092a87a28a013a4acb5de5492645ed620f
642f149031d70415d9318b919d50b71e4724adbd
Also, added newer entreis at compat.h, to avoid needing to add checks for linux
versions inside the source codes.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
kernel-sync:
Author: Jan Engelhardt <jengelh@gmx.de>
Date: Fri Oct 19 23:21:04 2007 +0200
Convert files to UTF-8 and some cleanups
* Convert files to UTF-8.
* Also correct some people's names
(one example is Eißfeldt, which was found in a source file.
Given that the author used an ß at all in a source file
indicates that the real name has in fact a 'ß' and not an 'ss',
which is commonly used as a substitute for 'ß' when limited to
7bit.)
* Correct town names (Goettingen -> Göttingen)
* Update Eberhard Mönkeberg's address (http://lkml.org/lkml/2007/1/8/313)
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Trent Piepho <xyzzy@speakeasy.org>
The ttpci Kconfig file has bugs that cause it to fail in certain Kconfig
situations. The basic problem is that it selects certain drivers, but does
not depend on the dependencies of those drivers.
See http://article.gmane.org/gmane.comp.video.video4linux/35072
Using the Kconfig file also has some annoyances. For instance one can't turn
off AV7110 support unless you go down several options and first turn off
budget-patch support. Normally user selectable drivers are not forced on like
this.
The "AV7110 cards with Budget Patch" option is disabled if "Budget cards"
isn't on. Normally a driver appears nested under a driver it depends on, but
since drivers that don't depend on "Budget cards" are between the two options,
the config programs can't display the tree correctly.
The Makefile has an issue too. Some modules, ttpci-eeprom and budget-core,
appear in the Makefile under several different config symbols. If more than
one of these symbols is on, they will get added the to list of objects
multiple times. The normal convention is to have a config symbol just the
common object(s) and have the users of the that object either depend on or
select that config symbol.
This patch fixes all these issues. ttpci-eepom is under a new config symbol,
and so is the budget-core module. The four different budget card types appear
as sub-drivers under a main "SAA7146 DVB cards" option. Turning on
budget-patch doesn't force AV7110. Drivers using SAA7146_VV have the
necessary VIDEO_DEV dependency, so that it isn't possible to select SAA7146_VV
without V4L being on.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
|
|
From: Oliver Endriss <o.endriss@gmx.de>
Two fixes for the 'saa7146_wait_for_debi_done' code:
(a) Timeout did not work when the routine was called with
interrupts disabled.
(b) Reduce PCI I/O load caused by saa7146_wait_for_debi_done.
Seems to be very important on fast machines!
Based on code posted by Hartmut Birr @vdr-portal.
Thanks-to: Hartmut Birr <e9hack@googlemail.com>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
|
|
From: Adrian Bunk <bunk@kernel.org>
ir_rc5_decode() can become static.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Pedro <roginovicci@nm.ru>
improve GoTView PCI7135 remote control working under linux.
Acked-by: Hermann Pitton <hermann-pitton@arcor.de>
Acked-by: Nickolay V. Shmyrev <nshmyrev@yandex.ru>
Signed-off-by: Eugene M. Roginskii <roginovicci@nm.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Brandon Philips <bphilips@suse.de>
The return value of videobuf_alloc() is unchecked but this function will
return NULL on an error. Check for NULL and make videobuf_reqbufs()
return the number of successfully allocated buffers.
Also, fix saa7146_video.c and bttv-driver.c to use this returned
buffer count.
Tested against the vivi driver. Not tested against saa7146 or bt8xx
devices.
Signed-off-by: Brandon Philips <bphilips@suse.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
PCI-dependent videobuf_foo methods were renamed as videobuf_pci_foo.
Also, videobuf_dmabuf is now part of videobuf-dma-sg private struct.
So, to access it, a subroutine call is needed.
This patch renames all occurences of those function calls to be
consistent with the video-buf split.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
http://thread.gmane.org/gmane.comp.video.video4linux/34978/focus=34981
Reviewed-by: Ricardo Cerqueira <v4l@cerqueira.org>
|
|
From: Michael Krufky <mkrufky@linuxtv.org>
- fixed missing buttons in keymap.
- make function names & descriptions more generic,
since this same ir receiver and remote is used in
many FusionHDTV products.
- miscellaneous cleanups.
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
|
|
From: Chaogui Zhang <czhang1974@gmail.com>
This patch adds support for the built-in IR receiver of the DViCO
Fusion HDTV5 RT GOLD PCI card, using FusionHDTV MCE remote controller.
Signed-off-by: Chaogui Zhang <czhang1974@gmail.com>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Since at least kernel 2.6.12-rc2, module.h includes moduleparm.h. This
patch removes all occurences of moduleparm.h from drivers/media files.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Oliver Endriss <o.endriss@gmx.de>
Interrupt processing fixed: First handle interrupt, then acknowledge it.
Otherwise the same interrupt might occur twice.
Cleaned-up i2c interrupt handler and i2c error messages.
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
|
|
From: Oliver Endriss <o.endriss@gmx.de>
Convert av7110_v4l.c to use i2c_transfer() instead of saa7146_i2c_transfer().
Make saa7146_i2c_transfer() static.
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|
From: Oliver Endriss <o.endriss@gmx.de>
Fix signedness warnings (gcc 4.1.1, kernel 2.6.22).
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
|