All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luca Coelho <luca@coelho.fi>
To: Julia Lawall <julia.lawall@inria.fr>
Cc: Markus Elfring <Markus.Elfring@web.de>, cocci@inria.fr
Subject: Re: [cocci] Searching for special function implementations with SmPL
Date: Mon, 30 Jan 2023 10:50:42 +0200	[thread overview]
Message-ID: <13bf65ac8504fa5ebcaf69539422fcd38bf157d1.camel@coelho.fi> (raw)
In-Reply-To: <dc9d939d-e1bb-8447-e950-deacc7a3645a@inria.fr>

[-- Attachment #1: Type: text/plain, Size: 2538 bytes --]

On Mon, 2023-01-30 at 09:37 +0100, Julia Lawall wrote:
> > Sorry, false alarm.  I was running spatch by itself on an inner
> > directory (.../i915/display), but when I used find, I was using
> > .../i915, so there was one more match happening there.
> > 
> > So, it seems that the latest head _does_ work fine! And I'm gettign
> > all
> > the matches and changes that I expect.  Thanks!
> 
> Great news :)

Maybe I celebrated a bit too early.  There is still one instance that
is not matching...

I currently have these rules:

@macros_noargs@
identifier m;
expression e =~ "dev_priv";
@@
#define m <+...e...+>

@nested_macros@
identifier macros_noargs.m;
identifier nm;
identifier list il;
@@
#define nm(il) <+...m...+>

@@
identifier nested_macros.nm;
identifier dev_priv, f;
expression list el;
@@
f(...) {
	...
	struct drm_i915_private *dev_priv = ...;

	<+...
	nm(
+	dev_priv,	
	el)
	...+>
}

@@
identifier nested_macros.nm;
identifier dev_priv, f;
expression list el;
@@
f(..., struct drm_i915_private *dev_priv, ...) {
	<+...
	nm(
+	dev_priv,
	el)
	...+>
}

And then we have this function in
drivers/gpu/drm/i915/display/intel_display.c:

void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
			 struct intel_digital_port *dig_port,
			 unsigned int expected_mask)
{
[...]
	switch (dig_port->base.port) {
	default:
		MISSING_CASE(dig_port->base.port);
		fallthrough;
	case PORT_B:
		port_mask = DPLL_PORTB_READY_MASK;
		dpll_reg = DPLL(0);
		break;
	case PORT_C:
		port_mask = DPLL_PORTC_READY_MASK;
		dpll_reg = DPLL(0);
		expected_mask <<= 4;
		break;
[...]
}

The DPLL macro is defined like this (in
drivers/gpu/drm/i915/display/i915_reg.h):

#define _DPLL_A (DISPLAY_MMIO_BASE(dev_priv) + 0x6014)
#define _DPLL_B (DISPLAY_MMIO_BASE(dev_priv) + 0x6018)
#define _CHV_DPLL_C (DISPLAY_MMIO_BASE(dev_priv) + 0x6030)
#define DPLL(pipe) _MMIO_PIPE3((pipe), _DPLL_A, _DPLL_B, _CHV_DPLL_C)


So it should match like the other instances, but it doesn't.  I copied
the macro definition and the function to stand-alone files (i.e.
without the rest of the code) and it matches, but in the real code,
running cocci like this, it doesn't:

~/public/coccinelle/spatch.opt --sp-file ~/dev_priv_i915.spatch --all-includes intel_display.c

I noticed some parsing errors when using --debug (output attached), so
maybe there's some parsing issues with the real file that prevents the
rule from applying?

Any clues?

--
Cheers,
Luca.

[-- Attachment #2: output.txt --]
[-- Type: text/plain, Size: 78833 bytes --]

init_defs_builtins: /home/luca/public/coccinelle/standard.h
-----------------------------------------------------------------------
processing semantic patch file: /home/luca/dev_priv_i915.spatch
with isos from: /home/luca/public/coccinelle/standard.iso
-----------------------------------------------------------------------
@macros_noargs@
identifier m;
expression e =~ "dev_priv";
@@
#define m <+...e...+>

@nested_macros@
identifier macros_noargs.m;
identifier nm;
identifier list il;
@@
#define nm(il) <+...m...+>

@@
identifier nested_macros.nm;
identifier dev_priv, f;
expression list el;
@@
f(...) {
	...
	struct drm_i915_private *dev_priv = ...;

	<+...
	nm(
+	dev_priv,	
	el)
	...+>
}

@@
identifier nested_macros.nm;
identifier dev_priv, f;
expression list el;
@@
f(..., struct drm_i915_private *dev_priv, ...) {
	<+...
	nm(
+	dev_priv,
	el)
	...+>
}

HANDLING: intel_display.c
-----------------------------------------------------------------------
let's go
-----------------------------------------------------------------------
-----------------------------------------------------------------------
ERROR-RECOV: found sync end of #define, line 162
parsing pass2: try again
ERROR-RECOV: found sync end of #define, line 162
parse error 
 = File "./intel_display_power.h", line 162, column 51, charpos = 4051
  around = '',
  whole content = 		for_each_if(test_bit((__domain), (__mask)->bits))
badcount: 4
bad: };
bad: 
bad: #define for_each_power_domain(__domain, __mask)				\
bad: 	for ((__domain) = 0; (__domain) < POWER_DOMAIN_NUM; (__domain)++)	\
BAD:!!!!! 		for_each_if(test_bit((__domain), (__mask)->bits))
ERROR-RECOV: found sync end of #define, line 282
parsing pass2: try again
ERROR-RECOV: found sync end of #define, line 282
parse error 
 = File "./intel_display_power.h", line 282, column 70, charpos = 8858
  around = '',
  whole content = 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
badcount: 4
bad: 			     u8 req_slices);
bad: 
bad: #define with_intel_display_power(i915, domain, wf) \
bad: 	for ((wf) = intel_display_power_get((i915), (domain)); (wf); \
BAD:!!!!! 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
ERROR-RECOV: found sync end of #define, line 286
parsing pass2: try again
ERROR-RECOV: found sync end of #define, line 286
parse error 
 = File "./intel_display_power.h", line 286, column 70, charpos = 9069
  around = '',
  whole content = 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
badcount: 4
bad: 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
bad: 
bad: #define with_intel_display_power_if_enabled(i915, domain, wf) \
bad: 	for ((wf) = intel_display_power_get_if_enabled((i915), (domain)); (wf); \
BAD:!!!!! 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
ERROR-RECOV: found sync end of #define, line 24
parsing pass2: try again
ERROR-RECOV: found sync end of #define, line 24
parse error 
 = File "./intel_pps.h", line 24, column 75, charpos = 574
  around = '',
  whole content = 	for ((wf) = intel_pps_lock(dp); (wf); (wf) = intel_pps_unlock((dp), (wf)))
badcount: 3
bad: intel_wakeref_t intel_pps_unlock(struct intel_dp *intel_dp, intel_wakeref_t wakeref);
bad: 
bad: #define with_intel_pps_lock(dp, wf)						\
BAD:!!!!! 	for ((wf) = intel_pps_lock(dp); (wf); (wf) = intel_pps_unlock((dp), (wf)))
ERROR-RECOV: found sync '}' at line 3711
parsing pass2: try again
ERROR-RECOV: found sync '}' at line 3711
parsing pass3: try again
ERROR-RECOV: found sync '}' at line 3711
parse error 
 = File "intel_display.c", line 3708, column 2, charpos = 111316
  around = 'tmp',
  whole content = 		tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
badcount: 15
bad: }
bad: 
bad: static bool transcoder_ddi_func_is_enabled(struct drm_i915_private *dev_priv,
bad: 					   enum transcoder cpu_transcoder)
bad: {
bad: 	enum intel_display_power_domain power_domain;
bad: 	intel_wakeref_t wakeref;
bad: 	u32 tmp = 0;
bad: 
bad: 	power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
bad: 
bad: 	with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref)
BAD:!!!!! 		tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
bad: 
bad: 	return tmp & TRANS_DDI_FUNC_ENABLE;
bad: }
ERROR-RECOV: found sync '}' at line 3758
parsing pass2: try again
ERROR-RECOV: found sync '}' at line 3758
parsing pass3: try again
ERROR-RECOV: found sync '}' at line 3758
parse error 
 = File "intel_display.c", line 3728, column 71, charpos = 111947
  around = '{',
  whole content = 		with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref) {
badcount: 47
bad: }
bad: 
bad: static void enabled_bigjoiner_pipes(struct drm_i915_private *dev_priv,
bad: 				    u8 *master_pipes, u8 *slave_pipes)
bad: {
bad: 	struct intel_crtc *crtc;
bad: 
bad: 	*master_pipes = 0;
bad: 	*slave_pipes = 0;
bad: 
bad: 	for_each_intel_crtc_in_pipe_mask(&dev_priv->drm, crtc,
bad: 					 bigjoiner_pipes(dev_priv)) {
bad: 		enum intel_display_power_domain power_domain;
bad: 		enum pipe pipe = crtc->pipe;
bad: 		intel_wakeref_t wakeref;
bad: 
bad: 		power_domain = intel_dsc_power_domain(crtc, (enum transcoder) pipe);
BAD:!!!!! 		with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref) {
bad: 			u32 tmp = intel_de_read(dev_priv, ICL_PIPE_DSS_CTL1(pipe));
bad: 
bad: 			if (!(tmp & BIG_JOINER_ENABLE))
bad: 				continue;
bad: 
bad: 			if (tmp & MASTER_BIG_JOINER_ENABLE)
bad: 				*master_pipes |= BIT(pipe);
bad: 			else
bad: 				*slave_pipes |= BIT(pipe);
bad: 		}
bad: 
bad: 		if (DISPLAY_VER(dev_priv) < 13)
bad: 			continue;
bad: 
bad: 		power_domain = POWER_DOMAIN_PIPE(pipe);
bad: 		with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref) {
bad: 			u32 tmp = intel_de_read(dev_priv, ICL_PIPE_DSS_CTL1(pipe));
bad: 
bad: 			if (tmp & UNCOMPRESSED_JOINER_MASTER)
bad: 				*master_pipes |= BIT(pipe);
bad: 			if (tmp & UNCOMPRESSED_JOINER_SLAVE)
bad: 				*slave_pipes |= BIT(pipe);
bad: 		}
bad: 	}
bad: 
bad: 	/* Bigjoiner pipes should always be consecutive master and slave */
bad: 	drm_WARN(&dev_priv->drm, *slave_pipes != *master_pipes << 1,
bad: 		 "Bigjoiner misconfigured (master pipes 0x%x, slave pipes 0x%x)\n",
bad: 		 *master_pipes, *slave_pipes);
bad: }
ERROR-RECOV: found sync '}' at line 3868
parsing pass2: try again
ERROR-RECOV: found sync '}' at line 3868
parsing pass3: try again
ERROR-RECOV: found sync '}' at line 3868
parse error 
 = File "intel_display.c", line 3823, column 3, charpos = 114767
  around = 'tmp',
  whole content = 			tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
