diff mbox

[1/2] drm/i915: split CNL platforms in GT1/2

Message ID 20180515135745.8740-1-lionel.g.landwerlin@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Lionel Landwerlin May 15, 2018, 1:57 p.m. UTC
We don't actually need this information in i915 but we would like to
get it in IGT and since the pciid headers are in sync..

Here we're splitting the CNL platforms into 2 groups :

   - GT1: including GT0.5/GT1 platforms (1 slice)
   - GT2: including GT1.5/GT2 platforms (2 slices)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
---
 drivers/gpu/drm/i915/i915_pci.c | 11 +++++++++--
 include/drm/i915_pciids.h       | 18 ++++++++++--------
 2 files changed, 19 insertions(+), 10 deletions(-)

Comments

Chris Wilson May 15, 2018, 2:10 p.m. UTC | #1
Quoting Lionel Landwerlin (2018-05-15 14:57:44)
> We don't actually need this information in i915 but we would like to
> get it in IGT and since the pciid headers are in sync..

Hmm, I don't see that we display the GT anywhere. I was thinking an
immediate use-case for this information would be the error state.
-Chris
Lionel Landwerlin May 15, 2018, 3:09 p.m. UTC | #2
On 15/05/18 15:10, Chris Wilson wrote:
> Quoting Lionel Landwerlin (2018-05-15 14:57:44)
>> We don't actually need this information in i915 but we would like to
>> get it in IGT and since the pciid headers are in sync..
> Hmm, I don't see that we display the GT anywhere. I was thinking an
> immediate use-case for this information would be the error state.
> -Chris
>
We already print out the topology. I guess it gives you an idea of what 
GT you might be dealing with.
Let me add the GT too.

-
Lionel
kernel test robot May 16, 2018, 10:51 a.m. UTC | #3
Hi Lionel,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on v4.17-rc5 next-20180515]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Lionel-Landwerlin/drm-i915-split-CNL-platforms-in-GT1-2/20180516-174705
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

>> arch/x86/kernel/early-quirks.c:533:2: error: implicit declaration of function 'INTEL_CNL_IDS'; did you mean 'INTEL_CFL_IDS'? [-Werror=implicit-function-declaration]
     INTEL_CNL_IDS(&gen9_early_ops),
     ^~~~~~~~~~~~~
     INTEL_CFL_IDS
   arch/x86/kernel/early-quirks.c:533:2: error: initializer element is not constant
   arch/x86/kernel/early-quirks.c:533:2: note: (near initialization for 'intel_early_ids[207].vendor')
   arch/x86/kernel/early-quirks.c:503:67: warning: missing braces around initializer [-Wmissing-braces]
    static const struct pci_device_id intel_early_ids[] __initconst = {
                                                                      ^
   arch/x86/kernel/early-quirks.c:533:2:
     INTEL_CNL_IDS(&gen9_early_ops),
     {
    };
    }
   cc1: some warnings being treated as errors

vim +533 arch/x86/kernel/early-quirks.c

