sound.mk 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522
  1. #
  2. # Copyright (C) 2006-2013 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. SOUND_MENU:=Sound Support
  8. # allow targets to override the soundcore stuff
  9. SOUNDCORE_LOAD ?= \
  10. soundcore \
  11. snd \
  12. snd-hwdep \
  13. snd-seq-device \
  14. snd-rawmidi \
  15. snd-timer \
  16. snd-pcm \
  17. snd-mixer-oss \
  18. snd-pcm-oss \
  19. snd-compress
  20. SOUNDCORE_FILES ?= \
  21. $(LINUX_DIR)/sound/soundcore.ko \
  22. $(LINUX_DIR)/sound/core/snd.ko \
  23. $(LINUX_DIR)/sound/core/snd-hwdep.ko \
  24. $(LINUX_DIR)/sound/core/seq/[email protected] \
  25. $(LINUX_DIR)/sound/core/[email protected] \
  26. $(LINUX_DIR)/sound/core/snd-rawmidi.ko \
  27. $(LINUX_DIR)/sound/core/snd-timer.ko \
  28. $(LINUX_DIR)/sound/core/snd-pcm.ko \
  29. $(LINUX_DIR)/sound/core/oss/snd-mixer-oss.ko \
  30. $(LINUX_DIR)/sound/core/oss/snd-pcm-oss.ko \
  31. $(LINUX_DIR)/sound/core/snd-compress.ko
  32. SOUNDCORE_LOAD += \
  33. $(if $(CONFIG_SND_DMAENGINE_PCM),snd-pcm-dmaengine)
  34. SOUNDCORE_FILES += \
  35. $(if $(CONFIG_SND_DMAENGINE_PCM),$(LINUX_DIR)/sound/core/snd-pcm-dmaengine.ko)
  36. define KernelPackage/sound-core
  37. SUBMENU:=$(SOUND_MENU)
  38. TITLE:=Sound support
  39. DEPENDS:=@AUDIO_SUPPORT +kmod-input-core
  40. KCONFIG:= \
  41. CONFIG_SOUND \
  42. CONFIG_SND \
  43. CONFIG_SND_HWDEP \
  44. CONFIG_SND_RAWMIDI \
  45. CONFIG_SND_TIMER \
  46. CONFIG_SND_PCM \
  47. CONFIG_SND_PCM_TIMER=y \
  48. CONFIG_SND_SEQUENCER \
  49. CONFIG_SND_VIRMIDI \
  50. CONFIG_SND_SEQ_DUMMY \
  51. CONFIG_SND_SEQUENCER_OSS=y \
  52. CONFIG_HOSTAUDIO \
  53. CONFIG_SND_PCM_OSS \
  54. CONFIG_SND_MIXER_OSS \
  55. CONFIG_SOUND_OSS_CORE_PRECLAIM=y \
  56. CONFIG_SND_COMPRESS_OFFLOAD
  57. FILES:=$(SOUNDCORE_FILES)
  58. AUTOLOAD:=$(call AutoLoad,30,$(SOUNDCORE_LOAD))
  59. endef
  60. define KernelPackage/sound-core/uml
  61. FILES:= \
  62. $(LINUX_DIR)/sound/soundcore.ko \
  63. $(LINUX_DIR)/arch/um/drivers/hostaudio.ko
  64. AUTOLOAD+=$(call AutoLoad,30,soundcore hostaudio)
  65. endef
  66. define KernelPackage/sound-core/description
  67. Kernel modules for sound support
  68. endef
  69. $(eval $(call KernelPackage,sound-core))
  70. define AddDepends/sound
  71. SUBMENU:=$(SOUND_MENU)
  72. DEPENDS+=kmod-sound-core $(1) @!TARGET_uml
  73. endef
  74. define KernelPackage/ac97
  75. TITLE:=ac97 controller
  76. KCONFIG:=CONFIG_SND_AC97_CODEC
  77. FILES:= \
  78. $(LINUX_DIR)/sound/ac97_bus.ko \
  79. $(LINUX_DIR)/sound/pci/ac97/snd-ac97-codec.ko
  80. AUTOLOAD:=$(call AutoLoad,35,ac97_bus snd-ac97-codec)
  81. $(call AddDepends/sound)
  82. endef
  83. define KernelPackage/ac97/description
  84. The ac97 controller
  85. endef
  86. $(eval $(call KernelPackage,ac97))
  87. define KernelPackage/sound-mpu401
  88. TITLE:=MPU-401 uart driver
  89. KCONFIG:=CONFIG_SND_MPU401_UART
  90. FILES:= \
  91. $(LINUX_DIR)/sound/drivers/mpu401/snd-mpu401-uart.ko
  92. AUTOLOAD:=$(call AutoLoad,35,snd-mpu401-uart)
  93. $(call AddDepends/sound)
  94. endef
  95. define KernelPackage/sound-mpu401/description
  96. support for MIDI ports compatible with the Roland MPU-401
  97. interface in UART mode.
  98. endef
  99. $(eval $(call KernelPackage,sound-mpu401))
  100. define KernelPackage/sound-seq
  101. TITLE:=Sequencer support
  102. FILES:= \
  103. $(LINUX_DIR)/sound/core/seq/snd-seq.ko \
  104. $(LINUX_DIR)/sound/core/seq/snd-seq-midi-event.ko \
  105. $(LINUX_DIR)/sound/core/seq/snd-seq-midi.ko
  106. AUTOLOAD:=$(call AutoLoad,35,snd-seq snd-seq-midi-event snd-seq-midi)
  107. $(call AddDepends/sound)
  108. endef
  109. define KernelPackage/sound-seq/description
  110. Kernel modules for sequencer support
  111. endef
  112. $(eval $(call KernelPackage,sound-seq))
  113. define KernelPackage/sound-i8x0
  114. TITLE:=Intel/SiS/nVidia/AMD/ALi AC97 Controller
  115. DEPENDS:=+kmod-ac97
  116. KCONFIG:=CONFIG_SND_INTEL8X0
  117. FILES:=$(LINUX_DIR)/sound/pci/snd-intel8x0.ko
  118. AUTOLOAD:=$(call AutoLoad,36,snd-intel8x0)
  119. $(call AddDepends/sound)
  120. endef
  121. define KernelPackage/sound-i8x0/description
  122. support for the integrated AC97 sound device on motherboards
  123. with Intel/SiS/nVidia/AMD chipsets, or ALi chipsets using
  124. the M5455 Audio Controller.
  125. endef
  126. $(eval $(call KernelPackage,sound-i8x0))
  127. define KernelPackage/sound-via82xx
  128. TITLE:=VIA 82xx AC97 Controller
  129. DEPENDS:=+kmod-ac97 +kmod-sound-mpu401
  130. KCONFIG:=CONFIG_SND_VIA82XX
  131. FILES:=$(LINUX_DIR)/sound/pci/snd-via82xx.ko
  132. AUTOLOAD:=$(call AutoLoad,36,snd-via82xx)
  133. $(call AddDepends/sound)
  134. endef
  135. define KernelPackage/sound-via82xx/description
  136. support for the integrated AC97 sound device on motherboards
  137. with VIA chipsets.
  138. endef
  139. $(eval $(call KernelPackage,sound-via82xx))
  140. define KernelPackage/sound-soc-core
  141. TITLE:=SoC sound support
  142. DEPENDS:=+kmod-regmap +kmod-ac97
  143. KCONFIG:= \
  144. CONFIG_SND_SOC \
  145. CONFIG_SND_SOC_DMAENGINE_PCM=y \
  146. CONFIG_SND_SOC_ALL_CODECS=n
  147. FILES:=$(LINUX_DIR)/sound/soc/snd-soc-core.ko
  148. AUTOLOAD:=$(call AutoLoad,55, snd-soc-core)
  149. $(call AddDepends/sound)
  150. endef
  151. $(eval $(call KernelPackage,sound-soc-core))
  152. define KernelPackage/sound-soc-ac97
  153. TITLE:=AC97 Codec support
  154. KCONFIG:=CONFIG_SND_SOC_AC97_CODEC
  155. FILES:=$(LINUX_DIR)/sound/soc/codecs/snd-soc-ac97.ko
  156. AUTOLOAD:=$(call AutoLoad,57,snd-soc-ac97)
  157. DEPENDS:=+kmod-ac97 +kmod-sound-soc-core
  158. $(call AddDepends/sound)
  159. endef
  160. $(eval $(call KernelPackage,sound-soc-ac97))
  161. define KernelPackage/sound-soc-imx
  162. TITLE:=IMX SoC support
  163. KCONFIG:=\
  164. CONFIG_SND_IMX_SOC \
  165. CONFIG_SND_SOC_IMX_AUDMUX \
  166. CONFIG_SND_SOC_FSL_SSI \
  167. CONFIG_SND_SOC_IMX_PCM_DMA
  168. FILES:= \
  169. $(LINUX_DIR)/sound/soc/fsl/snd-soc-imx-audmux.ko \
  170. $(LINUX_DIR)/sound/soc/fsl/snd-soc-fsl-ssi.ko \
  171. $(LINUX_DIR)/sound/soc/fsl/imx-pcm-dma.ko
  172. AUTOLOAD:=$(call AutoLoad,56,snd-soc-imx-audmux snd-soc-fsl-ssi snd-soc-imx-pcm)
  173. DEPENDS:=@TARGET_imx6 +kmod-sound-soc-core
  174. $(call AddDepends/sound)
  175. endef
  176. define KernelPackage/sound-soc-imx/description
  177. Support for i.MX6 Platform sound (ssi/audmux/pcm)
  178. endef
  179. $(eval $(call KernelPackage,sound-soc-imx))
  180. define KernelPackage/sound-soc-imx-sgtl5000
  181. TITLE:=IMX SoC support for SGTL5000
  182. KCONFIG:=CONFIG_SND_SOC_IMX_SGTL5000
  183. FILES:=\
  184. $(LINUX_DIR)/sound/soc/codecs/snd-soc-sgtl5000.ko \
  185. $(LINUX_DIR)/sound/soc/fsl/snd-soc-imx-sgtl5000.ko
  186. AUTOLOAD:=$(call AutoLoad,57,snd-soc-sgtl5000 snd-soc-imx-sgtl5000)
  187. DEPENDS:=@TARGET_imx6 +kmod-sound-soc-imx
  188. $(call AddDepends/sound)
  189. endef
  190. define KernelPackage/sound-soc-imx-sgtl5000/description
  191. Support for i.MX6 Platform sound SGTL5000 codec
  192. endef
  193. $(eval $(call KernelPackage,sound-soc-imx-sgtl5000))
  194. define KernelPackage/sound-soc-gw_avila
  195. TITLE:=Gateworks Avila SoC sound support
  196. KCONFIG:= \
  197. CONFIG_SND_GW_AVILA_SOC \
  198. CONFIG_SND_GW_AVILA_SOC_PCM \
  199. CONFIG_SND_GW_AVILA_SOC_HSS
  200. FILES:= \
  201. $(LINUX_DIR)/sound/soc/codecs/snd-soc-tlv320aic3x.ko \
  202. $(LINUX_DIR)/sound/soc/gw-avila/snd-soc-gw-avila.ko \
  203. $(LINUX_DIR)/sound/soc/gw-avila/snd-soc-gw-avila-pcm.ko \
  204. $(LINUX_DIR)/sound/soc/gw-avila/snd-soc-gw-avila-hss.ko
  205. AUTOLOAD:=$(call AutoLoad,65,snd-soc-tlv320aic3x snd-soc-gw-avila snd-soc-gw-avila-pcm snd-soc-gw-avila-hss)
  206. DEPENDS:=@TARGET_ixp4xx +kmod-sound-soc-core
  207. $(call AddDepends/sound)
  208. endef
  209. $(eval $(call KernelPackage,sound-soc-gw_avila))
  210. define KernelPackage/pcspkr
  211. DEPENDS:=@TARGET_x86 +kmod-input-core
  212. TITLE:=PC speaker support
  213. KCONFIG:= \
  214. CONFIG_SND_PCSP
  215. FILES:= \
  216. $(LINUX_DIR)/sound/drivers/pcsp/snd-pcsp.ko
  217. AUTOLOAD:=$(call AutoLoad,50,snd-pcsp)
  218. $(call AddDepends/sound)
  219. endef
  220. define KernelPackage/pcspkr/description
  221. This enables sounds (tones) through the pc speaker
  222. endef
  223. $(eval $(call KernelPackage,pcspkr))
  224. define KernelPackage/sound-dummy
  225. $(call AddDepends/sound)
  226. TITLE:=Null sound output driver (sink)
  227. KCONFIG:= \
  228. CONFIG_SND_DUMMY
  229. FILES:= \
  230. $(LINUX_DIR)/sound/drivers/snd-dummy.ko
  231. AUTOLOAD:=$(call AutoLoad,32,snd-dummy)
  232. endef
  233. define KernelPackage/sound_dummy/description
  234. Dummy sound device for Alsa when no hardware present
  235. endef
  236. $(eval $(call KernelPackage,sound-dummy))
  237. define KernelPackage/sound-hda-core
  238. SUBMENU:=$(SOUND_MENU)
  239. TITLE:=HD Audio Sound Core Support
  240. KCONFIG:= \
  241. [email protected] \
  242. CONFIG_SND_HDA_HWDEP=y \
  243. CONFIG_SND_HDA_RECONFIG=n \
  244. CONFIG_SND_HDA_INPUT_BEEP=n \
  245. CONFIG_SND_HDA_PATCH_LOADER=n \
  246. CONFIG_SND_HDA_GENERIC
  247. FILES:= \
  248. $(LINUX_DIR)/sound/hda/[email protected] \
  249. $(LINUX_DIR)/sound/pci/hda/snd-hda-codec.ko \
  250. $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-generic.ko
  251. AUTOLOAD:=$(call AutoProbe,[email protected] snd-hda-codec snd-hda-codec-generic)
  252. $(call AddDepends/sound,+kmod-regmap)
  253. endef
  254. define KernelPackage/sound-hda-core/description
  255. Kernel modules for HD Audio sound support
  256. endef
  257. $(eval $(call KernelPackage,sound-hda-core))
  258. define KernelPackage/sound-hda-codec-realtek
  259. SUBMENU:=$(SOUND_MENU)
  260. TITLE:= HD Audio Realtek Codec
  261. KCONFIG:= \
  262. CONFIG_SND_HDA_CODEC_REALTEK
  263. FILES:= \
  264. $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-realtek.ko
  265. AUTOLOAD:=$(call AutoProbe,snd-hda-codec-realtek)
  266. $(call AddDepends/sound,kmod-sound-hda-core)
  267. endef
  268. define KernelPackage/sound-hda-codec-realtek/description
  269. Kernel modules for Intel HDA Realtek codec support
  270. endef
  271. $(eval $(call KernelPackage,sound-hda-codec-realtek))
  272. define KernelPackage/sound-hda-codec-cmedia
  273. SUBMENU:=$(SOUND_MENU)
  274. TITLE:=HD Audio C-Media Codec
  275. KCONFIG:= \
  276. CONFIG_SND_HDA_CODEC_CMEDIA
  277. FILES:= \
  278. $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-cmedia.ko
  279. AUTOLOAD:=$(call AutoProbe,snd-hda-codec-cmedia)
  280. $(call AddDepends/sound,kmod-sound-hda-core)
  281. endef
  282. define KernelPackage/sound-hda-codec-cmedia/description
  283. Kernel modules for HD Audio C-Media codec support
  284. endef
  285. $(eval $(call KernelPackage,sound-hda-codec-cmedia))
  286. define KernelPackage/sound-hda-codec-analog
  287. SUBMENU:=$(SOUND_MENU)
  288. TITLE:=HD Audio Analog Devices Codec
  289. KCONFIG:= \
  290. CONFIG_SND_HDA_CODEC_ANALOG
  291. FILES:= \
  292. $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-analog.ko
  293. AUTOLOAD:=$(call AutoProbe,snd-hda-codec-analog)
  294. $(call AddDepends/sound,kmod-sound-hda-core)
  295. endef
  296. define KernelPackage/sound-hda-codec-analog/description
  297. Kernel modules for HD Audio Analog Devices codec support
  298. endef
  299. $(eval $(call KernelPackage,sound-hda-codec-analog))
  300. define KernelPackage/sound-hda-codec-idt
  301. SUBMENU:=$(SOUND_MENU)
  302. TITLE:=HD Audio Sigmatel IDT Codec
  303. KCONFIG:= \
  304. CONFIG_SND_HDA_CODEC_SIGMATEL
  305. FILES:= \
  306. $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-idt.ko
  307. AUTOLOAD:=$(call AutoProbe,snd-hda-codec-idt)
  308. $(call AddDepends/sound,kmod-sound-hda-core)
  309. endef
  310. define KernelPackage/sound-hda-codec-idt/description
  311. Kernel modules for HD Audio Sigmatel IDT codec support
  312. endef
  313. $(eval $(call KernelPackage,sound-hda-codec-idt))
  314. define KernelPackage/sound-hda-codec-si3054
  315. SUBMENU:=$(SOUND_MENU)
  316. TITLE:=HD Audio Silicon Labs 3054 Codec
  317. KCONFIG:= \
  318. CONFIG_SND_HDA_CODEC_SI3054
  319. FILES:= \
  320. $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-si3054.ko
  321. AUTOLOAD:=$(call AutoProbe,snd-hda-codec-si3054)
  322. $(call AddDepends/sound,kmod-sound-hda-core)
  323. endef
  324. define KernelPackage/sound-hda-codec-si3054/description
  325. Kernel modules for HD Audio Silicon Labs 3054 codec support
  326. endef
  327. $(eval $(call KernelPackage,sound-hda-codec-si3054))
  328. define KernelPackage/sound-hda-codec-cirrus
  329. SUBMENU:=$(SOUND_MENU)
  330. TITLE:=HD Audio Cirrus Logic Codec
  331. KCONFIG:= \
  332. CONFIG_SND_HDA_CODEC_CIRRUS
  333. FILES:= \
  334. $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-cirrus.ko
  335. AUTOLOAD:=$(call AutoProbe,snd-hda-codec-cirrus)
  336. $(call AddDepends/sound,kmod-sound-hda-core)
  337. endef
  338. define KernelPackage/sound-hda-codec-cirrus/description
  339. Kernel modules for HD Audio Cirrus Logic codec support
  340. endef
  341. $(eval $(call KernelPackage,sound-hda-codec-cirrus))
  342. define KernelPackage/sound-hda-codec-ca0110
  343. SUBMENU:=$(SOUND_MENU)
  344. TITLE:=HD Audio Creative CA0110 Codec
  345. KCONFIG:= \
  346. CONFIG_SND_HDA_CODEC_CA0110
  347. FILES:= \
  348. $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-ca0110.ko
  349. AUTOLOAD:=$(call AutoProbe,snd-hda-codec-ca0110)
  350. $(call AddDepends/sound,kmod-sound-hda-core)
  351. endef
  352. define KernelPackage/sound-hda-codec-ca0110/description
  353. Kernel modules for HD Audio Creative CA0110 codec support
  354. endef
  355. $(eval $(call KernelPackage,sound-hda-codec-ca0110))
  356. define KernelPackage/sound-hda-codec-ca0132
  357. SUBMENU:=$(SOUND_MENU)
  358. TITLE:=HD Audio Creative CA0132 Codec
  359. KCONFIG:= \
  360. CONFIG_SND_HDA_CODEC_CA0132 \
  361. CONFIG_SND_HDA_CODEC_CA0132_DSP=n
  362. FILES:= \
  363. $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-ca0132.ko
  364. AUTOLOAD:=$(call AutoProbe,snd-hda-codec-ca0132)
  365. $(call AddDepends/sound,kmod-sound-hda-core)
  366. endef
  367. define KernelPackage/sound-hda-codec-ca0132/description
  368. Kernel modules for HD Audio Creative CA0132 codec support
  369. endef
  370. $(eval $(call KernelPackage,sound-hda-codec-ca0132))
  371. define KernelPackage/sound-hda-codec-conexant
  372. SUBMENU:=$(SOUND_MENU)
  373. TITLE:=HD Audio Conexant Codec
  374. KCONFIG:= \
  375. CONFIG_SND_HDA_CODEC_CONEXANT
  376. FILES:= \
  377. $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-conexant.ko
  378. AUTOLOAD:=$(call AutoProbe,snd-hda-codec-conexant)
  379. $(call AddDepends/sound,kmod-sound-hda-core)
  380. endef
  381. define KernelPackage/sound-hda-codec-conexant/description
  382. Kernel modules for HD Audio Conexant codec support
  383. endef
  384. $(eval $(call KernelPackage,sound-hda-codec-conexant))
  385. define KernelPackage/sound-hda-codec-via
  386. SUBMENU:=$(SOUND_MENU)
  387. TITLE:=HD Audio Via Codec
  388. KCONFIG:= \
  389. CONFIG_SND_HDA_CODEC_VIA
  390. FILES:= \
  391. $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-via.ko
  392. AUTOLOAD:=$(call AutoProbe,snd-hda-codec-via)
  393. $(call AddDepends/sound,kmod-sound-hda-core)
  394. endef
  395. define KernelPackage/sound-hda-codec-via/description
  396. Kernel modules for HD Audio VIA codec support
  397. endef
  398. $(eval $(call KernelPackage,sound-hda-codec-via))
  399. define KernelPackage/sound-hda-codec-hdmi
  400. SUBMENU:=$(SOUND_MENU)
  401. TITLE:=HD Audio HDMI/DisplayPort Codec
  402. KCONFIG:= \
  403. CONFIG_SND_HDA_CODEC_HDMI
  404. FILES:= \
  405. $(LINUX_DIR)/sound/pci/hda/snd-hda-codec-hdmi.ko
  406. AUTOLOAD:=$(call AutoProbe,snd-hda-codec-hdmi)
  407. $(call AddDepends/sound,kmod-sound-hda-core)
  408. endef
  409. define KernelPackage/sound-hda-codec-hdmi/description
  410. Kernel modules for HD Audio HDMI codec support
  411. endef
  412. $(eval $(call KernelPackage,sound-hda-codec-hdmi))
  413. define KernelPackage/sound-hda-intel
  414. SUBMENU:=$(SOUND_MENU)
  415. TITLE:=HD Audio Intel Driver
  416. KCONFIG:= \
  417. CONFIG_SOUND_PCI \
  418. CONFIG_SND_HDA_INTEL
  419. FILES:= \
  420. $(LINUX_DIR)/sound/pci/hda/snd-hda-intel.ko \
  421. $(LINUX_DIR)/sound/pci/hda/[email protected]
  422. AUTOLOAD:=$(call AutoProbe,[email protected] snd-hda-intel)
  423. $(call AddDepends/sound,kmod-sound-hda-core)
  424. endef
  425. define KernelPackage/sound-hda-intel/description
  426. Kernel modules for HD Audio Intel driver support
  427. endef
  428. $(eval $(call KernelPackage,sound-hda-intel))