badcount: 69
bad: }
bad: 
bad: static u8 hsw_enabled_transcoders(struct intel_crtc *crtc)
bad: {
bad: 	struct drm_device *dev = crtc->base.dev;
bad: 	struct drm_i915_private *dev_priv = to_i915(dev);
bad: 	u8 panel_transcoder_mask = hsw_panel_transcoders(dev_priv);
bad: 	enum transcoder cpu_transcoder;
bad: 	u8 master_pipes, slave_pipes;
bad: 	u8 enabled_transcoders = 0;
bad: 
bad: 	/*
bad: 	 * XXX: Do intel_display_power_get_if_enabled before reading this (for
bad: 	 * consistency and less surprising code; it's in always on power).
bad: 	 */
bad: 	for_each_cpu_transcoder_masked(dev_priv, cpu_transcoder,
bad: 				       panel_transcoder_mask) {
bad: 		enum intel_display_power_domain power_domain;
bad: 		intel_wakeref_t wakeref;
bad: 		enum pipe trans_pipe;
bad: 		u32 tmp = 0;
bad: 
bad: 		power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
bad: 		with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref)
BAD:!!!!! 			tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
bad: 
bad: 		if (!(tmp & TRANS_DDI_FUNC_ENABLE))
bad: 			continue;
bad: 
bad: 		switch (tmp & TRANS_DDI_EDP_INPUT_MASK) {
bad: 		default:
bad: 			drm_WARN(dev, 1,
bad: 				 "unknown pipe linked to transcoder %s\n",
bad: 				 transcoder_name(cpu_transcoder));
bad: 			fallthrough;
bad: 		case TRANS_DDI_EDP_INPUT_A_ONOFF:
bad: 		case TRANS_DDI_EDP_INPUT_A_ON:
bad: 			trans_pipe = PIPE_A;
bad: 			break;
bad: 		case TRANS_DDI_EDP_INPUT_B_ONOFF:
bad: 			trans_pipe = PIPE_B;
bad: 			break;
bad: 		case TRANS_DDI_EDP_INPUT_C_ONOFF:
bad: 			trans_pipe = PIPE_C;
bad: 			break;
bad: 		case TRANS_DDI_EDP_INPUT_D_ONOFF:
bad: 			trans_pipe = PIPE_D;
bad: 			break;
bad: 		}
bad: 
bad: 		if (trans_pipe == crtc->pipe)
bad: 			enabled_transcoders |= BIT(cpu_transcoder);
bad: 	}
bad: 
bad: 	/* single pipe or bigjoiner master */
bad: 	cpu_transcoder = (enum transcoder) crtc->pipe;
bad: 	if (transcoder_ddi_func_is_enabled(dev_priv, cpu_transcoder))
bad: 		enabled_transcoders |= BIT(cpu_transcoder);
bad: 
bad: 	/* bigjoiner slave -> consider the master pipe's transcoder as well */
bad: 	enabled_bigjoiner_pipes(dev_priv, &master_pipes, &slave_pipes);
bad: 	if (slave_pipes & BIT(crtc->pipe)) {
bad: 		cpu_transcoder = (enum transcoder)
bad: 			get_bigjoiner_master_pipe(crtc->pipe, master_pipes, slave_pipes);
bad: 		if (transcoder_ddi_func_is_enabled(dev_priv, cpu_transcoder))
bad: 			enabled_transcoders |= BIT(cpu_transcoder);
bad: 	}
bad: 
bad: 	return enabled_transcoders;
bad: }
(ONCE) ast_to_flow: filter a directive
-----------------------------------------------------------------------
macros_noargs = 
-----------------------------------------------------------------------
dependencies for rule macros_noargs satisfied:
binding in = []
binding relevant in = []
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_DEVICE_READY]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_DEVICE_READY]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_INTR_STAT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_INTR_STAT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_INTR_EN]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_INTR_EN]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_DSI_FUNC_PRG]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_DSI_FUNC_PRG]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_HS_TX_TIMEOUT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_HS_TX_TIMEOUT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_LP_RX_TIMEOUT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_LP_RX_TIMEOUT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_TURN_AROUND_TIMEOUT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_TURN_AROUND_TIMEOUT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_DEVICE_RESET_TIMER]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_DEVICE_RESET_TIMER]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_DPI_RESOLUTION]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_DPI_RESOLUTION]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_DBI_FIFO_THROTTLE]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_DBI_FIFO_THROTTLE]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_HSYNC_PADDING_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_HSYNC_PADDING_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_HBP_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_HBP_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_HFP_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_HFP_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_HACTIVE_AREA_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_HACTIVE_AREA_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_VSYNC_PADDING_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_VSYNC_PADDING_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_VBP_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_VBP_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_VFP_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_VFP_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_HIGH_LOW_SWITCH_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_HIGH_LOW_SWITCH_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_DPI_CONTROL]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_DPI_CONTROL]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_DPI_DATA]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_DPI_DATA]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_INIT_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_INIT_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_MAX_RETURN_PKT_SIZE]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_MAX_RETURN_PKT_SIZE]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_VIDEO_MODE_FORMAT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_VIDEO_MODE_FORMAT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_EOT_DISABLE]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_EOT_DISABLE]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_LP_BYTECLK]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_LP_BYTECLK]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_TLPX_TIME_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_TLPX_TIME_COUNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_CLK_LANE_TIMING]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_CLK_LANE_TIMING]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_LP_GEN_DATA]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_LP_GEN_DATA]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_HS_GEN_DATA]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_HS_GEN_DATA]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_LP_GEN_CTRL]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_LP_GEN_CTRL]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_HS_GEN_CTRL]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_HS_GEN_CTRL]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_GEN_FIFO_STAT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_GEN_FIFO_STAT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_HS_LS_DBI_ENABLE]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_HS_LS_DBI_ENABLE]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_DPHY_PARAM]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_DPHY_PARAM]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_DBI_BW_CTRL]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_DBI_BW_CTRL]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_CLK_LANE_SWITCH_TIME_CNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_CLK_LANE_SWITCH_TIME_CNT]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_STOP_STATE_STALL]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_STOP_STATE_STALL]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_INTR_STAT_REG_1]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_INTR_STAT_REG_1]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_INTR_EN_REG_1]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_INTR_EN_REG_1]
     transformation info is empty
     binding out = [macros_noargs.m --> id MIPIA_DBI_TYPEC_CTRL]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_CTRL]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_CTRL]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_DATA_ADDRESS]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_DATA_ADDRESS]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_DATA_LENGTH]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_DATA_LENGTH]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_COMMAND_ADDRESS]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_COMMAND_ADDRESS]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_COMMAND_LENGTH]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_COMMAND_LENGTH]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_READ_DATA_RETURN0]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_READ_DATA_RETURN0]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIA_READ_DATA_VALID]
     transformation info is empty
     binding out = [macros_noargs.m --> id _MIPIC_READ_DATA_VALID]
