Skip to content

Commit 467338c

Browse files
QCLINUX: arm64: dts: qcom: add IFE Lite CPAS paths to purwa camera dtsi
IFE Lite clients were missing dedicated CPAS path definitions and bandwidth voting entries in purwa-camera.dtsi. Due to this, traffic generated by IFE Lite write paths was not routed through the appropriate CPAS hierarchy during camera usecases. Without these CPAS nodes, bandwidth votes for IFE Lite RDI, stats and pixel raw paths were not aggregated correctly, which can result in insufficient CAMNOC/NOC bandwidth allocation during IFE Lite operation. Add dedicated CPAS client nodes for ife1 and ife2 write traffic and connect them to level1_rt0_wr4 so that proper bandwidth voting is performed for IFE Lite paths. Also rename rt-cdm instances to match the corresponding IFE Lite topology and update cell-index values accordingly. Signed-off-by: Ignatius Michael Jihan <mignatiu@qti.qualcomm.com>
1 parent 32eb26c commit 467338c

1 file changed

Lines changed: 72 additions & 42 deletions

File tree

arch/arm64/boot/dts/qcom/purwa-camera.dtsi

Lines changed: 72 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,8 @@
149149
client-id-based;
150150
client-names = "csiphy0", "csiphy4", "cci0", "cci1", "csid0",
151151
"csid1", "csid2", "ife0", "ife1", "ife2", "ipe0",
152-
"rt-cdm0", "rt-cdm1", "rt-cdm2", "rt-cdm3",
153-
"cam-cdm-intf0", "bps0", "icp0", "jpeg-dma0",
152+
"rt-cdm0", "rt-cdm1", "rt-cdm2", "cam-cdm-intf0",
153+
"bps0", "icp0", "jpeg-dma0",
154154
"jpeg-enc0", "tpg13", "tpg14", "tpg15";
155155
cell-index = <0>;
156156
status = "okay";
@@ -230,8 +230,38 @@
230230
parent-node = <&level1_rt0_wr0>;
231231
};
232232

