lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Tue, 16 May 2023 16:02:37 +0300
From:   Tomi Valkeinen <tomi.valkeinen@...asonboard.com>
To:     Ludwig Zenz <lzenz@...electronics.com>
Cc:     Matti.Vaittinen@...rohmeurope.com, andriy.shevchenko@...el.com,
        andriy.shevchenko@...ux.intel.com, broonie@...nel.org,
        devicetree@...r.kernel.org, hverkuil@...all.nl, khalasa@...p.pl,
        krzysztof.kozlowski+dt@...aro.org,
        laurent.pinchart+renesas@...asonboard.com, lgirdwood@...il.com,
        linux-i2c@...r.kernel.org, linux-kernel@...r.kernel.org,
        linux-media@...r.kernel.org, luca.ceresoli@...tlin.com,
        m.tretter@...gutronix.de, marex@...x.de, mchehab@...nel.org,
        mpagano@...too.org, peda@...ntia.se, robh+dt@...nel.org,
        sakari.ailus@...ux.intel.com, satish.nagireddy@...cruise.com,
        wsa@...nel.org
Subject: Re: [PATCH v13 6/8] media: i2c: add DS90UB960 driver

Hi,

On 16/05/2023 15:35, Ludwig Zenz wrote:
> On Wed, 26 Apr 2023 14:51:12 +0300, Tomi Valkeinen wrote:
> 
> [...]
> 
>>   +static int ub960_configure_ports_for_streaming(struct ub960_data *priv,
>>   +					       struct v4l2_subdev_state *state)
>>   +{
>>   +	u8 fwd_ctl;
>>   +	struct {
>>   +		u32 num_streams;
>>   +		u8 pixel_dt;
>>   +		u8 meta_dt;
>>   +		u32 meta_lines;
>>   +		u32 tx_port;
>>   +	} rx_data[UB960_MAX_RX_NPORTS] = {};
>>   +	u8 vc_map[UB960_MAX_RX_NPORTS] = {};
>>   +	struct v4l2_subdev_route *route;
>>   +	unsigned int nport;
>>   +	int ret;
>>   +
>>   +	ret = ub960_validate_stream_vcs(priv);
>>   +	if (ret)
>>   +		return ret;
>>   +
>>   +	ub960_get_vc_maps(priv, state, vc_map);
>>   +
>>   +	for_each_active_route(&state->routing, route) {
>>   +		struct ub960_rxport *rxport;
>>   +		struct ub960_txport *txport;
>>   +		struct v4l2_mbus_framefmt *fmt;
>>   +		const struct ub960_format_info *ub960_fmt;
>>   +		unsigned int nport;
>>   +
>>   +		nport = ub960_pad_to_port(priv, route->sink_pad);
>>   +
>>   +		rxport = priv->rxports[nport];
>>   +		if (!rxport)
>>   +			return -EINVAL;
>>   +
>>   +		txport = priv->txports[ub960_pad_to_port(priv, route->source_pad)];
>>   +		if (!txport)
>>   +			return -EINVAL;
>>   +
>>   +		rx_data[nport].tx_port = ub960_pad_to_port(priv, route->source_pad);
>>   +
>>   +		rx_data[nport].num_streams++;
>>   +
>>   +		/* For the rest, we are only interested in parallel busses */
>>   +		if (rxport->rx_mode == RXPORT_MODE_CSI2_SYNC ||
>>   +		    rxport->rx_mode == RXPORT_MODE_CSI2_ASYNC)
>>   +			continue;
>>   +
>>   +		if (rx_data[nport].num_streams > 2)
>>   +			return -EPIPE;
>>   +
>>   +		fmt = v4l2_subdev_state_get_stream_format(state,
>>   +							  route->sink_pad,
>>   +							  route->sink_stream);
>>   +		if (!fmt)
>>   +			return -EPIPE;
>>   +
>>   +		ub960_fmt = ub960_find_format(fmt->code);
>>   +		if (!ub960_fmt)
>>   +			return -EPIPE;
>>   +
>>   +		if (ub960_fmt->meta) {
>>   +			if (fmt->height > 3) {
>>   +				dev_err(&priv->client->dev,
>>   +					"rx%u: unsupported metadata height %u\n",
>>   +					nport, fmt->height);
>>   +				return -EPIPE;
>>   +			}
>>   +
>>   +			rx_data[nport].meta_dt = ub960_fmt->datatype;
>>   +			rx_data[nport].meta_lines = fmt->height;
>>   +		} else {
>>   +			rx_data[nport].pixel_dt = ub960_fmt->datatype;
>>   +		}
>>   +	}
>>   +
>>   +	/* Configure RX ports */
>>   +
>>   +	fwd_ctl = 0;
> 
> Hello, I have only used the first RX port in my setup (ds90ub933 to ds90ub964). The logic for activating/deactivating the Rx ports did not work for me. My suggestion is:

Why doesn't it work? What happens?

  Tomi

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