-----------------------------------------------------------------------
nested_macros = 
-----------------------------------------------------------------------
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id MIPIA_DBI_TYPEC_CTRL]
binding relevant in = [macros_noargs.m --> id MIPIA_DBI_TYPEC_CTRL]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_CLK_LANE_SWITCH_TIME_CNT]
binding relevant in = [macros_noargs.m --> id _MIPIA_CLK_LANE_SWITCH_TIME_CNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_CLK_LANE_SWITCH_TIME_CNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_CLK_LANE_TIMING]
binding relevant in = [macros_noargs.m --> id _MIPIA_CLK_LANE_TIMING]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_CLK_LANE_TIMING]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_COMMAND_ADDRESS]
binding relevant in = [macros_noargs.m --> id _MIPIA_COMMAND_ADDRESS]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_COMMAND_ADDRESS]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_COMMAND_LENGTH]
binding relevant in = [macros_noargs.m --> id _MIPIA_COMMAND_LENGTH]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_COMMAND_LENGTH]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_CTRL]
binding relevant in = [macros_noargs.m --> id _MIPIA_CTRL]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_CTRL]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_DATA_ADDRESS]
binding relevant in = [macros_noargs.m --> id _MIPIA_DATA_ADDRESS]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DATA_ADDRESS]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_DATA_LENGTH]
binding relevant in = [macros_noargs.m --> id _MIPIA_DATA_LENGTH]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DATA_LENGTH]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_DBI_BW_CTRL]
binding relevant in = [macros_noargs.m --> id _MIPIA_DBI_BW_CTRL]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DBI_BW_CTRL]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_DBI_FIFO_THROTTLE]
binding relevant in = [macros_noargs.m --> id _MIPIA_DBI_FIFO_THROTTLE]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DBI_FIFO_THROTTLE]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_DEVICE_READY]
binding relevant in = [macros_noargs.m --> id _MIPIA_DEVICE_READY]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DEVICE_READY]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_DEVICE_RESET_TIMER]
binding relevant in = [macros_noargs.m --> id _MIPIA_DEVICE_RESET_TIMER]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DEVICE_RESET_TIMER]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_DPHY_PARAM]
binding relevant in = [macros_noargs.m --> id _MIPIA_DPHY_PARAM]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DPHY_PARAM]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_DPI_CONTROL]
binding relevant in = [macros_noargs.m --> id _MIPIA_DPI_CONTROL]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DPI_CONTROL]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_DPI_DATA]
binding relevant in = [macros_noargs.m --> id _MIPIA_DPI_DATA]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DPI_DATA]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_DPI_RESOLUTION]
binding relevant in = [macros_noargs.m --> id _MIPIA_DPI_RESOLUTION]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DPI_RESOLUTION]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_DSI_FUNC_PRG]
binding relevant in = [macros_noargs.m --> id _MIPIA_DSI_FUNC_PRG]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DSI_FUNC_PRG]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_EOT_DISABLE]
binding relevant in = [macros_noargs.m --> id _MIPIA_EOT_DISABLE]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_EOT_DISABLE]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_GEN_FIFO_STAT]
binding relevant in = [macros_noargs.m --> id _MIPIA_GEN_FIFO_STAT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_GEN_FIFO_STAT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_HACTIVE_AREA_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIA_HACTIVE_AREA_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HACTIVE_AREA_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_HBP_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIA_HBP_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HBP_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_HFP_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIA_HFP_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HFP_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_HIGH_LOW_SWITCH_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIA_HIGH_LOW_SWITCH_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HIGH_LOW_SWITCH_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_HSYNC_PADDING_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIA_HSYNC_PADDING_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HSYNC_PADDING_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_HS_GEN_CTRL]
binding relevant in = [macros_noargs.m --> id _MIPIA_HS_GEN_CTRL]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HS_GEN_CTRL]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_HS_GEN_DATA]
binding relevant in = [macros_noargs.m --> id _MIPIA_HS_GEN_DATA]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HS_GEN_DATA]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_HS_LS_DBI_ENABLE]
binding relevant in = [macros_noargs.m --> id _MIPIA_HS_LS_DBI_ENABLE]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HS_LP_DBI_ENABLE]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_HS_TX_TIMEOUT]
binding relevant in = [macros_noargs.m --> id _MIPIA_HS_TX_TIMEOUT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HS_TX_TIMEOUT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_INIT_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIA_INIT_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_INIT_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_INTR_EN]
binding relevant in = [macros_noargs.m --> id _MIPIA_INTR_EN]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_INTR_EN]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_INTR_EN_REG_1]
binding relevant in = [macros_noargs.m --> id _MIPIA_INTR_EN_REG_1]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_INTR_EN_REG_1]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_INTR_STAT]
binding relevant in = [macros_noargs.m --> id _MIPIA_INTR_STAT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_INTR_STAT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_INTR_STAT_REG_1]
binding relevant in = [macros_noargs.m --> id _MIPIA_INTR_STAT_REG_1]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_INTR_STAT_REG_1]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_LP_BYTECLK]
binding relevant in = [macros_noargs.m --> id _MIPIA_LP_BYTECLK]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_LP_BYTECLK]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_LP_GEN_CTRL]
binding relevant in = [macros_noargs.m --> id _MIPIA_LP_GEN_CTRL]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_LP_GEN_CTRL]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_LP_GEN_DATA]
binding relevant in = [macros_noargs.m --> id _MIPIA_LP_GEN_DATA]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_LP_GEN_DATA]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_LP_RX_TIMEOUT]
binding relevant in = [macros_noargs.m --> id _MIPIA_LP_RX_TIMEOUT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_LP_RX_TIMEOUT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_MAX_RETURN_PKT_SIZE]
binding relevant in = [macros_noargs.m --> id _MIPIA_MAX_RETURN_PKT_SIZE]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_MAX_RETURN_PKT_SIZE]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_READ_DATA_RETURN0]
binding relevant in = [macros_noargs.m --> id _MIPIA_READ_DATA_RETURN0]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_READ_DATA_RETURN]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_READ_DATA_VALID]
binding relevant in = [macros_noargs.m --> id _MIPIA_READ_DATA_VALID]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_READ_DATA_VALID]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_STOP_STATE_STALL]
binding relevant in = [macros_noargs.m --> id _MIPIA_STOP_STATE_STALL]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_STOP_STATE_STALL]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_TLPX_TIME_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIA_TLPX_TIME_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_TLPX_TIME_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_TURN_AROUND_TIMEOUT]
binding relevant in = [macros_noargs.m --> id _MIPIA_TURN_AROUND_TIMEOUT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_TURN_AROUND_TIMEOUT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_VBP_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIA_VBP_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_VBP_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_VFP_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIA_VFP_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_VFP_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_VIDEO_MODE_FORMAT]
binding relevant in = [macros_noargs.m --> id _MIPIA_VIDEO_MODE_FORMAT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_VIDEO_MODE_FORMAT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIA_VSYNC_PADDING_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIA_VSYNC_PADDING_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_VSYNC_PADDING_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_CLK_LANE_SWITCH_TIME_CNT]
binding relevant in = [macros_noargs.m --> id _MIPIC_CLK_LANE_SWITCH_TIME_CNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_CLK_LANE_SWITCH_TIME_CNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_CLK_LANE_TIMING]
binding relevant in = [macros_noargs.m --> id _MIPIC_CLK_LANE_TIMING]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_CLK_LANE_TIMING]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_COMMAND_ADDRESS]
binding relevant in = [macros_noargs.m --> id _MIPIC_COMMAND_ADDRESS]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_COMMAND_ADDRESS]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_COMMAND_LENGTH]
binding relevant in = [macros_noargs.m --> id _MIPIC_COMMAND_LENGTH]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_COMMAND_LENGTH]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_CTRL]
binding relevant in = [macros_noargs.m --> id _MIPIC_CTRL]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_CTRL]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_DATA_ADDRESS]
binding relevant in = [macros_noargs.m --> id _MIPIC_DATA_ADDRESS]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DATA_ADDRESS]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_DATA_LENGTH]
binding relevant in = [macros_noargs.m --> id _MIPIC_DATA_LENGTH]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DATA_LENGTH]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_DBI_BW_CTRL]
binding relevant in = [macros_noargs.m --> id _MIPIC_DBI_BW_CTRL]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DBI_BW_CTRL]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_DBI_FIFO_THROTTLE]
binding relevant in = [macros_noargs.m --> id _MIPIC_DBI_FIFO_THROTTLE]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DBI_FIFO_THROTTLE]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_DEVICE_READY]
binding relevant in = [macros_noargs.m --> id _MIPIC_DEVICE_READY]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DEVICE_READY]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_DEVICE_RESET_TIMER]
binding relevant in = [macros_noargs.m --> id _MIPIC_DEVICE_RESET_TIMER]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DEVICE_RESET_TIMER]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_DPHY_PARAM]
binding relevant in = [macros_noargs.m --> id _MIPIC_DPHY_PARAM]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DPHY_PARAM]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_DPI_CONTROL]
binding relevant in = [macros_noargs.m --> id _MIPIC_DPI_CONTROL]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DPI_CONTROL]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_DPI_DATA]
binding relevant in = [macros_noargs.m --> id _MIPIC_DPI_DATA]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DPI_DATA]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_DPI_RESOLUTION]
binding relevant in = [macros_noargs.m --> id _MIPIC_DPI_RESOLUTION]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DPI_RESOLUTION]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_DSI_FUNC_PRG]
binding relevant in = [macros_noargs.m --> id _MIPIC_DSI_FUNC_PRG]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_DSI_FUNC_PRG]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_EOT_DISABLE]
binding relevant in = [macros_noargs.m --> id _MIPIC_EOT_DISABLE]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_EOT_DISABLE]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_GEN_FIFO_STAT]
binding relevant in = [macros_noargs.m --> id _MIPIC_GEN_FIFO_STAT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_GEN_FIFO_STAT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_HACTIVE_AREA_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIC_HACTIVE_AREA_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HACTIVE_AREA_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_HBP_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIC_HBP_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HBP_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_HFP_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIC_HFP_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HFP_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_HIGH_LOW_SWITCH_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIC_HIGH_LOW_SWITCH_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HIGH_LOW_SWITCH_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_HSYNC_PADDING_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIC_HSYNC_PADDING_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HSYNC_PADDING_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_HS_GEN_CTRL]
binding relevant in = [macros_noargs.m --> id _MIPIC_HS_GEN_CTRL]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HS_GEN_CTRL]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_HS_GEN_DATA]
binding relevant in = [macros_noargs.m --> id _MIPIC_HS_GEN_DATA]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HS_GEN_DATA]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_HS_LS_DBI_ENABLE]
binding relevant in = [macros_noargs.m --> id _MIPIC_HS_LS_DBI_ENABLE]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HS_LP_DBI_ENABLE]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_HS_TX_TIMEOUT]
binding relevant in = [macros_noargs.m --> id _MIPIC_HS_TX_TIMEOUT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_HS_TX_TIMEOUT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_INIT_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIC_INIT_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_INIT_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_INTR_EN]
binding relevant in = [macros_noargs.m --> id _MIPIC_INTR_EN]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_INTR_EN]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_INTR_EN_REG_1]
binding relevant in = [macros_noargs.m --> id _MIPIC_INTR_EN_REG_1]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_INTR_EN_REG_1]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_INTR_STAT]
binding relevant in = [macros_noargs.m --> id _MIPIC_INTR_STAT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_INTR_STAT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_INTR_STAT_REG_1]
binding relevant in = [macros_noargs.m --> id _MIPIC_INTR_STAT_REG_1]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_INTR_STAT_REG_1]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_LP_BYTECLK]
binding relevant in = [macros_noargs.m --> id _MIPIC_LP_BYTECLK]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_LP_BYTECLK]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_LP_GEN_CTRL]
binding relevant in = [macros_noargs.m --> id _MIPIC_LP_GEN_CTRL]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_LP_GEN_CTRL]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_LP_GEN_DATA]
binding relevant in = [macros_noargs.m --> id _MIPIC_LP_GEN_DATA]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_LP_GEN_DATA]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_LP_RX_TIMEOUT]
binding relevant in = [macros_noargs.m --> id _MIPIC_LP_RX_TIMEOUT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_LP_RX_TIMEOUT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_MAX_RETURN_PKT_SIZE]
binding relevant in = [macros_noargs.m --> id _MIPIC_MAX_RETURN_PKT_SIZE]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_MAX_RETURN_PKT_SIZE]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_READ_DATA_RETURN0]
binding relevant in = [macros_noargs.m --> id _MIPIC_READ_DATA_RETURN0]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_READ_DATA_RETURN]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_READ_DATA_VALID]
binding relevant in = [macros_noargs.m --> id _MIPIC_READ_DATA_VALID]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_READ_DATA_VALID]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_STOP_STATE_STALL]
binding relevant in = [macros_noargs.m --> id _MIPIC_STOP_STATE_STALL]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_STOP_STATE_STALL]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_TLPX_TIME_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIC_TLPX_TIME_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_TLPX_TIME_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_TURN_AROUND_TIMEOUT]
binding relevant in = [macros_noargs.m --> id _MIPIC_TURN_AROUND_TIMEOUT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_TURN_AROUND_TIMEOUT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_VBP_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIC_VBP_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_VBP_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_VFP_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIC_VFP_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_VFP_COUNT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_VIDEO_MODE_FORMAT]
binding relevant in = [macros_noargs.m --> id _MIPIC_VIDEO_MODE_FORMAT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_VIDEO_MODE_FORMAT]
dependencies for rule nested_macros satisfied:
binding in = [macros_noargs.m --> id _MIPIC_VSYNC_PADDING_COUNT]
binding relevant in = [macros_noargs.m --> id _MIPIC_VSYNC_PADDING_COUNT]
     transformation info is empty
     binding out = [nested_macros.nm --> id MIPI_VSYNC_PADDING_COUNT]
