Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 19 files:
- drivers/gpu/drm/drm_mipi_dbi.c, line 1182
- drivers/gpu/drm/panel/panel-ilitek-ili9341.c, line 512
- drivers/gpu/drm/panel/panel-ilitek-ili9806e-spi.c, line 119
- drivers/gpu/drm/panel/panel-magnachip-d53e6ea8966.c, line 408
- drivers/gpu/drm/panel/panel-newvision-nv3052c.c, line 539
- drivers/gpu/drm/panel/panel-samsung-db7430.c, line 295
- drivers/gpu/drm/panel/panel-samsung-s6d27a1.c, line 276
- drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c, line 55
- drivers/gpu/drm/panel/panel-sitronix-st7701.c, line 1374
- drivers/gpu/drm/panel/panel-widechips-ws2401.c, line 375
- drivers/gpu/drm/sitronix/st7586.c, line 395
- drivers/gpu/drm/sitronix/st7735r.c, line 279
- drivers/gpu/drm/tiny/hx8357d.c, line 309
- drivers/gpu/drm/tiny/ili9163.c, line 240
- drivers/gpu/drm/tiny/ili9225.c, line 464
- drivers/gpu/drm/tiny/ili9341.c, line 271
- drivers/gpu/drm/tiny/ili9486.c, line 296
- drivers/gpu/drm/tiny/mi0283qt.c, line 279
- drivers/gpu/drm/tiny/panel-mipi-dbi.c, line 426
Smatch caller information:
drivers/gpu/drm/panel/panel-magnachip-d53e6ea8966.c d53e6ea8966_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.power.entry.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 2 | dc | 0 |
| DATA_SOURCE | 0 | spi | $0 |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/tiny/ili9486.c ili9486_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 1 | dbi->reset | 4096-ptr_max |
| PARAM_VALUE | 2 | dc | 4096-ptr_max |
| BUF_SIZE | 1 | dbi | 224 |
| BUF_SIZE | 1 | dbi->reset | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| CAPPED_DATA | 1 | dbi->reset | 1 |
| CAPPED_DATA | 2 | dc | 1 |
| DATA_SOURCE | 0 | spi | $0 |
| DATA_SOURCE | 2 | dc | r devm_gpiod_get |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/panel/panel-samsung-s6d27a1.c s6d27a1_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 2 | dc | 0 |
| DATA_SOURCE | 0 | spi | $0 |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/panel/panel-ilitek-ili9341.c ili9341_dpi_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 1-u64max |
| PARAM_VALUE | 2 | dc | 0,4096-ptr_max |
| BUF_SIZE | 1 | dbi | 224 |
| BUF_SIZE | 2 | dc | s32min,(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min,(-1),1-s32max |
| CAPPED_DATA | 2 | dc | 1 |
| DATA_SOURCE | 0 | spi | $0 |
| DATA_SOURCE | 1 | dbi | r devm_kzalloc |
| DATA_SOURCE | 2 | dc | $1 |
| FUZZY_MAX | 0 | spi->irq | 0 |
| MEM_ZERO | 1 | dbi | |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/sitronix/st7735r.c st7735r_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.of_node->properties->length | s32min-s32max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 1 | dbi->reset | 4096-ptr_max |
| PARAM_VALUE | 2 | dc | 4096-ptr_max |
| BUF_SIZE | 1 | dbi | 224 |
| BUF_SIZE | 1 | dbi->reset | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| CAPPED_DATA | 1 | dbi->reset | 1 |
| CAPPED_DATA | 2 | dc | 1 |
| DATA_SOURCE | 0 | spi | $0 |
| DATA_SOURCE | 2 | dc | r devm_gpiod_get |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/tiny/ili9341.c ili9341_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 1 | dbi->reset | 0,4096-ptr_max |
| PARAM_VALUE | 2 | dc | 0,4096-ptr_max |
| BUF_SIZE | 1 | dbi | 224 |
| BUF_SIZE | 1 | dbi->reset | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| CAPPED_DATA | 1 | dbi->reset | 1 |
| CAPPED_DATA | 2 | dc | 1 |
| DATA_SOURCE | 0 | spi | $0 |
| DATA_SOURCE | 2 | dc | r devm_gpiod_get_optional |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/panel/panel-ilitek-ili9806e-spi.c ili9806e_spi_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.of_node->properties->length | s32min-s32max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 2 | dc | 0 |
| DATA_SOURCE | 0 | spi | $0 |
| FUZZY_MAX | 0 | spi->irq | 0 |
| MEM_ZERO | 1 | dbi | |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/tiny/mi0283qt.c mi0283qt_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.power.entry.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 1 | dbi->reset | 0,4096-ptr_max |
| PARAM_VALUE | 2 | dc | 0,4096-ptr_max |
| BUF_SIZE | 1 | dbi | 224 |
| BUF_SIZE | 1 | dbi->reset | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| CAPPED_DATA | 1 | dbi->reset | 1 |
| CAPPED_DATA | 2 | dc | 1 |
| DATA_SOURCE | 0 | spi | $0 |
| DATA_SOURCE | 2 | dc | r devm_gpiod_get_optional |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/tiny/ili9225.c ili9225_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 1 | dbi->reset | 4096-ptr_max |
| PARAM_VALUE | 2 | dc | 4096-ptr_max |
| BUF_SIZE | 1 | dbi | 224 |
| BUF_SIZE | 1 | dbi->reset | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| CAPPED_DATA | 1 | dbi->reset | 1 |
| CAPPED_DATA | 2 | dc | 1 |
| DATA_SOURCE | 0 | spi | $0 |
| DATA_SOURCE | 2 | dc | r devm_gpiod_get |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/tiny/hx8357d.c hx8357d_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 2 | dc | 4096-ptr_max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| CAPPED_DATA | 2 | dc | 1 |
| DATA_SOURCE | 0 | spi | $0 |
| DATA_SOURCE | 2 | dc | r devm_gpiod_get |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/panel/panel-samsung-db7430.c db7430_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 2 | dc | 0 |
| DATA_SOURCE | 0 | spi | $0 |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/tiny/ili9163.c ili9163_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.driver_data | 0-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 1 | dbi->reset | 0,4096-ptr_max |
| PARAM_VALUE | 2 | dc | 0,4096-ptr_max |
| BUF_SIZE | 1 | dbi | 224 |
| BUF_SIZE | 1 | dbi->reset | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| CAPPED_DATA | 1 | dbi->reset | 1 |
| CAPPED_DATA | 2 | dc | 1 |
| DATA_SOURCE | 0 | spi | $0 |
| DATA_SOURCE | 2 | dc | r devm_gpiod_get_optional |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/sitronix/st7586.c st7586_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 1 | dbi->reset | 4096-ptr_max |
| PARAM_VALUE | 2 | dc | 4096-ptr_max |
| BUF_SIZE | 1 | dbi | 224 |
| BUF_SIZE | 1 | dbi->reset | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| CAPPED_DATA | 1 | dbi->reset | 1 |
| CAPPED_DATA | 2 | dc | 1 |
| DATA_SOURCE | 0 | spi | $0 |
| DATA_SOURCE | 2 | dc | r devm_gpiod_get |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/panel/panel-sitronix-st7701.c st7701_spi_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev->p->deferred_probe_reason | 0-255 |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.dma_mem->pfn_base | 0-s64max |
| PARAM_VALUE | 0 | spi->dev.driver_data | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 2 | dc | 0,4096-ptr_max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| CAPPED_DATA | 2 | dc | 1 |
| DATA_SOURCE | 0 | spi | $0 |
| DATA_SOURCE | 2 | dc | r devm_gpiod_get_optional |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/tiny/panel-mipi-dbi.c panel_mipi_dbi_spi_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.power.entry.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 1 | dbi->reset | 0,4096-ptr_max |
| PARAM_VALUE | 2 | dc | 0,4096-ptr_max |
| BUF_SIZE | 1 | dbi | 224 |
| BUF_SIZE | 1 | dbi->reset | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| BUF_SIZE | 2 | dc | s32min-(-1),1-s32max |
| CAPPED_DATA | 1 | dbi->reset | 1 |
| CAPPED_DATA | 2 | dc | 1 |
| DATA_SOURCE | 0 | spi | $0 |
| DATA_SOURCE | 2 | dc | r devm_gpiod_get_optional |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c s6e63m0_spi_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 1-u64max |
| PARAM_VALUE | 2 | dc | 0 |
| BUF_SIZE | 1 | dbi | 224 |
| DATA_SOURCE | 0 | spi | $0 |
| DATA_SOURCE | 1 | dbi | r devm_kzalloc |
| FUZZY_MAX | 0 | spi->irq | 0 |
| MEM_ZERO | 1 | dbi | |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/panel/panel-newvision-nv3052c.c nv3052c_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.power.entry.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 2 | dc | 0 |
| DATA_SOURCE | 0 | spi | $0 |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
drivers/gpu/drm/panel/panel-widechips-ws2401.c ws2401_probe() -> mipi_dbi_spi_init()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | spi | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->dev.devres_head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | spi->irq | 0-s32max |
| PARAM_VALUE | 1 | dbi | 4096-ptr_max |
| PARAM_VALUE | 2 | dc | 0 |
| DATA_SOURCE | 0 | spi | $0 |
| FUZZY_MAX | 0 | spi->irq | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING |