All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t] lib/igt_chamelium: Remove any special handling for the connector FSM
@ 2017-08-04 14:10 Paul Kocialkowski
  2017-08-28 14:25 ` Paul Kocialkowski
  0 siblings, 1 reply; 2+ messages in thread
From: Paul Kocialkowski @ 2017-08-04 14:10 UTC (permalink / raw)
  To: intel-gfx

No specific treatment should be required for handling the connector FSM,
since the chamelium-side daemon will automatically send an HPD event to
reset the source.

The event is sufficient to make the receiver on the chamelium consider
the input as stable after it. On the other hand, toggling DPMS was found
to sometimes confuse the receiver so that it does not consider the input
as stable at any point. Doing nothing special instead works in all cases.

This issue can be witnessed with i915 when drm debugging is enabled and
leads to DP frame-related tests failing on the test farm.

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com>
---
 lib/igt_chamelium.c | 113 ++++++++++++----------------------------------------
 1 file changed, 25 insertions(+), 88 deletions(-)

diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
index dcd8855f..4cea5fdb 100644
--- a/lib/igt_chamelium.c
+++ b/lib/igt_chamelium.c
@@ -209,57 +209,13 @@ void chamelium_destroy_frame_dump(struct chamelium_frame_dump *dump)
 	free(dump);
 }
 
-struct fsm_monitor_args {
-	struct chamelium *chamelium;
-	struct chamelium_port *port;
-	struct udev_monitor *mon;
-};
-
-/*
- * Whenever resolutions or other factors change with the display output, the
- * Chamelium's display receivers need to be fully reset in order to perform any
- * frame-capturing related tasks. This requires cutting off the display then
- * turning it back on, and is indicated by the Chamelium sending hotplug events
- */
-static void *chamelium_fsm_mon(void *data)
-{
-	struct fsm_monitor_args *args = data;
-	drmModeConnector *connector;
-	int drm_fd = args->chamelium->drm_fd;
-
-	/*
-	 * Wait for the chamelium to try unplugging the connector, otherwise
-	 * the thread calling chamelium_rpc will kill us
-	 */
-	igt_hotplug_detected(args->mon, 60);
-
-	/*
-	 * Just in case the RPC call being executed returns before we complete
-	 * the FSM modesetting sequence, so we don't leave the display in a bad
-	 * state.
-	 */
-	pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
-
-	igt_debug("Chamelium needs FSM, handling\n");
-	connector = chamelium_port_get_connector(args->chamelium, args->port,
-						 false);
-	kmstest_set_connector_dpms(drm_fd, connector, DRM_MODE_DPMS_OFF);
-	kmstest_set_connector_dpms(drm_fd, connector, DRM_MODE_DPMS_ON);
-
-	drmModeFreeConnector(connector);
-	return NULL;
-}
-
 static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
-				   struct chamelium_port *fsm_port,
 				   const char *method_name,
 				   const char *format_str,
 				   ...)
 {
 	xmlrpc_value *res;
 	va_list va_args;
-	struct fsm_monitor_args monitor_args;
-	pthread_t fsm_thread_id;
 
 	/* Cleanup the last error, if any */
 	if (chamelium->env.fault_occurred) {
@@ -267,31 +223,12 @@ static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
 		xmlrpc_env_init(&chamelium->env);
 	}
 
-	/* Unfortunately xmlrpc_client's event loop helpers are rather useless
-	 * for implementing any sort of event loop, since they provide no way
-	 * to poll for events other then the RPC response. This means in order
-	 * to handle the chamelium attempting FSM, we have to fork into another
-	 * thread and have that handle hotplugging displays
-	 */
-	if (fsm_port) {
-		monitor_args.chamelium = chamelium;
-		monitor_args.port = fsm_port;
-		monitor_args.mon = igt_watch_hotplug();
-		pthread_create(&fsm_thread_id, NULL, chamelium_fsm_mon,
-			       &monitor_args);
-	}
-
 	va_start(va_args, format_str);
 	xmlrpc_client_call2f_va(&chamelium->env, chamelium->client,
 				chamelium->url, method_name, format_str, &res,
 				va_args);
 	va_end(va_args);
 
-	if (fsm_port) {
-		pthread_cancel(fsm_thread_id);
-		igt_cleanup_hotplug(monitor_args.mon);
-	}
-
 	igt_assert_f(!chamelium->env.fault_occurred,
 		     "Chamelium RPC call failed: %s\n",
 		     chamelium->env.fault_string);
@@ -310,7 +247,7 @@ static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
 void chamelium_plug(struct chamelium *chamelium, struct chamelium_port *port)
 {
 	igt_debug("Plugging %s\n", port->name);
-	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "Plug", "(i)", port->id));
+	xmlrpc_DECREF(chamelium_rpc(chamelium, "Plug", "(i)", port->id));
 }
 
 /**
@@ -324,7 +261,7 @@ void chamelium_plug(struct chamelium *chamelium, struct chamelium_port *port)
 void chamelium_unplug(struct chamelium *chamelium, struct chamelium_port *port)
 {
 	igt_debug("Unplugging port %s\n", port->name);
-	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "Unplug", "(i)",
+	xmlrpc_DECREF(chamelium_rpc(chamelium, "Unplug", "(i)",
 				    port->id));
 }
 
@@ -344,7 +281,7 @@ bool chamelium_is_plugged(struct chamelium *chamelium,
 	xmlrpc_value *res;
 	xmlrpc_bool is_plugged;
 
-	res = chamelium_rpc(chamelium, NULL, "IsPlugged", "(i)", port->id);
+	res = chamelium_rpc(chamelium, "IsPlugged", "(i)", port->id);
 
 	xmlrpc_read_bool(&chamelium->env, res, &is_plugged);
 	xmlrpc_DECREF(res);
@@ -373,7 +310,7 @@ bool chamelium_port_wait_video_input_stable(struct chamelium *chamelium,
 
 	igt_debug("Waiting for video input to stabalize on %s\n", port->name);
 
-	res = chamelium_rpc(chamelium, port, "WaitVideoInputStable", "(ii)",
+	res = chamelium_rpc(chamelium, "WaitVideoInputStable", "(ii)",
 			    port->id, timeout_secs);
 
 	xmlrpc_read_bool(&chamelium->env, res, &is_on);
@@ -413,7 +350,7 @@ void chamelium_fire_hpd_pulses(struct chamelium *chamelium,
 	for (i = 0; i < count; i++)
 		xmlrpc_array_append_item(&chamelium->env, pulse_widths, width);
 
-	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "FireMixedHpdPulses",
+	xmlrpc_DECREF(chamelium_rpc(chamelium, "FireMixedHpdPulses",
 				    "(iA)", port->id, pulse_widths));
 
 	xmlrpc_DECREF(width);
@@ -446,7 +383,7 @@ void chamelium_fire_mixed_hpd_pulses(struct chamelium *chamelium,
 	}
 	va_end(args);
 
-	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "FireMixedHpdPulses",
+	xmlrpc_DECREF(chamelium_rpc(chamelium, "FireMixedHpdPulses",
 				    "(iA)", port->id, pulse_widths));
 
 	xmlrpc_DECREF(pulse_widths);
@@ -470,7 +407,7 @@ void chamelium_schedule_hpd_toggle(struct chamelium *chamelium,
 	igt_debug("Scheduling HPD toggle on %s in %d ms\n", port->name,
 		  delay_ms);
 
-	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "ScheduleHpdToggle",
+	xmlrpc_DECREF(chamelium_rpc(chamelium, "ScheduleHpdToggle",
 				    "(iii)", port->id, delay_ms, rising_edge));
 }
 
@@ -490,7 +427,7 @@ int chamelium_new_edid(struct chamelium *chamelium, const unsigned char *edid)
 	struct chamelium_edid *allocated_edid;
 	int edid_id;
 
-	res = chamelium_rpc(chamelium, NULL, "CreateEdid", "(6)",
+	res = chamelium_rpc(chamelium, "CreateEdid", "(6)",
 			    edid, EDID_LENGTH);
 
 	xmlrpc_read_int(&chamelium->env, res, &edid_id);
@@ -512,7 +449,7 @@ int chamelium_new_edid(struct chamelium *chamelium, const unsigned char *edid)
 
 static void chamelium_destroy_edid(struct chamelium *chamelium, int edid_id)
 {
-	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "DestroyEdid", "(i)",
+	xmlrpc_DECREF(chamelium_rpc(chamelium, "DestroyEdid", "(i)",
 				    edid_id));
 }
 
@@ -532,7 +469,7 @@ static void chamelium_destroy_edid(struct chamelium *chamelium, int edid_id)
 void chamelium_port_set_edid(struct chamelium *chamelium,
 			     struct chamelium_port *port, int edid_id)
 {
-	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "ApplyEdid", "(ii)",
+	xmlrpc_DECREF(chamelium_rpc(chamelium, "ApplyEdid", "(ii)",
 				    port->id, edid_id));
 }
 
@@ -554,7 +491,7 @@ void chamelium_port_set_ddc_state(struct chamelium *chamelium,
 	igt_debug("%sabling DDC bus on %s\n",
 		  enabled ? "En" : "Dis", port->name);
 
-	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "SetDdcState", "(ib)",
+	xmlrpc_DECREF(chamelium_rpc(chamelium, "SetDdcState", "(ib)",
 				    port->id, enabled));
 }
 
@@ -574,7 +511,7 @@ bool chamelium_port_get_ddc_state(struct chamelium *chamelium,
 	xmlrpc_value *res;
 	xmlrpc_bool enabled;
 
-	res = chamelium_rpc(chamelium, NULL, "IsDdcEnabled", "(i)", port->id);
+	res = chamelium_rpc(chamelium, "IsDdcEnabled", "(i)", port->id);
 	xmlrpc_read_bool(&chamelium->env, res, &enabled);
 
 	xmlrpc_DECREF(res);
@@ -599,7 +536,7 @@ void chamelium_port_get_resolution(struct chamelium *chamelium,
 {
 	xmlrpc_value *res, *res_x, *res_y;
 
-	res = chamelium_rpc(chamelium, port, "DetectResolution", "(i)",
+	res = chamelium_rpc(chamelium, "DetectResolution", "(i)",
 			    port->id);
 
 	xmlrpc_array_read_item(&chamelium->env, res, 0, &res_x);
@@ -617,7 +554,7 @@ static void chamelium_get_captured_resolution(struct chamelium *chamelium,
 {
 	xmlrpc_value *res, *res_w, *res_h;
 
-	res = chamelium_rpc(chamelium, NULL, "GetCapturedResolution", "()");
+	res = chamelium_rpc(chamelium, "GetCapturedResolution", "()");
 
 	xmlrpc_array_read_item(&chamelium->env, res, 0, &res_w);
 	xmlrpc_array_read_item(&chamelium->env, res, 1, &res_h);
@@ -680,7 +617,7 @@ struct chamelium_frame_dump *chamelium_port_dump_pixels(struct chamelium *chamel
 	xmlrpc_value *res;
 	struct chamelium_frame_dump *frame;
 
-	res = chamelium_rpc(chamelium, port, "DumpPixels",
+	res = chamelium_rpc(chamelium, "DumpPixels",
 			    (w && h) ? "(iiiii)" : "(innnn)",
 			    port->id, x, y, w, h);
 	chamelium->capturing_port = port;
@@ -742,7 +679,7 @@ igt_crc_t *chamelium_get_crc_for_area(struct chamelium *chamelium,
 	xmlrpc_value *res;
 	igt_crc_t *ret = malloc(sizeof(igt_crc_t));
 
-	res = chamelium_rpc(chamelium, port, "ComputePixelChecksum",
+	res = chamelium_rpc(chamelium, "ComputePixelChecksum",
 			    (w && h) ? "(iiiii)" : "(innnn)",
 			    port->id, x, y, w, h);
 	chamelium->capturing_port = port;
@@ -780,7 +717,7 @@ igt_crc_t *chamelium_get_crc_for_area(struct chamelium *chamelium,
 void chamelium_start_capture(struct chamelium *chamelium,
 			     struct chamelium_port *port, int x, int y, int w, int h)
 {
-	xmlrpc_DECREF(chamelium_rpc(chamelium, port, "StartCapturingVideo",
+	xmlrpc_DECREF(chamelium_rpc(chamelium, "StartCapturingVideo",
 				    (w && h) ? "(iiiii)" : "(innnn)",
 				    port->id, x, y, w, h));
 	chamelium->capturing_port = port;
@@ -798,7 +735,7 @@ void chamelium_start_capture(struct chamelium *chamelium,
  */
 void chamelium_stop_capture(struct chamelium *chamelium, int frame_count)
 {
-	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "StopCapturingVideo",
+	xmlrpc_DECREF(chamelium_rpc(chamelium, "StopCapturingVideo",
 				    "(i)", frame_count));
 }
 
@@ -829,7 +766,7 @@ void chamelium_stop_capture(struct chamelium *chamelium, int frame_count)
 void chamelium_capture(struct chamelium *chamelium, struct chamelium_port *port,
 		       int x, int y, int w, int h, int frame_count)
 {
-	xmlrpc_DECREF(chamelium_rpc(chamelium, port, "CaptureVideo",
+	xmlrpc_DECREF(chamelium_rpc(chamelium, "CaptureVideo",
 				    (w && h) ? "(iiiiii)" : "(iinnnn)",
 				    port->id, frame_count, x, y, w, h));
 	chamelium->capturing_port = port;
@@ -851,7 +788,7 @@ igt_crc_t *chamelium_read_captured_crcs(struct chamelium *chamelium,
 	xmlrpc_value *res, *elem;
 	int i;
 
-	res = chamelium_rpc(chamelium, NULL, "GetCapturedChecksums", "(in)", 0);
+	res = chamelium_rpc(chamelium, "GetCapturedChecksums", "(in)", 0);
 
 	*frame_count = xmlrpc_array_size(&chamelium->env, res);
 	ret = calloc(sizeof(igt_crc_t), *frame_count);
@@ -887,7 +824,7 @@ struct chamelium_frame_dump *chamelium_read_captured_frame(struct chamelium *cha
 	xmlrpc_value *res;
 	struct chamelium_frame_dump *frame;
 
-	res = chamelium_rpc(chamelium, NULL, "ReadCapturedFrame", "(i)", index);
+	res = chamelium_rpc(chamelium, "ReadCapturedFrame", "(i)", index);
 	frame = frame_from_xml(chamelium, res);
 	xmlrpc_DECREF(res);
 
@@ -908,7 +845,7 @@ int chamelium_get_captured_frame_count(struct chamelium *chamelium)
 	xmlrpc_value *res;
 	int ret;
 
-	res = chamelium_rpc(chamelium, NULL, "GetCapturedFrameCount", "()");
+	res = chamelium_rpc(chamelium, "GetCapturedFrameCount", "()");
 	xmlrpc_read_int(&chamelium->env, res, &ret);
 
 	xmlrpc_DECREF(res);
@@ -1231,7 +1168,7 @@ int chamelium_get_frame_limit(struct chamelium *chamelium,
 	if (!w && !h)
 		chamelium_port_get_resolution(chamelium, port, &w, &h);
 
-	res = chamelium_rpc(chamelium, port, "GetMaxFrameLimit", "(iii)",
+	res = chamelium_rpc(chamelium, "GetMaxFrameLimit", "(iii)",
 			    port->id, w, h);
 
 	xmlrpc_read_int(&chamelium->env, res, &ret);
@@ -1383,7 +1320,7 @@ static unsigned int chamelium_get_port_type(struct chamelium *chamelium,
 	const char *port_type_str;
 	unsigned int port_type;
 
-	res = chamelium_rpc(chamelium, NULL, "GetConnectorType",
+	res = chamelium_rpc(chamelium, "GetConnectorType",
 			    "(i)", port->id);
 
 	xmlrpc_read_string(&chamelium->env, res, &port_type_str);
@@ -1524,7 +1461,7 @@ static bool chamelium_read_config(struct chamelium *chamelium, int drm_fd)
 void chamelium_reset(struct chamelium *chamelium)
 {
 	igt_debug("Resetting the chamelium\n");
-	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "Reset", "()"));
+	xmlrpc_DECREF(chamelium_rpc(chamelium, "Reset", "()"));
 }
 
 static void chamelium_exit_handler(int sig)
-- 
2.13.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH i-g-t] lib/igt_chamelium: Remove any special handling for the connector FSM
  2017-08-04 14:10 [PATCH i-g-t] lib/igt_chamelium: Remove any special handling for the connector FSM Paul Kocialkowski
@ 2017-08-28 14:25 ` Paul Kocialkowski
  0 siblings, 0 replies; 2+ messages in thread