-----------------------------------------------------------------------
rule starting on line 14 = 
-----------------------------------------------------------------------
dependencies for rule rule starting on line 14 satisfied:
binding in = []
binding relevant in = []
     (ONCE) USING optional_qualifier builtin isomorphism
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_CLK_LANE_SWITCH_TIME_CNT]
binding relevant in = [nested_macros.nm --> id MIPI_CLK_LANE_SWITCH_TIME_CNT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_CLK_LANE_TIMING]
binding relevant in = [nested_macros.nm --> id MIPI_CLK_LANE_TIMING]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_COMMAND_ADDRESS]
binding relevant in = [nested_macros.nm --> id MIPI_COMMAND_ADDRESS]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_COMMAND_LENGTH]
binding relevant in = [nested_macros.nm --> id MIPI_COMMAND_LENGTH]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_CTRL]
binding relevant in = [nested_macros.nm --> id MIPI_CTRL]
     (ONCE) USING optional_storage builtin isomorphism
     transformation info returned:
          transform state: 50
warning: rule starting on line 14, node 50: tmp = ... ;[1,2,8,9,20] in bxt_get_dsi_transcoder_state may be inconsistently modified
               with rule_elem: nm(
                                    <<< dev_priv, 
                                  el)
               with binding: [rule starting on line 14.dev_priv --> id dev_priv;
                             nested_macros.nm --> id MIPI_CTRL]
     binding out = []
     transform one node: 50
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_DATA_ADDRESS]
binding relevant in = [nested_macros.nm --> id MIPI_DATA_ADDRESS]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_DATA_LENGTH]
binding relevant in = [nested_macros.nm --> id MIPI_DATA_LENGTH]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_DBI_BW_CTRL]
binding relevant in = [nested_macros.nm --> id MIPI_DBI_BW_CTRL]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_DBI_FIFO_THROTTLE]
binding relevant in = [nested_macros.nm --> id MIPI_DBI_FIFO_THROTTLE]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_DEVICE_READY]
binding relevant in = [nested_macros.nm --> id MIPI_DEVICE_READY]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_DEVICE_RESET_TIMER]
binding relevant in = [nested_macros.nm --> id MIPI_DEVICE_RESET_TIMER]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_DPHY_PARAM]
binding relevant in = [nested_macros.nm --> id MIPI_DPHY_PARAM]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_DPI_CONTROL]
binding relevant in = [nested_macros.nm --> id MIPI_DPI_CONTROL]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_DPI_DATA]
binding relevant in = [nested_macros.nm --> id MIPI_DPI_DATA]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_DPI_RESOLUTION]
binding relevant in = [nested_macros.nm --> id MIPI_DPI_RESOLUTION]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_DSI_FUNC_PRG]
binding relevant in = [nested_macros.nm --> id MIPI_DSI_FUNC_PRG]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_EOT_DISABLE]
binding relevant in = [nested_macros.nm --> id MIPI_EOT_DISABLE]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_GEN_FIFO_STAT]
binding relevant in = [nested_macros.nm --> id MIPI_GEN_FIFO_STAT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_HACTIVE_AREA_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_HACTIVE_AREA_COUNT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_HBP_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_HBP_COUNT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_HFP_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_HFP_COUNT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_HIGH_LOW_SWITCH_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_HIGH_LOW_SWITCH_COUNT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_HSYNC_PADDING_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_HSYNC_PADDING_COUNT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_HS_GEN_CTRL]
binding relevant in = [nested_macros.nm --> id MIPI_HS_GEN_CTRL]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_HS_GEN_DATA]
binding relevant in = [nested_macros.nm --> id MIPI_HS_GEN_DATA]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_HS_LP_DBI_ENABLE]
binding relevant in = [nested_macros.nm --> id MIPI_HS_LP_DBI_ENABLE]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_HS_TX_TIMEOUT]
binding relevant in = [nested_macros.nm --> id MIPI_HS_TX_TIMEOUT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_INIT_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_INIT_COUNT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_INTR_EN]
binding relevant in = [nested_macros.nm --> id MIPI_INTR_EN]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_INTR_EN_REG_1]
binding relevant in = [nested_macros.nm --> id MIPI_INTR_EN_REG_1]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_INTR_STAT]
binding relevant in = [nested_macros.nm --> id MIPI_INTR_STAT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_INTR_STAT_REG_1]
binding relevant in = [nested_macros.nm --> id MIPI_INTR_STAT_REG_1]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_LP_BYTECLK]
binding relevant in = [nested_macros.nm --> id MIPI_LP_BYTECLK]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_LP_GEN_CTRL]
binding relevant in = [nested_macros.nm --> id MIPI_LP_GEN_CTRL]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_LP_GEN_DATA]
binding relevant in = [nested_macros.nm --> id MIPI_LP_GEN_DATA]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_LP_RX_TIMEOUT]
binding relevant in = [nested_macros.nm --> id MIPI_LP_RX_TIMEOUT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_MAX_RETURN_PKT_SIZE]
binding relevant in = [nested_macros.nm --> id MIPI_MAX_RETURN_PKT_SIZE]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_READ_DATA_RETURN]
binding relevant in = [nested_macros.nm --> id MIPI_READ_DATA_RETURN]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_READ_DATA_VALID]
binding relevant in = [nested_macros.nm --> id MIPI_READ_DATA_VALID]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_STOP_STATE_STALL]
binding relevant in = [nested_macros.nm --> id MIPI_STOP_STATE_STALL]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_TLPX_TIME_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_TLPX_TIME_COUNT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_TURN_AROUND_TIMEOUT]
binding relevant in = [nested_macros.nm --> id MIPI_TURN_AROUND_TIMEOUT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_VBP_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_VBP_COUNT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_VFP_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_VFP_COUNT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_VIDEO_MODE_FORMAT]
binding relevant in = [nested_macros.nm --> id MIPI_VIDEO_MODE_FORMAT]
dependencies for rule rule starting on line 14 satisfied:
binding in = [nested_macros.nm --> id MIPI_VSYNC_PADDING_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_VSYNC_PADDING_COUNT]
-----------------------------------------------------------------------
rule starting on line 30 = 
-----------------------------------------------------------------------
dependencies for rule rule starting on line 30 satisfied:
binding in = []
binding relevant in = []
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_CLK_LANE_SWITCH_TIME_CNT]
binding relevant in = [nested_macros.nm --> id MIPI_CLK_LANE_SWITCH_TIME_CNT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_CLK_LANE_TIMING]
binding relevant in = [nested_macros.nm --> id MIPI_CLK_LANE_TIMING]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_COMMAND_ADDRESS]
binding relevant in = [nested_macros.nm --> id MIPI_COMMAND_ADDRESS]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_COMMAND_LENGTH]
binding relevant in = [nested_macros.nm --> id MIPI_COMMAND_LENGTH]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_CTRL]
binding relevant in = [nested_macros.nm --> id MIPI_CTRL]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_DATA_ADDRESS]
binding relevant in = [nested_macros.nm --> id MIPI_DATA_ADDRESS]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_DATA_LENGTH]
binding relevant in = [nested_macros.nm --> id MIPI_DATA_LENGTH]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_DBI_BW_CTRL]
binding relevant in = [nested_macros.nm --> id MIPI_DBI_BW_CTRL]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_DBI_FIFO_THROTTLE]
binding relevant in = [nested_macros.nm --> id MIPI_DBI_FIFO_THROTTLE]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_DEVICE_READY]
binding relevant in = [nested_macros.nm --> id MIPI_DEVICE_READY]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_DEVICE_RESET_TIMER]
binding relevant in = [nested_macros.nm --> id MIPI_DEVICE_RESET_TIMER]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_DPHY_PARAM]
binding relevant in = [nested_macros.nm --> id MIPI_DPHY_PARAM]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_DPI_CONTROL]
binding relevant in = [nested_macros.nm --> id MIPI_DPI_CONTROL]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_DPI_DATA]
binding relevant in = [nested_macros.nm --> id MIPI_DPI_DATA]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_DPI_RESOLUTION]
binding relevant in = [nested_macros.nm --> id MIPI_DPI_RESOLUTION]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_DSI_FUNC_PRG]
binding relevant in = [nested_macros.nm --> id MIPI_DSI_FUNC_PRG]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_EOT_DISABLE]
binding relevant in = [nested_macros.nm --> id MIPI_EOT_DISABLE]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_GEN_FIFO_STAT]
binding relevant in = [nested_macros.nm --> id MIPI_GEN_FIFO_STAT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_HACTIVE_AREA_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_HACTIVE_AREA_COUNT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_HBP_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_HBP_COUNT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_HFP_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_HFP_COUNT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_HIGH_LOW_SWITCH_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_HIGH_LOW_SWITCH_COUNT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_HSYNC_PADDING_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_HSYNC_PADDING_COUNT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_HS_GEN_CTRL]
binding relevant in = [nested_macros.nm --> id MIPI_HS_GEN_CTRL]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_HS_GEN_DATA]
binding relevant in = [nested_macros.nm --> id MIPI_HS_GEN_DATA]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_HS_LP_DBI_ENABLE]
binding relevant in = [nested_macros.nm --> id MIPI_HS_LP_DBI_ENABLE]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_HS_TX_TIMEOUT]
binding relevant in = [nested_macros.nm --> id MIPI_HS_TX_TIMEOUT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_INIT_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_INIT_COUNT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_INTR_EN]
binding relevant in = [nested_macros.nm --> id MIPI_INTR_EN]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_INTR_EN_REG_1]
binding relevant in = [nested_macros.nm --> id MIPI_INTR_EN_REG_1]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_INTR_STAT]
binding relevant in = [nested_macros.nm --> id MIPI_INTR_STAT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_INTR_STAT_REG_1]
binding relevant in = [nested_macros.nm --> id MIPI_INTR_STAT_REG_1]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_LP_BYTECLK]
binding relevant in = [nested_macros.nm --> id MIPI_LP_BYTECLK]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_LP_GEN_CTRL]
binding relevant in = [nested_macros.nm --> id MIPI_LP_GEN_CTRL]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_LP_GEN_DATA]
binding relevant in = [nested_macros.nm --> id MIPI_LP_GEN_DATA]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_LP_RX_TIMEOUT]
binding relevant in = [nested_macros.nm --> id MIPI_LP_RX_TIMEOUT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_MAX_RETURN_PKT_SIZE]
binding relevant in = [nested_macros.nm --> id MIPI_MAX_RETURN_PKT_SIZE]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_READ_DATA_RETURN]
binding relevant in = [nested_macros.nm --> id MIPI_READ_DATA_RETURN]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_READ_DATA_VALID]
binding relevant in = [nested_macros.nm --> id MIPI_READ_DATA_VALID]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_STOP_STATE_STALL]
binding relevant in = [nested_macros.nm --> id MIPI_STOP_STATE_STALL]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_TLPX_TIME_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_TLPX_TIME_COUNT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_TURN_AROUND_TIMEOUT]
binding relevant in = [nested_macros.nm --> id MIPI_TURN_AROUND_TIMEOUT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_VBP_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_VBP_COUNT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_VFP_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_VFP_COUNT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_VIDEO_MODE_FORMAT]
binding relevant in = [nested_macros.nm --> id MIPI_VIDEO_MODE_FORMAT]
dependencies for rule rule starting on line 30 satisfied:
binding in = [nested_macros.nm --> id MIPI_VSYNC_PADDING_COUNT]
binding relevant in = [nested_macros.nm --> id MIPI_VSYNC_PADDING_COUNT]
-----------------------------------------------------------------------
Finished
-----------------------------------------------------------------------
ERROR-RECOV: found sync end of #define, line 162
parsing pass2: try again
ERROR-RECOV: found sync end of #define, line 162
parse error 
 = File "./intel_display_power.h", line 162, column 51, charpos = 4051
  around = '',
  whole content = 		for_each_if(test_bit((__domain), (__mask)->bits))
