Skip to content

Commit f25d566

Browse files
6by9gregkh
authored andcommitted
media: tc358743: Increase FIFO trigger level to 374
[ Upstream commit 86addd2 ] The existing fixed value of 16 worked for UYVY 720P60 over 2 lanes at 594MHz, or UYVY 1080P60 over 4 lanes. (RGB888 1080P60 needs 6 lanes at 594MHz). It doesn't allow for lower resolutions to work as the FIFO underflows. 374 is required for 1080P24 or 1080P30 UYVY over 2 lanes @ 972Mbit/s, but >374 means that the FIFO underflows on 1080P50 UYVY over 2 lanes @ 972Mbit/s. Whilst it would be nice to compute it, the required information isn't published by Toshiba. Signed-off-by: Dave Stevenson <[email protected]> Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Sasha Levin <[email protected]>
1 parent b42b107 commit f25d566

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

drivers/media/i2c/tc358743.c

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1948,8 +1948,19 @@ static int tc358743_probe_of(struct tc358743_state *state)
19481948
state->pdata.refclk_hz = clk_get_rate(refclk);
19491949
state->pdata.ddc5v_delay = DDC5V_DELAY_100_MS;
19501950
state->pdata.enable_hdcp = false;
1951-
/* A FIFO level of 16 should be enough for 2-lane 720p60 at 594 MHz. */
1952-
state->pdata.fifo_level = 16;
1951+
/*
1952+
* Ideally the FIFO trigger level should be set based on the input and
1953+
* output data rates, but the calculations required are buried in
1954+
* Toshiba's register settings spreadsheet.
1955+
* A value of 16 works with a 594Mbps data rate for 720p60 (using 2
1956+
* lanes) and 1080p60 (using 4 lanes), but fails when the data rate
1957+
* is increased, or a lower pixel clock is used that result in CSI
1958+
* reading out faster than the data is arriving.
1959+
*
1960+
* A value of 374 works with both those modes at 594Mbps, and with most
1961+
* modes on 972Mbps.
1962+
*/
1963+
state->pdata.fifo_level = 374;
19531964
/*
19541965
* The PLL input clock is obtained by dividing refclk by pll_prd.
19551966
* It must be between 6 MHz and 40 MHz, lower frequency is better.

0 commit comments

Comments
 (0)