aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound
Commit message (Collapse)AuthorAge
...
| | * | Merge branch 'topic/fix/misc' into topic/miscTakashi Iwai2008-11-07
| | |\ \
| | * | | ALSA: Release v1.0.18Jaroslav Kysela2008-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | | | ASoC: Add codec registration APIMark Brown2008-12-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Another part of the backporting of Liam's ASoC v2 work. Using this is more complicated than the other registration types since currently the codec is instantiated during the probe of the ASoC device so we can't currently readily wait for the codec to register. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Add platform registration APIMark Brown2008-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ASoC v2 allows platform drivers to instantiate independantly of the overall ASoC card. This API allows drivers to notify the core when they are registered. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Add DAI registration APIMark Brown2008-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add API calls to register and unregister DAIs with the core. Currently these APIs are ineffective. Since multiple DAIs for a given device are a common case bulk variants are provided. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Add card registration APIMark Brown2008-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ASoC v2 allows cards, codecs and platforms to instantiate separately, with the overall ASoC device only being instantiated once all the required components have registered. As part of backporting Liam's work introduce an initial version of the card registration functions. At present these do nothing active and are internal only, they will be exposed to machine drivers after further backporting. Adding this now allows the datastructures used for dynamic card instantiation to be built up gradually. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Remove obsolete declaration of struct snd_soc_clock_infoMark Brown2008-12-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The struct is never defined. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Remove platform device from DAI suspend and resume operationsMark Brown2008-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | None of the DAIs use it except s3c2412-i2s which only uses it for dev_() printouts. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Remove device from platform suspend and resume operationsMark Brown2008-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | None of the platforms are actually using the SoC device so remove it (only atmel actually has a suspend method). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Push debugfs files out of the snd_soc_device structureMark Brown2008-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is in preparation for the removal of struct snd_soc_device. The pop time configuration should really be a property of the card not the codec but since DAPM currently uses the codec rather than the card using the codec is fine for now. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Push platform registration down into the cardMark Brown2008-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As part of the deprecation of snd_soc_device push the registration of the platform down into the card structure. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Push workqueue data into snd_soc_cardMark Brown2008-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ASoC v2 does not use the struct snd_soc_device at runtime, using struct snd_soc_card as the root of the card. Begin removing data from snd_soc_device by pushing the workqueue data into snd_soc_card, using a backpointer to the snd_soc_device to keep things going for the time being. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Rename snd_soc_register_card() to snd_soc_init_card()Mark Brown2008-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently ASoC card initialisation is completed by a function called snd_soc_register_card(). As part of the work to allow independant registration of cards, codecs and machines in ASoC v2 a new function of the same name has been added so rename the existing function to facilitate the merge of v2. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | Merge branch 'upstream' into topic/asocTakashi Iwai2008-12-01
|\| | | |
| | \ \ \
| | \ \ \
| *-. \ \ \ Merge branches 'topic/fix/misc' and 'topic/fix/hda' into for-linusTakashi Iwai2008-11-10
| |\ \ \ \ \ | | | |_|/ / | | |/| | / | | | | |/ | | | |/|
| | * | | alsa: fix snd_BUG_on() and friendsAndrew Morton2008-11-06
| | | |/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sound/pci/pcxhr/pcxhr_core.c: In function 'pcxhr_set_pipe_cmd_params': sound/pci/pcxhr/pcxhr_core.c:700: warning: statement with no effect sound/pci/pcxhr/pcxhr_core.c:706: warning: statement with no effect sound/pci/pcxhr/pcxhr_core.c:710: warning: statement with no effect Due to try to fix this, and be more conventional about the empty stubs. Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | | |
| | \ \
| *-. \ \ Merge branches 'topic/fix/misc' and 'topic/fix/asoc' into for-linusTakashi Iwai2008-10-30
| |\ \ \ \ | | | |/ / | | |/| |
* | | | | ASoC: Remove DAI type informationMark Brown2008-11-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DAI type information is only ever used within ASoC in order to special case AC97 and for diagnostic purposes. Since modern CPUs and codecs support multi function DAIs which can be configured for several modes it is more trouble than it's worth to maintain anything other than a flag identifying AC97 DAIs so remove the type field and replace it with an ac97_control flag. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Merge snd_soc_ops into snd_soc_dai_opsMark Brown2008-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Liam Girdwood's ASoC v2 work avoids having two different ops structures for DAIs by merging the members of struct snd_soc_ops into struct snd_soc_dai_ops, allowing per DAI configuration for everything. Backport this change. This paves the way for future work allowing any combination of DAIs to be connected rather than having fixed purpose CODEC and CPU DAIs and only allowing CODEC<->CPU interconnections. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Move DAI structure definitions into new soc-dai.hMark Brown2008-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ASoC v2 factors most of the contents of soc.h out into separate headers, including soc-dai.h for the DAI. Factor the existing DAI API out into this file in order to prepare for backporting of the ASoC v2 DAI API. Also backport some of Liam's improvements to the documentation. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Rename snd_soc_card to snd_soc_machineMark Brown2008-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One of the issues with the ASoC v1 API which has been addressed in the ASoC v2 work that Liam Girdwood has done is that the ALSA card provided by ASoC is distributed around the ASoC structures. For example, machine wide data such as the struct snd_card are maintained as part of the CODEC data structure, preventing the use of multiple codecs. This has been addressed by refactoring the data structures so that all the data for the ALSA card is contained in a single structure snd_soc_card which replaces the existing snd_soc_machine and snd_soc_device. Begin the process of backporting this by renaming struct snd_soc_machine to struct snd_soc_card, better reflecting its function and bringing it closer to standard ALSA terminology. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Remove unused snd_soc_machine_config declarationMark Brown2008-11-18
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Machine driver for for s3c24xx with uda134xChristian Pellegrin2008-11-17
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Christian Pellegrin <chripell@fsfe.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: UDA134x codec driverChristian Pellegrin2008-11-17
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Christian Pellegrin <chripell@fsfe.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | | ASoC: Remove core version numberMark Brown2008-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than try to remember to keep the core version number updated (which hasn't been happening) just remove it. It was much more useful when ASoC was out of tree. Signed-off-by: Mark brown <broonie@opensource.wolfsonmicro.com>
* | | | | Merge commit 'v2.6.28-rc2' into topic/asocTakashi Iwai2008-10-31
|\| | | |
| * | | | Merge branch 'for_linus' of ↵Linus Torvalds2008-10-13
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (313 commits) V4L/DVB (9186): Added support for Prof 7300 DVB-S/S2 cards V4L/DVB (9185): S2API: Ensure we have a reasonable ROLLOFF default V4L/DVB (9184): cx24116: Change the default SNR units back to percentage by default. V4L/DVB (9183): S2API: Return error of the caller provides 0 commands. V4L/DVB (9182): S2API: Added support for DTV_HIERARCHY V4L/DVB (9181): S2API: Add support fot DTV_GUARD_INTERVAL and DTV_TRANSMISSION_MODE V4L/DVB (9180): S2API: Added support for DTV_CODE_RATE_HP/LP V4L/DVB (9179): S2API: frontend.h cleanup V4L/DVB (9178): cx24116: Add module parameter to return SNR as ESNO. V4L/DVB (9177): S2API: Change _8PSK / _16APSK to PSK_8 and APSK_16 V4L/DVB (9176): Add support for DvbWorld USB cards with STV0288 demodulator. V4L/DVB (9175): Remove NULL pointer in stb6000 driver. V4L/DVB (9174): Allow custom inittab for ST STV0288 demodulator. V4L/DVB (9173): S2API: Remove the hardcoded command limit during validation V4L/DVB (9172): S2API: Bugfix related to DVB-S / DVB-S2 tuning for the legacy API. V4L/DVB (9171): S2API: Stop an OOPS if illegal commands are dumped in S2API. V4L/DVB (9170): cx24116: Sanity checking to data input via S2API to the cx24116 demod. V4L/DVB (9169): uvcvideo: Support two new Bison Electronics webcams. V4L/DVB (9168): Add support for MSI TV@nywhere Plus remote V4L/DVB: v4l2-dev: remove duplicated #include ...
| | * | | | V4L/DVB (8777): tea575x-tuner: replace video_exclusive_open/releaseHans Verkuil2008-10-12
| | | |_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the video_exclusive_open/release functionality into the driver itself. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
| * | | | Merge branch 'for-linus' of ↵Linus Torvalds2008-10-13
| |\ \ \ \ | | | |/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (33 commits) ALSA: ASoC codec: remove unused #include <version.h> ALSA: ASoC: update email address for Liam Girdwood ALSA: hda: corrected invalid mixer values ALSA: hda: add mixers for analog mixer on 92hd75xx codecs ALSA: ASoC: Add destination and source port for DMA on OMAP1 ALSA: ASoC: Drop device registration from GTA01 lm4857 driver ALSA: ASoC: Fix build of GTA01 audio driver ALSA: ASoC: Add widgets before setting endpoints on GTA01 ALSA: ASoC: Fix inverted input PGA mute bits in WM8903 ALSA: ASoC: OMAP: Set DMA stream name at runtime in McBSP DAI driver ALSA: ASoC: OMAP: Add support for OMAP2430 and OMAP34xx in McBSP DAI driver ALSA: ASoC: OMAP: Add multilink support to McBSP DAI driver ALSA: ASoC: Make TLV320AIC26 user-visible ALSA: ASoC - clean up Kconfig for TLV320AIC2 ALSA: ASoC: Make WM8510 microphone input a DAPM mixer ALSA: ASoC: Implement WM8510 bias level control ALSA: ASoC: Remove unused AUDIO_NAME define from codec drivers ALSA: ASoC: tlv320aic3x: Use uniform tlv320aic naming ALSA: ASoC: Add WM8510 SPI support ALSA: ASoC: Add WM8753 SPI support ...
| * | | | Merge branch 'master' of ↵David S. Miller2008-10-11
| |\ \ \ \ | | | |/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 Conflicts: sound/core/memalloc.c
| * | | | alsa: Remove special SBUS dma support code.David S. Miller2008-08-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No longer used. Signed-off-by: David S. Miller <davem@davemloft.net>
* | | | | Merge branch 'topic/fix/asoc' into topic/asocTakashi Iwai2008-10-31
|\ \ \ \ \ | | |_|_|/ | |/| | |
| * | | | ALSA: ASoC: Fix mono controls after conversion to support full int masksMark Brown2008-10-30
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When ASoC was converted to support full int width masks SOC_SINGLE_VALUE() omitted the assignment of rshift, causing the control operatins to report some mono controls as stereo. This happened to work some of the time due to a confusion between shift and min in snd_soc_info_volsw(). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | | ASoC: Allow setting codec register with debugfs filesystemTroy Kisky2008-10-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | i.e. echo 6 59 >/sys/kernel/debug/soc-audio.0/codec_reg will set register 0x06 to a value of 0x59. Also, pop_time debugfs interface setup is moved so that it is setup in the same function as codec_reg Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | ALSA: ASoC: Remove snd_soc_dapm_connect_input()Mark Brown2008-10-16
|/ / / | | | | | | | | | | | | | | | | | | | | | This was marked as deprecated in 2.6.27 and all users except for playpaq_wm8510 fixed in that release. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | / ALSA: ASoC: Allow machine drivers to mark pins as not connectedMark Brown2008-10-12
| |/ |/| | | | | | | | | | | | | | | | | | | | | Add a new API call snd_soc_dapm_nc_pin() which allows machine drivers to mark pins as being permanently disabled. At present this is identical to snd_soc_dapm_disable_pin() except in terms of improving the internal documentation of machine drivers that use it. The intention is that in future it will be extended to provide additional features such as hiding controls that are only relevant to paths using the disconnected pin. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: Increase components array sizeTakashi Iwai2008-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Increase the card components[] (and thus snd_card_info.components[], too) array size from 80 to 128 chars so that more strings can be stored. The 80 chars aren't enough for more than 2 HD-audio codecs, and this hits an ugly snd_BUG() as reported by Wu Fegguang for HP 2230s. The control protocol number is increased to 2.0.6 as well, in case it matters. Reported-by: Wu Fengguang <wfg@linux.intel.com> Acked-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | ALSA: Remove bitwise from snd_pcm_hw_param_tTakashi Iwai2008-10-10
| | | | | | | | | | | | | | | | | | We have some arithmetic operations against snd_pcm_hw_param_t, thus bitwise isn't correct for it. Better to remove the flag to shut up sparse warnings. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | ALSA: Separate common pxa2xx-pcm codeDmitry Baryshkov2008-09-23
| | | | | | | | | | | | | | | | | | | | | | ASoC and non-ASoC drivers for PCM DMA on PXA share lots of common code. Move it to pxa2xx-lib. [Fixed some checkpatch warnings -- broonie] Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | ALSA: Separate common pxa2xx-ac97 codeDmitry Baryshkov2008-09-23
| | | | | | | | | | | | | | | | | | | | | | | | ASoC and non-ASoC drivers for ACLINK on PXA share lot's of common code. Move all common code into separate module snd-pxa2xx-lib. [Fixed handing of SND_AC97_CODEC in Kconfig and some checkpatch warnings -- broonie] Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | ALSA: Release v1.0.18rc3Jaroslav Kysela2008-09-09
| | | | | | | | Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | ALSA: remove stale filesTakashi Iwai2008-09-09
| | | | | | | | | | | | | | | | Empty files remained likely due to wrong patching. Remove them now. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | ALSA: ALS4000 driver work, step 2Andreas Mohr2008-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - more register naming work - finally figured out that weird CR register stuff (and did I mention that I hate _really_ undecipherable open-coded values?) - fix handling of IRQ sharing in interrupt handler (hopefully properly, otherwise I'd be grateful to hear your pedantic comments ;) - add handy SPECS_PAGE references wherever useful - comments, cleanup - add me as module author Signed-off-by: Andreas Mohr <andi@lisas.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | ALSA: Allocate larger pages in sgbufTakashi Iwai2008-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most hardwares have limited buffer-descriptor table length. This also restricts the max buffer size of the sound driver. For example, snd-hda-intel has 1MB buffer size limit, and this is because it can have at most 256 BDL entries. For supporting larger buffers, we need to allocate larger pages even for sg-buffers. This patch changes the sgbuf allocation code to try to allocate larger pages first. At each head of the allocated pages, the number of allocated pages is stored in the lowest bits of the corresponding entry of the table addr field. This change isn't visible as long as the driver uses snd_sgbuf_get_addr() helper. Also, the patch adds a new function, snd_pcm_sgbuf_get_chunk_size(). This returns the size of the chunk on continuous pages starting at the given position offset. If the chunk reaches to a non-continuous page, it returns the size to the boundary. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | ALSA: Clean up SG-buffer helper functions and macrosTakashi Iwai2008-08-25
| | | | | | | | | | | | | | | | Clean up SG-buffer helper functions and macros. Helpers take substream as arguments now. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | ALSA: release v1.0.18rc1Jaroslav Kysela2008-08-15
| | | | | | | | Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | ALSA: Clean up snd_BUG()Takashi Iwai2008-08-13
| | | | | | | | | | | | | | Use the standard WARN() macro for snd_BUG(). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | ALSA: Kill snd_assert() definitionTakashi Iwai2008-08-13
| | | | | | | | | | | | | | Remove snd_assert() completely now. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | ALSA: Kill snd_assert() in other placesTakashi Iwai2008-08-13
| | | | | | | | | | | | | | | | Kill snd_assert() in other places, either removed or replaced with if () with snd_BUG_ON(). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | ALSA: Kill snd_assert() in sound/core/*Takashi Iwai2008-08-13
| | | | | | | | | | | | | | | | Kill snd_assert() in sound/core/*, either removed or replaced with if () with snd_BUG_ON(). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>