badcount: 4
bad: };
bad: 
bad: #define for_each_power_domain(__domain, __mask)				\
bad: 	for ((__domain) = 0; (__domain) < POWER_DOMAIN_NUM; (__domain)++)	\
BAD:!!!!! 		for_each_if(test_bit((__domain), (__mask)->bits))
ERROR-RECOV: found sync end of #define, line 282
parsing pass2: try again
ERROR-RECOV: found sync end of #define, line 282
parse error 
 = File "./intel_display_power.h", line 282, column 70, charpos = 8858
  around = '',
  whole content = 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
badcount: 4
bad: 			     u8 req_slices);
bad: 
bad: #define with_intel_display_power(i915, domain, wf) \
bad: 	for ((wf) = intel_display_power_get((i915), (domain)); (wf); \
BAD:!!!!! 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
ERROR-RECOV: found sync end of #define, line 286
parsing pass2: try again
ERROR-RECOV: found sync end of #define, line 286
parse error 
 = File "./intel_display_power.h", line 286, column 70, charpos = 9069
  around = '',
  whole content = 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
badcount: 4
bad: 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
bad: 
bad: #define with_intel_display_power_if_enabled(i915, domain, wf) \
bad: 	for ((wf) = intel_display_power_get_if_enabled((i915), (domain)); (wf); \
BAD:!!!!! 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
ERROR-RECOV: found sync end of #define, line 24
parsing pass2: try again
ERROR-RECOV: found sync end of #define, line 24
parse error 
 = File "./intel_pps.h", line 24, column 75, charpos = 574
  around = '',
  whole content = 	for ((wf) = intel_pps_lock(dp); (wf); (wf) = intel_pps_unlock((dp), (wf)))
badcount: 3
bad: intel_wakeref_t intel_pps_unlock(struct intel_dp *intel_dp, intel_wakeref_t wakeref);
bad: 
bad: #define with_intel_pps_lock(dp, wf)						\
BAD:!!!!! 	for ((wf) = intel_pps_lock(dp); (wf); (wf) = intel_pps_unlock((dp), (wf)))
ERROR-RECOV: found sync '}' at line 3711
parsing pass2: try again
ERROR-RECOV: found sync '}' at line 3711
parsing pass3: try again
ERROR-RECOV: found sync '}' at line 3711
parse error 
 = File "intel_display.c", line 3708, column 2, charpos = 111316
  around = 'tmp',
  whole content = 		tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
badcount: 15
bad: }
bad: 
bad: static bool transcoder_ddi_func_is_enabled(struct drm_i915_private *dev_priv,
bad: 					   enum transcoder cpu_transcoder)
bad: {
bad: 	enum intel_display_power_domain power_domain;
bad: 	intel_wakeref_t wakeref;
bad: 	u32 tmp = 0;
bad: 
bad: 	power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
bad: 
bad: 	with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref)
BAD:!!!!! 		tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
bad: 
bad: 	return tmp & TRANS_DDI_FUNC_ENABLE;
bad: }
ERROR-RECOV: found sync '}' at line 3758
parsing pass2: try again
ERROR-RECOV: found sync '}' at line 3758
parsing pass3: try again
ERROR-RECOV: found sync '}' at line 3758
parse error 
 = File "intel_display.c", line 3728, column 71, charpos = 111947
  around = '{',
  whole content = 		with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref) {
badcount: 47
bad: }
bad: 
bad: static void enabled_bigjoiner_pipes(struct drm_i915_private *dev_priv,
bad: 				    u8 *master_pipes, u8 *slave_pipes)
bad: {
bad: 	struct intel_crtc *crtc;
bad: 
bad: 	*master_pipes = 0;
bad: 	*slave_pipes = 0;
bad: 
bad: 	for_each_intel_crtc_in_pipe_mask(&dev_priv->drm, crtc,
bad: 					 bigjoiner_pipes(dev_priv)) {
bad: 		enum intel_display_power_domain power_domain;
bad: 		enum pipe pipe = crtc->pipe;
bad: 		intel_wakeref_t wakeref;
bad: 
bad: 		power_domain = intel_dsc_power_domain(crtc, (enum transcoder) pipe);
BAD:!!!!! 		with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref) {
bad: 			u32 tmp = intel_de_read(dev_priv, ICL_PIPE_DSS_CTL1(pipe));
bad: 
bad: 			if (!(tmp & BIG_JOINER_ENABLE))
bad: 				continue;
bad: 
bad: 			if (tmp & MASTER_BIG_JOINER_ENABLE)
bad: 				*master_pipes |= BIT(pipe);
bad: 			else
bad: 				*slave_pipes |= BIT(pipe);
bad: 		}
bad: 
bad: 		if (DISPLAY_VER(dev_priv) < 13)
bad: 			continue;
bad: 
bad: 		power_domain = POWER_DOMAIN_PIPE(pipe);
bad: 		with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref) {
bad: 			u32 tmp = intel_de_read(dev_priv, ICL_PIPE_DSS_CTL1(pipe));
bad: 
bad: 			if (tmp & UNCOMPRESSED_JOINER_MASTER)
bad: 				*master_pipes |= BIT(pipe);
bad: 			if (tmp & UNCOMPRESSED_JOINER_SLAVE)
bad: 				*slave_pipes |= BIT(pipe);
bad: 		}
bad: 	}
bad: 
bad: 	/* Bigjoiner pipes should always be consecutive master and slave */
bad: 	drm_WARN(&dev_priv->drm, *slave_pipes != *master_pipes << 1,
bad: 		 "Bigjoiner misconfigured (master pipes 0x%x, slave pipes 0x%x)\n",
bad: 		 *master_pipes, *slave_pipes);
bad: }
ERROR-RECOV: found sync '}' at line 3868
parsing pass2: try again
ERROR-RECOV: found sync '}' at line 3868
parsing pass3: try again
ERROR-RECOV: found sync '}' at line 3868
parse error 
 = File "intel_display.c", line 3823, column 3, charpos = 114767
  around = 'tmp',
  whole content = 			tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