3e3b2c390 Damien Lespiau  2014-05-08  502  
ee0629cfd Joonas Lahtinen 2016-04-22  503  static const struct pci_device_id intel_early_ids[] __initconst = {
ee0629cfd Joonas Lahtinen 2016-04-22  504  	INTEL_I830_IDS(&i830_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  505  	INTEL_I845G_IDS(&i845_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  506  	INTEL_I85X_IDS(&i85x_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  507  	INTEL_I865G_IDS(&i865_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  508  	INTEL_I915G_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  509  	INTEL_I915GM_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  510  	INTEL_I945G_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  511  	INTEL_I945GM_IDS(&gen3_early_ops),
8d9c20e1d Carlos Santa    2016-08-17  512  	INTEL_VLV_IDS(&gen6_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  513  	INTEL_PINEVIEW_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  514  	INTEL_I965G_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  515  	INTEL_G33_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  516  	INTEL_I965GM_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  517  	INTEL_GM45_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  518  	INTEL_G45_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  519  	INTEL_IRONLAKE_D_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  520  	INTEL_IRONLAKE_M_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  521  	INTEL_SNB_D_IDS(&gen6_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  522  	INTEL_SNB_M_IDS(&gen6_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  523  	INTEL_IVB_M_IDS(&gen6_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  524  	INTEL_IVB_D_IDS(&gen6_early_ops),
8d9c20e1d Carlos Santa    2016-08-17  525  	INTEL_HSW_IDS(&gen6_early_ops),
8d9c20e1d Carlos Santa    2016-08-17  526  	INTEL_BDW_IDS(&gen8_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  527  	INTEL_CHV_IDS(&chv_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  528  	INTEL_SKL_IDS(&gen9_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  529  	INTEL_BXT_IDS(&gen9_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  530  	INTEL_KBL_IDS(&gen9_early_ops),
33aa69ed8 Lucas De Marchi 2017-12-13  531  	INTEL_CFL_IDS(&gen9_early_ops),
bc384c77e Paulo Zanoni    2017-01-24  532  	INTEL_GLK_IDS(&gen9_early_ops),
2e1e9d489 Paulo Zanoni    2017-07-05 @533  	INTEL_CNL_IDS(&gen9_early_ops),
814c5f1f5 Jesse Barnes    2013-07-26  534  };
814c5f1f5 Jesse Barnes    2013-07-26  535  

:::::: The code at line 533 was first introduced by commit
:::::: 2e1e9d48939edad49a9f06762ecfc9c73666d489 x86/gpu: CNL uses the same GMS values as SKL

:::::: TO: Paulo Zanoni <paulo.r.zanoni@intel.com>
:::::: CC: Rodrigo Vivi <rodrigo.vivi@intel.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
kernel test robot May 16, 2018, 12:21 p.m. UTC | #4
Hi Lionel,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on v4.17-rc5 next-20180515]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Lionel-Landwerlin/drm-i915-split-CNL-platforms-in-GT1-2/20180516-174705
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-randconfig-a0-201819 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All error/warnings (new ones prefixed by >>):

>> arch/x86/kernel/early-quirks.c:533:2: error: implicit declaration of function 'INTEL_CNL_IDS' [-Werror=implicit-function-declaration]
     INTEL_CNL_IDS(&gen9_early_ops),
     ^
>> arch/x86/kernel/early-quirks.c:533:2: warning: missing braces around initializer [-Wmissing-braces]
   arch/x86/kernel/early-quirks.c:533:2: warning: (near initialization for 'intel_early_ids[207]') [-Wmissing-braces]
>> arch/x86/kernel/early-quirks.c:533:2: error: initializer element is not constant
   arch/x86/kernel/early-quirks.c:533:2: error: (near initialization for 'intel_early_ids[207].vendor')
   cc1: some warnings being treated as errors

vim +/INTEL_CNL_IDS +533 arch/x86/kernel/early-quirks.c

3e3b2c390 Damien Lespiau  2014-05-08  502  
ee0629cfd Joonas Lahtinen 2016-04-22  503  static const struct pci_device_id intel_early_ids[] __initconst = {
ee0629cfd Joonas Lahtinen 2016-04-22  504  	INTEL_I830_IDS(&i830_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  505  	INTEL_I845G_IDS(&i845_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  506  	INTEL_I85X_IDS(&i85x_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  507  	INTEL_I865G_IDS(&i865_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  508  	INTEL_I915G_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  509  	INTEL_I915GM_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  510  	INTEL_I945G_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  511  	INTEL_I945GM_IDS(&gen3_early_ops),
8d9c20e1d Carlos Santa    2016-08-17  512  	INTEL_VLV_IDS(&gen6_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  513  	INTEL_PINEVIEW_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  514  	INTEL_I965G_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  515  	INTEL_G33_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  516  	INTEL_I965GM_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  517  	INTEL_GM45_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  518  	INTEL_G45_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  519  	INTEL_IRONLAKE_D_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  520  	INTEL_IRONLAKE_M_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  521  	INTEL_SNB_D_IDS(&gen6_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  522  	INTEL_SNB_M_IDS(&gen6_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  523  	INTEL_IVB_M_IDS(&gen6_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  524  	INTEL_IVB_D_IDS(&gen6_early_ops),
8d9c20e1d Carlos Santa    2016-08-17  525  	INTEL_HSW_IDS(&gen6_early_ops),
8d9c20e1d Carlos Santa    2016-08-17  526  	INTEL_BDW_IDS(&gen8_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  527  	INTEL_CHV_IDS(&chv_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  528  	INTEL_SKL_IDS(&gen9_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  529  	INTEL_BXT_IDS(&gen9_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  530  	INTEL_KBL_IDS(&gen9_early_ops),
33aa69ed8 Lucas De Marchi 2017-12-13  531  	INTEL_CFL_IDS(&gen9_early_ops),
bc384c77e Paulo Zanoni    2017-01-24  532  	INTEL_GLK_IDS(&gen9_early_ops),
2e1e9d489 Paulo Zanoni    2017-07-05 @533  	INTEL_CNL_IDS(&gen9_early_ops),
814c5f1f5 Jesse Barnes    2013-07-26  534  };
814c5f1f5 Jesse Barnes    2013-07-26  535  

:::::: The code at line 533 was first introduced by commit
:::::: 2e1e9d48939edad49a9f06762ecfc9c73666d489 x86/gpu: CNL uses the same GMS values as SKL

:::::: TO: Paulo Zanoni <paulo.r.zanoni@intel.com>
:::::: CC: Rodrigo Vivi <rodrigo.vivi@intel.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
kernel test robot May 16, 2018, 12:31 p.m. UTC | #5
Hi Lionel,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on v4.17-rc5 next-20180516]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Lionel-Landwerlin/drm-i915-split-CNL-platforms-in-GT1-2/20180516-174705
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

   arch/x86/kernel/early-quirks.c:533:9: sparse: undefined identifier 'INTEL_CNL_IDS'
>> arch/x86/kernel/early-quirks.c:533:22: sparse: not a function <noident>
   arch/x86/kernel/early-quirks.c:613:49: sparse: restricted pci_power_t degrades to integer
   arch/x86/kernel/early-quirks.c:619:57: sparse: restricted pci_power_t degrades to integer
   arch/x86/kernel/early-quirks.c:533:2: error: implicit declaration of function 'INTEL_CNL_IDS'; did you mean 'INTEL_CFL_IDS'? [-Werror=implicit-function-declaration]
     INTEL_CNL_IDS(&gen9_early_ops),
     ^~~~~~~~~~~~~
     INTEL_CFL_IDS
   arch/x86/kernel/early-quirks.c:533:2: error: initializer element is not constant
   arch/x86/kernel/early-quirks.c:533:2: note: (near initialization for 'intel_early_ids[207].vendor')
   arch/x86/kernel/early-quirks.c:503:67: warning: missing braces around initializer [-Wmissing-braces]
    static const struct pci_device_id intel_early_ids[] __initconst = {
                                                                      ^
   arch/x86/kernel/early-quirks.c:533:2:
     INTEL_CNL_IDS(&gen9_early_ops),
     {
    };
    }
   cc1: some warnings being treated as errors

vim +533 arch/x86/kernel/early-quirks.c

3e3b2c390 Damien Lespiau  2014-05-08  502  
ee0629cfd Joonas Lahtinen 2016-04-22  503  static const struct pci_device_id intel_early_ids[] __initconst = {
ee0629cfd Joonas Lahtinen 2016-04-22  504  	INTEL_I830_IDS(&i830_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  505  	INTEL_I845G_IDS(&i845_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  506  	INTEL_I85X_IDS(&i85x_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  507  	INTEL_I865G_IDS(&i865_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  508  	INTEL_I915G_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  509  	INTEL_I915GM_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  510  	INTEL_I945G_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  511  	INTEL_I945GM_IDS(&gen3_early_ops),
8d9c20e1d Carlos Santa    2016-08-17  512  	INTEL_VLV_IDS(&gen6_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  513  	INTEL_PINEVIEW_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  514  	INTEL_I965G_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  515  	INTEL_G33_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  516  	INTEL_I965GM_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  517  	INTEL_GM45_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  518  	INTEL_G45_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  519  	INTEL_IRONLAKE_D_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  520  	INTEL_IRONLAKE_M_IDS(&gen3_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  521  	INTEL_SNB_D_IDS(&gen6_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  522  	INTEL_SNB_M_IDS(&gen6_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  523  	INTEL_IVB_M_IDS(&gen6_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  524  	INTEL_IVB_D_IDS(&gen6_early_ops),
8d9c20e1d Carlos Santa    2016-08-17  525  	INTEL_HSW_IDS(&gen6_early_ops),
8d9c20e1d Carlos Santa    2016-08-17  526  	INTEL_BDW_IDS(&gen8_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  527  	INTEL_CHV_IDS(&chv_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  528  	INTEL_SKL_IDS(&gen9_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  529  	INTEL_BXT_IDS(&gen9_early_ops),
ee0629cfd Joonas Lahtinen 2016-04-22  530  	INTEL_KBL_IDS(&gen9_early_ops),
33aa69ed8 Lucas De Marchi 2017-12-13  531  	INTEL_CFL_IDS(&gen9_early_ops),
bc384c77e Paulo Zanoni    2017-01-24  532  	INTEL_GLK_IDS(&gen9_early_ops),
2e1e9d489 Paulo Zanoni    2017-07-05 @533  	INTEL_CNL_IDS(&gen9_early_ops),
814c5f1f5 Jesse Barnes    2013-07-26  534  };
814c5f1f5 Jesse Barnes    2013-07-26  535  

:::::: The code at line 533 was first introduced by commit
:::::: 2e1e9d48939edad49a9f06762ecfc9c73666d489 x86/gpu: CNL uses the same GMS values as SKL

:::::: TO: Paulo Zanoni <paulo.r.zanoni@intel.com>
:::::: CC: Rodrigo Vivi <rodrigo.vivi@intel.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index 4364922e935d..8130e6a70efc 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -584,7 +584,13 @@  static const struct intel_device_info intel_coffeelake_gt3_info = {
 	.ddb_size = 1024, \
 	GLK_COLORS
 
-static const struct intel_device_info intel_cannonlake_info = {
+static const struct intel_device_info intel_cannonlake_gt1_info = {
+	GEN10_FEATURES,
+	PLATFORM(INTEL_CANNONLAKE),
+	.gt = 1,
+};
+
+static const struct intel_device_info intel_cannonlake_gt2_info = {
 	GEN10_FEATURES,
 	PLATFORM(INTEL_CANNONLAKE),
 	.gt = 2,
@@ -665,7 +671,8 @@  static const struct pci_device_id pciidlist[] = {
 	INTEL_CFL_U_GT1_IDS(&intel_coffeelake_gt1_info),
 	INTEL_CFL_U_GT2_IDS(&intel_coffeelake_gt2_info),
 	INTEL_CFL_U_GT3_IDS(&intel_coffeelake_gt3_info),
-	INTEL_CNL_IDS(&intel_cannonlake_info),
+	INTEL_CNL_GT1_IDS(&intel_cannonlake_gt1_info),
+	INTEL_CNL_GT2_IDS(&intel_cannonlake_gt2_info),
 	INTEL_ICL_11_IDS(&intel_icelake_11_info),
 	{0, 0, 0}
 };
diff --git a/include/drm/i915_pciids.h b/include/drm/i915_pciids.h
index bab70ff6e78b..af4e8a6c95b0 100644
--- a/include/drm/i915_pciids.h
+++ b/include/drm/i915_pciids.h
@@ -416,21 +416,23 @@ 
 	INTEL_CFL_U_GT3_IDS(info)
 
 /* CNL */
-#define INTEL_CNL_IDS(info) \
+#define INTEL_CNL_GT1_IDS(info) \
+	INTEL_VGA_DEVICE(0x5A49, info), \
+	INTEL_VGA_DEVICE(0x5A4A, info), \
+	INTEL_VGA_DEVICE(0x5A41, info), \
+	INTEL_VGA_DEVICE(0x5A42, info), \
+	INTEL_VGA_DEVICE(0x5A44, info), \
+	INTEL_VGA_DEVICE(0x5A4C, info)
+
+#define INTEL_CNL_GT2_IDS(info) \
 	INTEL_VGA_DEVICE(0x5A51, info), \
 	INTEL_VGA_DEVICE(0x5A59, info), \
-	INTEL_VGA_DEVICE(0x5A41, info), \
-	INTEL_VGA_DEVICE(0x5A49, info), \
 	INTEL_VGA_DEVICE(0x5A52, info), \
 	INTEL_VGA_DEVICE(0x5A5A, info), \
-	INTEL_VGA_DEVICE(0x5A42, info), \
-	INTEL_VGA_DEVICE(0x5A4A, info), \
 	INTEL_VGA_DEVICE(0x5A50, info), \
 	INTEL_VGA_DEVICE(0x5A40, info), \
 	INTEL_VGA_DEVICE(0x5A54, info), \
-	INTEL_VGA_DEVICE(0x5A5C, info), \
-	INTEL_VGA_DEVICE(0x5A44, info), \
-	INTEL_VGA_DEVICE(0x5A4C, info)
+	INTEL_VGA_DEVICE(0x5A5C, info)
 
 /* ICL */
 #define INTEL_ICL_11_IDS(info) \