From: Paul Kocialkowski @ 2017-08-28 14:25 UTC (permalink / raw)
  To: intel-gfx

On Fri, 2017-08-04 at 17:10 +0300, Paul Kocialkowski wrote:
> No specific treatment should be required for handling the connector
> FSM,
> since the chamelium-side daemon will automatically send an HPD event
> to
> reset the source.
> 
> The event is sufficient to make the receiver on the chamelium consider
> the input as stable after it. On the other hand, toggling DPMS was
> found
> to sometimes confuse the receiver so that it does not consider the
> input
> as stable at any point. Doing nothing special instead works in all
> cases.
> 
> This issue can be witnessed with i915 when drm debugging is enabled
> and
> leads to DP frame-related tests failing on the test farm.

It turns out the receiver was (most likely) confused by the extra reset
that was taking place in enable_output.

Now that it was removed, DP FSM does not fail anymore in this case, so
let's keep this as-is and forget about this change.

> Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com>
> ---
>  lib/igt_chamelium.c | 113 ++++++++++++-------------------------------
> ---------
>  1 file changed, 25 insertions(+), 88 deletions(-)
> 
> diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
> index dcd8855f..4cea5fdb 100644
> --- a/lib/igt_chamelium.c
> +++ b/lib/igt_chamelium.c
> @@ -209,57 +209,13 @@ void chamelium_destroy_frame_dump(struct
> chamelium_frame_dump *dump)
>  	free(dump);
>  }
>  
> -struct fsm_monitor_args {
> -	struct chamelium *chamelium;
> -	struct chamelium_port *port;
> -	struct udev_monitor *mon;
> -};
> -
> -/*
> - * Whenever resolutions or other factors change with the display
> output, the
> - * Chamelium's display receivers need to be fully reset in order to
> perform any
> - * frame-capturing related tasks. This requires cutting off the
> display then
> - * turning it back on, and is indicated by the Chamelium sending
> hotplug events
> - */
> -static void *chamelium_fsm_mon(void *data)
> -{
> -	struct fsm_monitor_args *args = data;
> -	drmModeConnector *connector;
> -	int drm_fd = args->chamelium->drm_fd;
> -
> -	/*
> -	 * Wait for the chamelium to try unplugging the connector,
> otherwise
> -	 * the thread calling chamelium_rpc will kill us
> -	 */
> -	igt_hotplug_detected(args->mon, 60);
> -
> -	/*
> -	 * Just in case the RPC call being executed returns before we
> complete
> -	 * the FSM modesetting sequence, so we don't leave the
> display in a bad
> -	 * state.
> -	 */
> -	pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
> -
> -	igt_debug("Chamelium needs FSM, handling\n");
> -	connector = chamelium_port_get_connector(args->chamelium,
> args->port,
> -						 false);
> -	kmstest_set_connector_dpms(drm_fd, connector,
> DRM_MODE_DPMS_OFF);
> -	kmstest_set_connector_dpms(drm_fd, connector,
> DRM_MODE_DPMS_ON);
> -
> -	drmModeFreeConnector(connector);
> -	return NULL;
> -}
> -
>  static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
> -				   struct chamelium_port *fsm_port,
>  				   const char *method_name,
>  				   const char *format_str,
>  				   ...)
>  {
>  	xmlrpc_value *res;
>  	va_list va_args;
> -	struct fsm_monitor_args monitor_args;
> -	pthread_t fsm_thread_id;
>  
>  	/* Cleanup the last error, if any */
>  	if (chamelium->env.fault_occurred) {
> @@ -267,31 +223,12 @@ static xmlrpc_value *chamelium_rpc(struct
> chamelium *chamelium,
>  		xmlrpc_env_init(&chamelium->env);
>  	}
>  
> -	/* Unfortunately xmlrpc_client's event loop helpers are
> rather useless
> -	 * for implementing any sort of event loop, since they
> provide no way
> -	 * to poll for events other then the RPC response. This means
> in order
> -	 * to handle the chamelium attempting FSM, we have to fork
> into another
> -	 * thread and have that handle hotplugging displays
> -	 */
> -	if (fsm_port) {
> -		monitor_args.chamelium = chamelium;
> -		monitor_args.port = fsm_port;
> -		monitor_args.mon = igt_watch_hotplug();
> -		pthread_create(&fsm_thread_id, NULL,
> chamelium_fsm_mon,
> -			       &monitor_args);
> -	}
> -
>  	va_start(va_args, format_str);
>  	xmlrpc_client_call2f_va(&chamelium->env, chamelium->client,
>  				chamelium->url, method_name,
> format_str, &res,
>  				va_args);
>  	va_end(va_args);
>  
> -	if (fsm_port) {
> -		pthread_cancel(fsm_thread_id);
> -		igt_cleanup_hotplug(monitor_args.mon);
> -	}
> -
>  	igt_assert_f(!chamelium->env.fault_occurred,
>  		     "Chamelium RPC call failed: %s\n",
>  		     chamelium->env.fault_string);
> @@ -310,7 +247,7 @@ static xmlrpc_value *chamelium_rpc(struct
> chamelium *chamelium,
>  void chamelium_plug(struct chamelium *chamelium, struct
> chamelium_port *port)
>  {
>  	igt_debug("Plugging %s\n", port->name);
> -	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "Plug", "(i)",
> port->id));
> +	xmlrpc_DECREF(chamelium_rpc(chamelium, "Plug", "(i)", port-
> >id));
>  }
>  
>  /**
> @@ -324,7 +261,7 @@ void chamelium_plug(struct chamelium *chamelium,
> struct chamelium_port *port)
>  void chamelium_unplug(struct chamelium *chamelium, struct
> chamelium_port *port)
>  {
>  	igt_debug("Unplugging port %s\n", port->name);
> -	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "Unplug", "(i)",
> +	xmlrpc_DECREF(chamelium_rpc(chamelium, "Unplug", "(i)",
>  				    port->id));
>  }
>  
> @@ -344,7 +281,7 @@ bool chamelium_is_plugged(struct chamelium
> *chamelium,
>  	xmlrpc_value *res;
>  	xmlrpc_bool is_plugged;
>  
> -	res = chamelium_rpc(chamelium, NULL, "IsPlugged", "(i)",
> port->id);
> +	res = chamelium_rpc(chamelium, "IsPlugged", "(i)", port->id);
>  
>  	xmlrpc_read_bool(&chamelium->env, res, &is_plugged);
>  	xmlrpc_DECREF(res);
> @@ -373,7 +310,7 @@ bool chamelium_port_wait_video_input_stable(struct
> chamelium *chamelium,
>  
>  	igt_debug("Waiting for video input to stabalize on %s\n",
> port->name);
>  
> -	res = chamelium_rpc(chamelium, port, "WaitVideoInputStable",
> "(ii)",
> +	res = chamelium_rpc(chamelium, "WaitVideoInputStable",
> "(ii)",
>  			    port->id, timeout_secs);
>  
>  	xmlrpc_read_bool(&chamelium->env, res, &is_on);
> @@ -413,7 +350,7 @@ void chamelium_fire_hpd_pulses(struct chamelium
> *chamelium,
>  	for (i = 0; i < count; i++)
>  		xmlrpc_array_append_item(&chamelium->env,
> pulse_widths, width);
>  
> -	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL,
> "FireMixedHpdPulses",
> +	xmlrpc_DECREF(chamelium_rpc(chamelium, "FireMixedHpdPulses",
>  				    "(iA)", port->id, pulse_widths));
>  
>  	xmlrpc_DECREF(width);
> @@ -446,7 +383,7 @@ void chamelium_fire_mixed_hpd_pulses(struct
> chamelium *chamelium,
>  	}
>  	va_end(args);
>  
> -	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL,
> "FireMixedHpdPulses",
> +	xmlrpc_DECREF(chamelium_rpc(chamelium, "FireMixedHpdPulses",
>  				    "(iA)", port->id, pulse_widths));
>  
>  	xmlrpc_DECREF(pulse_widths);
> @@ -470,7 +407,7 @@ void chamelium_schedule_hpd_toggle(struct
> chamelium *chamelium,
>  	igt_debug("Scheduling HPD toggle on %s in %d ms\n", port-
> >name,
>  		  delay_ms);
>  
> -	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL,
> "ScheduleHpdToggle",
> +	xmlrpc_DECREF(chamelium_rpc(chamelium, "ScheduleHpdToggle",
>  				    "(iii)", port->id, delay_ms,
> rising_edge));
>  }
>  
> @@ -490,7 +427,7 @@ int chamelium_new_edid(struct chamelium
> *chamelium, const unsigned char *edid)
>  	struct chamelium_edid *allocated_edid;
>  	int edid_id;
>  
> -	res = chamelium_rpc(chamelium, NULL, "CreateEdid", "(6)",
> +	res = chamelium_rpc(chamelium, "CreateEdid", "(6)",
>  			    edid, EDID_LENGTH);
>  
>  	xmlrpc_read_int(&chamelium->env, res, &edid_id);
> @@ -512,7 +449,7 @@ int chamelium_new_edid(struct chamelium
> *chamelium, const unsigned char *edid)
>  
>  static void chamelium_destroy_edid(struct chamelium *chamelium, int
> edid_id)
>  {
> -	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "DestroyEdid",
> "(i)",
> +	xmlrpc_DECREF(chamelium_rpc(chamelium, "DestroyEdid", "(i)",
>  				    edid_id));
>  }
>  
> @@ -532,7 +469,7 @@ static void chamelium_destroy_edid(struct
> chamelium *chamelium, int edid_id)
>  void chamelium_port_set_edid(struct chamelium *chamelium,
>  			     struct chamelium_port *port, int
> edid_id)
>  {
> -	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "ApplyEdid",
> "(ii)",
> +	xmlrpc_DECREF(chamelium_rpc(chamelium, "ApplyEdid", "(ii)",
>  				    port->id, edid_id));
>  }
>  
> @@ -554,7 +491,7 @@ void chamelium_port_set_ddc_state(struct chamelium
> *chamelium,
>  	igt_debug("%sabling DDC bus on %s\n",
>  		  enabled ? "En" : "Dis", port->name);
>  
> -	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "SetDdcState",
> "(ib)",
> +	xmlrpc_DECREF(chamelium_rpc(chamelium, "SetDdcState", "(ib)",
>  				    port->id, enabled));
>  }
>  
> @@ -574,7 +511,7 @@ bool chamelium_port_get_ddc_state(struct chamelium
> *chamelium,
>  	xmlrpc_value *res;
>  	xmlrpc_bool enabled;
>  
> -	res = chamelium_rpc(chamelium, NULL, "IsDdcEnabled", "(i)",
> port->id);
> +	res = chamelium_rpc(chamelium, "IsDdcEnabled", "(i)", port-
> >id);
>  	xmlrpc_read_bool(&chamelium->env, res, &enabled);
>  
>  	xmlrpc_DECREF(res);
> @@ -599,7 +536,7 @@ void chamelium_port_get_resolution(struct
> chamelium *chamelium,
>  {
>  	xmlrpc_value *res, *res_x, *res_y;
>  
> -	res = chamelium_rpc(chamelium, port, "DetectResolution",
> "(i)",
> +	res = chamelium_rpc(chamelium, "DetectResolution", "(i)",
>  			    port->id);
>  
>  	xmlrpc_array_read_item(&chamelium->env, res, 0, &res_x);
> @@ -617,7 +554,7 @@ static void
> chamelium_get_captured_resolution(struct chamelium *chamelium,
>  {
>  	xmlrpc_value *res, *res_w, *res_h;
>  
> -	res = chamelium_rpc(chamelium, NULL, "GetCapturedResolution",
> "()");
> +	res = chamelium_rpc(chamelium, "GetCapturedResolution",
> "()");
>  
>  	xmlrpc_array_read_item(&chamelium->env, res, 0, &res_w);
>  	xmlrpc_array_read_item(&chamelium->env, res, 1, &res_h);
> @@ -680,7 +617,7 @@ struct chamelium_frame_dump
> *chamelium_port_dump_pixels(struct chamelium *chamel
>  	xmlrpc_value *res;
>  	struct chamelium_frame_dump *frame;
>  
> -	res = chamelium_rpc(chamelium, port, "DumpPixels",
> +	res = chamelium_rpc(chamelium, "DumpPixels",
>  			    (w && h) ? "(iiiii)" : "(innnn)",
>  			    port->id, x, y, w, h);
>  	chamelium->capturing_port = port;
> @@ -742,7 +679,7 @@ igt_crc_t *chamelium_get_crc_for_area(struct
> chamelium *chamelium,
>  	xmlrpc_value *res;
>  	igt_crc_t *ret = malloc(sizeof(igt_crc_t));
>  
> -	res = chamelium_rpc(chamelium, port, "ComputePixelChecksum",
> +	res = chamelium_rpc(chamelium, "ComputePixelChecksum",
>  			    (w && h) ? "(iiiii)" : "(innnn)",
>  			    port->id, x, y, w, h);
>  	chamelium->capturing_port = port;
> @@ -780,7 +717,7 @@ igt_crc_t *chamelium_get_crc_for_area(struct
> chamelium *chamelium,
>  void chamelium_start_capture(struct chamelium *chamelium,
>  			     struct chamelium_port *port, int x, int
> y, int w, int h)
>  {
> -	xmlrpc_DECREF(chamelium_rpc(chamelium, port,
> "StartCapturingVideo",
> +	xmlrpc_DECREF(chamelium_rpc(chamelium, "StartCapturingVideo",
>  				    (w && h) ? "(iiiii)" : "(innnn)",
>  				    port->id, x, y, w, h));
>  	chamelium->capturing_port = port;
> @@ -798,7 +735,7 @@ void chamelium_start_capture(struct chamelium
> *chamelium,
>   */
>  void chamelium_stop_capture(struct chamelium *chamelium, int
> frame_count)
>  {
> -	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL,
> "StopCapturingVideo",
> +	xmlrpc_DECREF(chamelium_rpc(chamelium, "StopCapturingVideo",
>  				    "(i)", frame_count));
>  }
>  
> @@ -829,7 +766,7 @@ void chamelium_stop_capture(struct chamelium
> *chamelium, int frame_count)
>  void chamelium_capture(struct chamelium *chamelium, struct
> chamelium_port *port,
>  		       int x, int y, int w, int h, int frame_count)
>  {
> -	xmlrpc_DECREF(chamelium_rpc(chamelium, port, "CaptureVideo",
> +	xmlrpc_DECREF(chamelium_rpc(chamelium, "CaptureVideo",
>  				    (w && h) ? "(iiiiii)" :
> "(iinnnn)",
>  				    port->id, frame_count, x, y, w,
> h));
>  	chamelium->capturing_port = port;
> @@ -851,7 +788,7 @@ igt_crc_t *chamelium_read_captured_crcs(struct
> chamelium *chamelium,
>  	xmlrpc_value *res, *elem;
>  	int i;
>  
> -	res = chamelium_rpc(chamelium, NULL, "GetCapturedChecksums",
> "(in)", 0);
> +	res = chamelium_rpc(chamelium, "GetCapturedChecksums",
> "(in)", 0);
>  
>  	*frame_count = xmlrpc_array_size(&chamelium->env, res);
>  	ret = calloc(sizeof(igt_crc_t), *frame_count);
> @@ -887,7 +824,7 @@ struct chamelium_frame_dump
> *chamelium_read_captured_frame(struct chamelium *cha
>  	xmlrpc_value *res;
>  	struct chamelium_frame_dump *frame;
>  
> -	res = chamelium_rpc(chamelium, NULL, "ReadCapturedFrame",
> "(i)", index);
> +	res = chamelium_rpc(chamelium, "ReadCapturedFrame", "(i)",
> index);
>  	frame = frame_from_xml(chamelium, res);
>  	xmlrpc_DECREF(res);
>  
> @@ -908,7 +845,7 @@ int chamelium_get_captured_frame_count(struct
> chamelium *chamelium)
>  	xmlrpc_value *res;
>  	int ret;
>  
> -	res = chamelium_rpc(chamelium, NULL, "GetCapturedFrameCount",
> "()");
> +	res = chamelium_rpc(chamelium, "GetCapturedFrameCount",
> "()");
>  	xmlrpc_read_int(&chamelium->env, res, &ret);
>  
>  	xmlrpc_DECREF(res);
> @@ -1231,7 +1168,7 @@ int chamelium_get_frame_limit(struct chamelium
> *chamelium,
>  	if (!w && !h)
>  		chamelium_port_get_resolution(chamelium, port, &w,
> &h);
>  
> -	res = chamelium_rpc(chamelium, port, "GetMaxFrameLimit",
> "(iii)",
> +	res = chamelium_rpc(chamelium, "GetMaxFrameLimit", "(iii)",
>  			    port->id, w, h);
>  
>  	xmlrpc_read_int(&chamelium->env, res, &ret);
> @@ -1383,7 +1320,7 @@ static unsigned int
> chamelium_get_port_type(struct chamelium *chamelium,
>  	const char *port_type_str;
>  	unsigned int port_type;
>  
> -	res = chamelium_rpc(chamelium, NULL, "GetConnectorType",
> +	res = chamelium_rpc(chamelium, "GetConnectorType",
>  			    "(i)", port->id);
>  
>  	xmlrpc_read_string(&chamelium->env, res, &port_type_str);
> @@ -1524,7 +1461,7 @@ static bool chamelium_read_config(struct
> chamelium *chamelium, int drm_fd)
>  void chamelium_reset(struct chamelium *chamelium)
>  {
>  	igt_debug("Resetting the chamelium\n");
> -	xmlrpc_DECREF(chamelium_rpc(chamelium, NULL, "Reset", "()"));
> +	xmlrpc_DECREF(chamelium_rpc(chamelium, "Reset", "()"));
>  }
>  
>  static void chamelium_exit_handler(int sig)
-- 
Paul Kocialkowski <paul.kocialkowski@linux.intel.com>
Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo, Finland
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-08-28 14:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-04 14:10 [PATCH i-g-t] lib/igt_chamelium: Remove any special handling for the connector FSM Paul Kocialkowski
2017-08-28 14:25 ` Paul Kocialkowski

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.