badcount: 69
bad: }
bad: 
bad: static u8 hsw_enabled_transcoders(struct intel_crtc *crtc)
bad: {
bad: 	struct drm_device *dev = crtc->base.dev;
bad: 	struct drm_i915_private *dev_priv = to_i915(dev);
bad: 	u8 panel_transcoder_mask = hsw_panel_transcoders(dev_priv);
bad: 	enum transcoder cpu_transcoder;
bad: 	u8 master_pipes, slave_pipes;
bad: 	u8 enabled_transcoders = 0;
bad: 
bad: 	/*
bad: 	 * XXX: Do intel_display_power_get_if_enabled before reading this (for
bad: 	 * consistency and less surprising code; it's in always on power).
bad: 	 */
bad: 	for_each_cpu_transcoder_masked(dev_priv, cpu_transcoder,
bad: 				       panel_transcoder_mask) {
bad: 		enum intel_display_power_domain power_domain;
bad: 		intel_wakeref_t wakeref;
bad: 		enum pipe trans_pipe;
bad: 		u32 tmp = 0;
bad: 
bad: 		power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
bad: 		with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref)
BAD:!!!!! 			tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
bad: 
bad: 		if (!(tmp & TRANS_DDI_FUNC_ENABLE))
bad: 			continue;
bad: 
bad: 		switch (tmp & TRANS_DDI_EDP_INPUT_MASK) {
bad: 		default:
bad: 			drm_WARN(dev, 1,
bad: 				 "unknown pipe linked to transcoder %s\n",
bad: 				 transcoder_name(cpu_transcoder));
bad: 			fallthrough;
bad: 		case TRANS_DDI_EDP_INPUT_A_ONOFF:
bad: 		case TRANS_DDI_EDP_INPUT_A_ON:
bad: 			trans_pipe = PIPE_A;
bad: 			break;
bad: 		case TRANS_DDI_EDP_INPUT_B_ONOFF:
bad: 			trans_pipe = PIPE_B;
bad: 			break;
bad: 		case TRANS_DDI_EDP_INPUT_C_ONOFF:
bad: 			trans_pipe = PIPE_C;
bad: 			break;
bad: 		case TRANS_DDI_EDP_INPUT_D_ONOFF:
bad: 			trans_pipe = PIPE_D;
bad: 			break;
bad: 		}
bad: 
bad: 		if (trans_pipe == crtc->pipe)
bad: 			enabled_transcoders |= BIT(cpu_transcoder);
bad: 	}
bad: 
bad: 	/* single pipe or bigjoiner master */
bad: 	cpu_transcoder = (enum transcoder) crtc->pipe;
bad: 	if (transcoder_ddi_func_is_enabled(dev_priv, cpu_transcoder))
bad: 		enabled_transcoders |= BIT(cpu_transcoder);
bad: 
bad: 	/* bigjoiner slave -> consider the master pipe's transcoder as well */
bad: 	enabled_bigjoiner_pipes(dev_priv, &master_pipes, &slave_pipes);
bad: 	if (slave_pipes & BIT(crtc->pipe)) {
bad: 		cpu_transcoder = (enum transcoder)
bad: 			get_bigjoiner_master_pipe(crtc->pipe, master_pipes, slave_pipes);
bad: 		if (transcoder_ddi_func_is_enabled(dev_priv, cpu_transcoder))
bad: 			enabled_transcoders |= BIT(cpu_transcoder);
bad: 	}
bad: 
bad: 	return enabled_transcoders;
bad: }
ERROR-RECOV: found sync end of #define, line 162
parsing pass2: try again
ERROR-RECOV: found sync end of #define, line 162
parse error 
 = File "./intel_display_power.h", line 162, column 51, charpos = 4051
  around = '',
  whole content = 		for_each_if(test_bit((__domain), (__mask)->bits))