233-
ipe0_all_wr: ipe0-all-wr {
233+
ife1_rdi_stats_pixel_raw_wr: ife1-rdi-stats-pixel-raw-wr {
234234
cell-index = <7>;
235+
node-name = "ife1-rdi-stats-pixel-raw-wr";
236+
client-name = "ife1";
237+
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
238+
traffic-transaction-type = <CAM_CPAS_TRANSACTION_WRITE>;
239+
constituent-paths = <CAM_CPAS_PATH_DATA_IFE_RDI0
240+
CAM_CPAS_PATH_DATA_IFE_RDI1
241+
CAM_CPAS_PATH_DATA_IFE_RDI2
242+
CAM_CPAS_PATH_DATA_IFE_RDI3
243+
CAM_CPAS_PATH_DATA_IFE_PIXEL_RAW
244+
CAM_CPAS_PATH_DATA_IFE_STATS>;
245+
parent-node = <&level1_rt0_wr4>;
246+
};
247+
248+
ife2_rdi_stats_pixel_raw_wr: ife2-rdi-stats-pixel-raw-wr {
249+
cell-index = <8>;
250+
node-name = "ife2-rdi-stats-pixel-raw-wr";
251+
client-name = "ife2";
252+
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
253+
traffic-transaction-type = <CAM_CPAS_TRANSACTION_WRITE>;
254+
constituent-paths = <CAM_CPAS_PATH_DATA_IFE_RDI0
255+
CAM_CPAS_PATH_DATA_IFE_RDI1
256+
CAM_CPAS_PATH_DATA_IFE_RDI2
257+
CAM_CPAS_PATH_DATA_IFE_RDI3
258+
CAM_CPAS_PATH_DATA_IFE_PIXEL_RAW
259+
CAM_CPAS_PATH_DATA_IFE_STATS>;
260+
parent-node = <&level1_rt0_wr4>;
261+
};
262+
263+
ipe0_all_wr: ipe0-all-wr {
264+
cell-index = <9>;
235265
node-name = "ipe0-all-wr";
236266
client-name = "ipe0";
237267
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
@@ -243,7 +273,7 @@
243273
};
244274

245275
ipe0_in_rd: ipe0-in-rd {
246-
cell-index = <8>;
276+
cell-index = <10>;
247277
node-name = "ipe0-in-rd";
248278
client-name = "ipe0";
249279
traffic-data = <CAM_CPAS_PATH_DATA_IPE_RD_IN>;
@@ -252,7 +282,7 @@
252282
};
253283

254284
ipe0_ref_rd: ipe0-ref-rd {
255-
cell-index = <9>;
285+
cell-index = <11>;
256286
node-name = "ipe0-ref-rd";
257287
client-name = "ipe0";
258288
traffic-data = <CAM_CPAS_PATH_DATA_IPE_RD_REF>;
@@ -261,7 +291,7 @@
261291
};
262292

263293
jpeg_dma0_all_rd: jpeg-dma0-all-rd {
264-
cell-index = <10>;
294+
cell-index = <12>;
265295
node-name = "jpeg-dma0-all-rd";
266296
client-name = "jpeg-dma0";
267297
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
@@ -270,7 +300,7 @@
270300
};
271301

272302
jpeg_dma0_all_wr: jpeg-dma0-all-wr {
273-
cell-index = <11>;
303+
cell-index = <13>;
274304
node-name = "jpeg-dma0-all-wr";
275305
client-name = "jpeg-dma0";
276306
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
@@ -279,7 +309,7 @@
279309
};
280310

281311
jpeg_enc0_all_rd: jpeg-enc0-all-rd {
282-
cell-index = <12>;
312+
cell-index = <14>;
283313
node-name = "jpeg-enc0-all-rd";
284314
client-name = "jpeg-enc0";
285315
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
@@ -288,7 +318,7 @@
288318
};
289319

290320
jpeg_enc0_all_wr: jpeg-enc0-all-wr {
291-
cell-index = <13>;
321+
cell-index = <15>;
292322
node-name = "jpeg-enc0-all-wr";
293323
client-name = "jpeg-enc0";
294324
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
@@ -297,7 +327,7 @@
297327
};
298328

299329
rt_cdm0_all_rd: rt-cdm0-all-rd {
300-
cell-index = <14>;
330+
cell-index = <16>;
301331
node-name = "rt-cdm0-all-rd";
302332
client-name = "rt-cdm0";
303333
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
@@ -306,20 +336,20 @@
306336
};
307337

308338
/* IFE Lite 0 */
309-
rt_cdm2_all_rd: rt-cdm2-all-rd {
310-
cell-index = <15>;
311-
node-name = "rt-cdm2-all-rd";
312-
client-name = "rt-cdm2";
339+
rt_cdm1_all_rd: rt-cdm1-all-rd {
340+
cell-index = <17>;
341+
node-name = "rt-cdm1-all-rd";
342+
client-name = "rt-cdm1";
313343
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
314344
traffic-transaction-type = <CAM_CPAS_TRANSACTION_READ>;
315345
parent-node = <&level1_nrt0_rd1>;
316346
};
317347

318348
/* IFE Lite 1 */
319-
rt_cdm3_all_rd: rt-cdm3-all-rd {
320-
cell-index = <16>;
321-
node-name = "rt-cdm3-all-rd";
322-
client-name = "rt-cdm3";
349+
rt_cdm2_all_rd: rt-cdm2-all-rd {
350+
cell-index = <18>;
351+
node-name = "rt-cdm2-all-rd";
352+
client-name = "rt-cdm2";
323353
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
324354
traffic-transaction-type = <CAM_CPAS_TRANSACTION_READ>;
325355
parent-node = <&level1_nrt0_rd1>;
@@ -331,56 +361,56 @@
331361
camnoc-max-needed;
332362

333363
level1_nrt0_rd0: level1-nrt0-rd0 {
334-
cell-index = <17>;
364+
cell-index = <19>;
335365
node-name = "level1-nrt0-rd0";
336366
parent-node = <&level2_nrt0_rd>;
337367
traffic-merge-type = <CAM_CPAS_TRAFFIC_MERGE_SUM>;
338368
};
339369

340370
level1_nrt0_rd1: level1-nrt0-rd1 {
341-
cell-index = <18>;
371+
cell-index = <20>;
342372
node-name = "level1-nrt0-rd1";
343373
parent-node = <&level2_nrt0_rd>;
344374
traffic-merge-type = <CAM_CPAS_TRAFFIC_MERGE_SUM>;
345375
};
346376

347377
level1_nrt0_wr0: level1-nrt0-wr0 {
348-
cell-index = <19>;
378+
cell-index = <21>;
349379
node-name = "level1-nrt0-wr0";
350380
parent-node = <&level2_nrt0_wr>;
351381
traffic-merge-type = <CAM_CPAS_TRAFFIC_MERGE_SUM>;
352382
};
353383

354384
level1_rt0_wr0: level1-rt0-wr0 {
355-
cell-index = <20>;
385+
cell-index = <22>;
356386
node-name = "level1-ife-ubwc-wr";
357387
parent-node = <&level2_rt0_wr>;
358388
traffic-merge-type = <CAM_CPAS_TRAFFIC_MERGE_SUM>;
359389
};
360390

361391
level1_rt0_wr1: level1-rt0-wr1 {
362-
cell-index = <21>;
392+
cell-index = <23>;
363393
node-name = "level1-ife-rdi-wr";
364394
parent-node = <&level2_rt0_wr>;
365395
traffic-merge-type = <CAM_CPAS_TRAFFIC_MERGE_SUM>;
366396
};
367397

368398
level1_rt0_wr2: level1-rt0-wr2 {
369-
cell-index = <22>;
399+
cell-index = <24>;
370400
node-name = "level1-ife-pdaf";
371401
parent-node = <&level2_rt0_wr>;
372402
traffic-merge-type = <CAM_CPAS_TRAFFIC_MERGE_SUM>;
373403
};
374404

375405
level1_rt0_wr3: level1-rt0-wr3 {
376-
cell-index = <23>;
406+
cell-index = <25>;
377407
node-name = "level1-ife01-linear-stats";
378408
parent-node = <&level2_rt0_wr>;
379409
traffic-merge-type = <CAM_CPAS_TRAFFIC_MERGE_SUM>;
380410
};
381411

382412
level1_rt0_wr4: level1-rt0-wr4 {
383-
cell-index = <24>;
413+
cell-index = <26>;
384414
node-name = "level1-ifelite";
385415
parent-node = <&level2_rt0_wr>;
386416
traffic-merge-type = <CAM_CPAS_TRAFFIC_MERGE_SUM>;
@@ -392,39 +422,39 @@
392422
camnoc-max-needed;
393423

394424
level2_nrt0_rd: level2-nrt0-rd {
395-
cell-index = <25>;
425+
cell-index = <27>;
396426
node-name = "level2-nrt0-rd";
397427
parent-node = <&level3_nrt0_rd_wr_sum>;
398428
traffic-merge-type =
399429
<CAM_CPAS_TRAFFIC_MERGE_SUM_INTERLEAVE>;
400430
};
401431

402432
level2_nrt0_wr: level2-nrt0-wr {
403-
cell-index = <26>;
433+
cell-index = <28>;
404434
node-name = "level2-nrt0-wr";
405435
parent-node = <&level3_nrt0_rd_wr_sum>;
406436
traffic-merge-type =
407437
<CAM_CPAS_TRAFFIC_MERGE_SUM_INTERLEAVE>;
408438
};
409439

410440
level2_nrt1_rd: level2-nrt1-rd {
411-
cell-index = <27>;
441+
cell-index = <29>;
412442
node-name = "level2-nrt1-rd";
413443
parent-node = <&level3_nrt1_rd_wr_sum>;
414444
traffic-merge-type = <CAM_CPAS_TRAFFIC_MERGE_SUM>;
415445
bus-width-factor = <4>;
416446
};
417447

418448
level2_rt0_rd: level2-rt0-rd {
419-
cell-index = <28>;
449+
cell-index = <30>;
420450
node-name = "level2-rt0-rd";
421451
parent-node = <&level3_rt0_rd_wr_sum>;
422452
traffic-merge-type =
423453
<CAM_CPAS_TRAFFIC_MERGE_SUM_INTERLEAVE>;
424454
};
425455

426456
level2_rt0_wr: level2-rt0-wr {
427-
cell-index = <29>;
457+
cell-index = <31>;
428458
node-name = "level2-rt0-wr";
429459
parent-node = <&level3_rt0_rd_wr_sum>;
430460
traffic-merge-type =
@@ -437,7 +467,7 @@
437467
level-index = <3>;
438468

439469
level3_nrt0_rd_wr_sum: level3-nrt0-rd-wr-sum {
440-
cell-index = <30>;
470+
cell-index = <32>;
441471
node-name = "level3-nrt0-rd-wr-sum";
442472
traffic-merge-type = <CAM_CPAS_TRAFFIC_MERGE_SUM>;
443473
qcom,axi-port-mnoc {
@@ -446,7 +476,7 @@
446476
};
447477

448478
level3_nrt1_rd_wr_sum: level3-nrt1-rd-wr-sum {
449-
cell-index = <31>;
479+
cell-index = <33>;
450480
node-name = "level3-nrt1-rd-wr-sum";
451481
traffic-merge-type = <CAM_CPAS_TRAFFIC_MERGE_SUM>;
452482
qcom,axi-port-mnoc {
@@ -455,7 +485,7 @@
455485
};
456486

457487
level3_rt0_rd_wr_sum: level3-rt0-rd-wr-sum {
458-
cell-index = <32>;
488+
cell-index = <34>;
459489
node-name = "level3-rt0-rd-wr-sum";
460490
traffic-merge-type = <CAM_CPAS_TRAFFIC_MERGE_SUM>;
461491
ib-bw-voting-needed;
@@ -1473,14 +1503,14 @@
14731503
};
14741504
};
14751505

1476-
qcom,rt-cdm2@acf9000 {
1506+
qcom,rt-cdm1@acf9000 {
14771507
compatible = "qcom,cam-rt-cdm2_1";
14781508
label = "rt-cdm";
14791509
reg = <0x0 0xacf9000 0x0 0x400>;
1480-
reg-names = "rt-cdm2";
1510+
reg-names = "rt-cdm1";
14811511
reg-cam-base = <0xf9000>;
14821512
interrupts = <GIC_SPI 764 IRQ_TYPE_EDGE_RISING>;
1483-
interrupt-names = "rt-cdm2";
1513+
interrupt-names = "rt-cdm1";
14841514
power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
14851515
clocks = <&camcc CAM_CC_SLOW_AHB_CLK_SRC>,
14861516
<&camcc CAM_CC_IFE_LITE_AHB_CLK>;
@@ -1497,7 +1527,7 @@
14971527
cam_hw_pid = <24>;
14981528
cam-hw-mid = <0>;
14991529
single-context-cdm;
1500-
cell-index = <2>;
1530+
cell-index = <1>;
15011531
status = "okay";
15021532

15031533
cdm_cpas_opp_table2: opp-table {
@@ -1510,14 +1540,14 @@
15101540
};
15111541
};
15121542

1513-
qcom,rt-cdm3@acfa000 {
1543+
qcom,rt-cdm2@acfa000 {
15141544
compatible = "qcom,cam-rt-cdm2_1";
15151545
label = "rt-cdm";
15161546
reg = <0x0 0xacfa000 0x0 0x400>;
1517-
reg-names = "rt-cdm3";
1547+
reg-names = "rt-cdm2";
15181548
reg-cam-base = <0xfa000>;
15191549
interrupts = <GIC_SPI 765 IRQ_TYPE_EDGE_RISING>;
1520-
interrupt-names = "rt-cdm3";
1550+
interrupt-names = "rt-cdm2";
15211551
power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
15221552
clocks = <&camcc CAM_CC_SLOW_AHB_CLK_SRC>,
15231553
<&camcc CAM_CC_IFE_LITE_AHB_CLK>;
@@ -1534,7 +1564,7 @@
15341564
cam_hw_pid = <27>;
15351565
cam-hw-mid = <0>;
15361566
single-context-cdm;
1537-
cell-index = <3>;
1567+
cell-index = <2>;
15381568
status = "okay";
15391569

15401570
cdm_cpas_opp_table3: opp-table {

0 commit comments

Comments
 (0)