badcount: 4
bad: };
bad: 
bad: #define for_each_power_domain(__domain, __mask)				\
bad: 	for ((__domain) = 0; (__domain) < POWER_DOMAIN_NUM; (__domain)++)	\
BAD:!!!!! 		for_each_if(test_bit((__domain), (__mask)->bits))
ERROR-RECOV: found sync end of #define, line 282
parsing pass2: try again
ERROR-RECOV: found sync end of #define, line 282
parse error 
 = File "./intel_display_power.h", line 282, column 70, charpos = 8858
  around = '',
  whole content = 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
badcount: 4
bad: 			     u8 req_slices);
bad: 
bad: #define with_intel_display_power(i915, domain, wf) \
bad: 	for ((wf) = intel_display_power_get((i915), (domain)); (wf); \
BAD:!!!!! 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
ERROR-RECOV: found sync end of #define, line 286
parsing pass2: try again
ERROR-RECOV: found sync end of #define, line 286
parse error 
 = File "./intel_display_power.h", line 286, column 70, charpos = 9069
  around = '',
  whole content = 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
badcount: 4
bad: 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
bad: 
bad: #define with_intel_display_power_if_enabled(i915, domain, wf) \
bad: 	for ((wf) = intel_display_power_get_if_enabled((i915), (domain)); (wf); \
BAD:!!!!! 	     intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
ERROR-RECOV: found sync end of #define, line 24
parsing pass2: try again
ERROR-RECOV: found sync end of #define, line 24
parse error 
 = File "./intel_pps.h", line 24, column 75, charpos = 574
  around = '',
  whole content = 	for ((wf) = intel_pps_lock(dp); (wf); (wf) = intel_pps_unlock((dp), (wf)))
badcount: 3
bad: intel_wakeref_t intel_pps_unlock(struct intel_dp *intel_dp, intel_wakeref_t wakeref);
bad: 
bad: #define with_intel_pps_lock(dp, wf)						\
BAD:!!!!! 	for ((wf) = intel_pps_lock(dp); (wf); (wf) = intel_pps_unlock((dp), (wf)))
ERROR-RECOV: found sync '}' at line 3711
parsing pass2: try again
ERROR-RECOV: found sync '}' at line 3711
parsing pass3: try again
ERROR-RECOV: found sync '}' at line 3711
parse error 
 = File "/tmp/cocci-output-254504-99ee4f-intel_display.c", line 3708, column 2, charpos = 111316
  around = 'tmp',
  whole content = 		tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
badcount: 15
bad: }
bad: 
bad: static bool transcoder_ddi_func_is_enabled(struct drm_i915_private *dev_priv,
bad: 					   enum transcoder cpu_transcoder)
bad: {
bad: 	enum intel_display_power_domain power_domain;
bad: 	intel_wakeref_t wakeref;
bad: 	u32 tmp = 0;
bad: 
bad: 	power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
bad: 
bad: 	with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref)
BAD:!!!!! 		tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
bad: 
bad: 	return tmp & TRANS_DDI_FUNC_ENABLE;
bad: }
ERROR-RECOV: found sync '}' at line 3758
parsing pass2: try again
ERROR-RECOV: found sync '}' at line 3758
parsing pass3: try again
ERROR-RECOV: found sync '}' at line 3758
parse error 
 = File "/tmp/cocci-output-254504-99ee4f-intel_display.c", line 3728, column 71, charpos = 111947
  around = '{',
  whole content = 		with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref) {
badcount: 47
bad: }
bad: 
bad: static void enabled_bigjoiner_pipes(struct drm_i915_private *dev_priv,
bad: 				    u8 *master_pipes, u8 *slave_pipes)
bad: {
bad: 	struct intel_crtc *crtc;
bad: 
bad: 	*master_pipes = 0;
bad: 	*slave_pipes = 0;
bad: 
bad: 	for_each_intel_crtc_in_pipe_mask(&dev_priv->drm, crtc,
bad: 					 bigjoiner_pipes(dev_priv)) {
bad: 		enum intel_display_power_domain power_domain;
bad: 		enum pipe pipe = crtc->pipe;
bad: 		intel_wakeref_t wakeref;
bad: 
bad: 		power_domain = intel_dsc_power_domain(crtc, (enum transcoder) pipe);
BAD:!!!!! 		with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref) {
bad: 			u32 tmp = intel_de_read(dev_priv, ICL_PIPE_DSS_CTL1(pipe));
bad: 
bad: 			if (!(tmp & BIG_JOINER_ENABLE))
bad: 				continue;
bad: 
bad: 			if (tmp & MASTER_BIG_JOINER_ENABLE)
bad: 				*master_pipes |= BIT(pipe);
bad: 			else
bad: 				*slave_pipes |= BIT(pipe);
bad: 		}
bad: 
bad: 		if (DISPLAY_VER(dev_priv) < 13)
bad: 			continue;
bad: 
bad: 		power_domain = POWER_DOMAIN_PIPE(pipe);
bad: 		with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref) {
bad: 			u32 tmp = intel_de_read(dev_priv, ICL_PIPE_DSS_CTL1(pipe));
bad: 
bad: 			if (tmp & UNCOMPRESSED_JOINER_MASTER)
bad: 				*master_pipes |= BIT(pipe);
bad: 			if (tmp & UNCOMPRESSED_JOINER_SLAVE)
bad: 				*slave_pipes |= BIT(pipe);
bad: 		}
bad: 	}
bad: 
bad: 	/* Bigjoiner pipes should always be consecutive master and slave */
bad: 	drm_WARN(&dev_priv->drm, *slave_pipes != *master_pipes << 1,
bad: 		 "Bigjoiner misconfigured (master pipes 0x%x, slave pipes 0x%x)\n",
bad: 		 *master_pipes, *slave_pipes);
bad: }
ERROR-RECOV: found sync '}' at line 3868
parsing pass2: try again
ERROR-RECOV: found sync '}' at line 3868
parsing pass3: try again
ERROR-RECOV: found sync '}' at line 3868
parse error 
 = File "/tmp/cocci-output-254504-99ee4f-intel_display.c", line 3823, column 3, charpos = 114767
  around = 'tmp',
  whole content = 			tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
badcount: 69
bad: }
bad: 
bad: static u8 hsw_enabled_transcoders(struct intel_crtc *crtc)
bad: {
bad: 	struct drm_device *dev = crtc->base.dev;
bad: 	struct drm_i915_private *dev_priv = to_i915(dev);
bad: 	u8 panel_transcoder_mask = hsw_panel_transcoders(dev_priv);
bad: 	enum transcoder cpu_transcoder;
bad: 	u8 master_pipes, slave_pipes;
bad: 	u8 enabled_transcoders = 0;
bad: 
bad: 	/*
bad: 	 * XXX: Do intel_display_power_get_if_enabled before reading this (for
bad: 	 * consistency and less surprising code; it's in always on power).
bad: 	 */
bad: 	for_each_cpu_transcoder_masked(dev_priv, cpu_transcoder,
bad: 				       panel_transcoder_mask) {
bad: 		enum intel_display_power_domain power_domain;
bad: 		intel_wakeref_t wakeref;
bad: 		enum pipe trans_pipe;
bad: 		u32 tmp = 0;
bad: 
bad: 		power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder);
bad: 		with_intel_display_power_if_enabled(dev_priv, power_domain, wakeref)
BAD:!!!!! 			tmp = intel_de_read(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder));
bad: 
bad: 		if (!(tmp & TRANS_DDI_FUNC_ENABLE))
bad: 			continue;
bad: 
bad: 		switch (tmp & TRANS_DDI_EDP_INPUT_MASK) {
bad: 		default:
bad: 			drm_WARN(dev, 1,
bad: 				 "unknown pipe linked to transcoder %s\n",
bad: 				 transcoder_name(cpu_transcoder));
bad: 			fallthrough;
bad: 		case TRANS_DDI_EDP_INPUT_A_ONOFF:
bad: 		case TRANS_DDI_EDP_INPUT_A_ON:
bad: 			trans_pipe = PIPE_A;
bad: 			break;
bad: 		case TRANS_DDI_EDP_INPUT_B_ONOFF:
bad: 			trans_pipe = PIPE_B;
bad: 			break;
bad: 		case TRANS_DDI_EDP_INPUT_C_ONOFF:
bad: 			trans_pipe = PIPE_C;
bad: 			break;
bad: 		case TRANS_DDI_EDP_INPUT_D_ONOFF:
bad: 			trans_pipe = PIPE_D;
bad: 			break;
bad: 		}
bad: 
bad: 		if (trans_pipe == crtc->pipe)
bad: 			enabled_transcoders |= BIT(cpu_transcoder);
bad: 	}
bad: 
bad: 	/* single pipe or bigjoiner master */
bad: 	cpu_transcoder = (enum transcoder) crtc->pipe;
bad: 	if (transcoder_ddi_func_is_enabled(dev_priv, cpu_transcoder))
bad: 		enabled_transcoders |= BIT(cpu_transcoder);
bad: 
bad: 	/* bigjoiner slave -> consider the master pipe's transcoder as well */
bad: 	enabled_bigjoiner_pipes(dev_priv, &master_pipes, &slave_pipes);
bad: 	if (slave_pipes & BIT(crtc->pipe)) {
bad: 		cpu_transcoder = (enum transcoder)
bad: 			get_bigjoiner_master_pipe(crtc->pipe, master_pipes, slave_pipes);
bad: 		if (transcoder_ddi_func_is_enabled(dev_priv, cpu_transcoder))
bad: 			enabled_transcoders |= BIT(cpu_transcoder);
bad: 	}
bad: 
bad: 	return enabled_transcoders;
bad: }
diff = 
--- intel_display.c
+++ /tmp/cocci-output-254504-99ee4f-intel_display.c
@@ -3973,7 +3973,8 @@ static bool bxt_get_dsi_transcoder_state
 		if (!(tmp & DPI_ENABLE))
 			continue;
 
-		tmp = intel_de_read(dev_priv, MIPI_CTRL(dev_priv, port));
+		tmp = intel_de_read(dev_priv,
+				    MIPI_CTRL(dev_priv, dev_priv, port));
 		if ((tmp & BXT_PIPE_SELECT_MASK) != BXT_PIPE_SELECT(crtc->pipe))
 			continue;
 
Check duplication for 70 files

  reply	other threads:[~2023-01-30  8:50 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-27 17:07 [cocci] Nested macros Luca Coelho
2023-01-27 18:34 ` [cocci] Checking selected macro calls with SmPL Markus Elfring
2023-01-27 20:52 ` [cocci] Nested macros Julia Lawall
2023-01-27 22:00   ` Luca Coelho
2023-01-28  9:19     ` Julia Lawall
2023-01-28  9:25       ` Luca Coelho
2023-01-28  9:46     ` [cocci] Searching for special function implementations with SmPL Markus Elfring
2023-01-28  9:49       ` Julia Lawall
2023-01-28 10:03         ` Luca Coelho
2023-01-28 13:33           ` Julia Lawall
2023-01-29 16:39             ` Luca Coelho
2023-01-29 17:28               ` Julia Lawall
2023-01-29 17:55                 ` Luca Coelho
2023-01-29 19:15                   ` Luca Coelho
2023-01-29 20:09                     ` Julia Lawall
2023-01-30  6:32                       ` Luca Coelho
2023-01-30  8:37                         ` Julia Lawall
2023-01-30  8:50                           ` Luca Coelho [this message]
2023-01-30  8:56                             ` Julia Lawall
2023-01-30  9:05                               ` Luca Coelho
2023-01-30  9:34                             ` Markus Elfring
2023-01-30  9:41                               ` Luca Coelho
2023-01-30  9:50                                 ` Markus Elfring
2023-01-30  9:52                                   ` Luca Coelho
2023-01-30  9:55                                     ` Julia Lawall
2023-01-30 10:07                                     ` Markus Elfring
2023-01-30 10:47                                     ` Julia Lawall
2023-01-30 10:59                                       ` Luca Coelho
2023-01-30 11:25                                         ` Markus Elfring
2023-01-31 15:57                                         ` Luca Coelho
2023-01-31 15:59                                           ` Luca Coelho
2023-01-31 16:08                                           ` Julia Lawall
2023-01-31 16:10                                             ` Luca Coelho
2023-01-31 16:20                                               ` Julia Lawall
2023-01-29 18:01               ` [cocci] Adding a parameter for special macro calls " Markus Elfring
2023-01-29 19:11                 ` Luca Coelho
2023-01-28 13:43           ` [cocci] Searching for special function implementations " Markus Elfring
2023-01-29 16:41             ` Luca Coelho

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=13bf65ac8504fa5ebcaf69539422fcd38bf157d1.camel@coelho.fi \
    --to=luca@coelho.fi \
    --cc=Markus.Elfring@web.de \
    --cc=cocci@inria.fr \
    --cc=julia.lawall@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.