CC: [email protected]
CC: [email protected]
BCC: [email protected]
CC: Linux Memory Management List <[email protected]>
TO: Jonathan Marek <[email protected]>
CC: Mauro Carvalho Chehab <[email protected]>
CC: [email protected]
CC: Julian Grahsl <[email protected]>
CC: Robert Foss <[email protected]>
CC: "Bryan O'Donoghue" <[email protected]>
CC: Hans Verkuil <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   06aeb1495c39c86ccfaf1adadc1d2200179f16eb
commit: b4436a18eedb8d93e148d009b145b4ae142e6f9d [900/9128] media: camss: add 
support for SM8250 camss
:::::: branch date: 27 hours ago
:::::: commit date: 5 weeks ago
config: riscv-randconfig-c006-20220222 
(https://download.01.org/0day-ci/archive/20220227/[email protected]/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=b4436a18eedb8d93e148d009b145b4ae142e6f9d
        git remote add linux-next 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout b4436a18eedb8d93e148d009b145b4ae142e6f9d
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 
clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
                                   ^
   mm/memblock.c:1177:9: note: Assuming 'out_end' is null
                                   if (out_end)
                                       ^~~~~~~
   mm/memblock.c:1177:5: note: Taking false branch
                                   if (out_end)
                                   ^
   mm/memblock.c:1179:9: note: Assuming 'out_nid' is null
                                   if (out_nid)
                                       ^~~~~~~
   mm/memblock.c:1179:5: note: Taking false branch
                                   if (out_nid)
                                   ^
   mm/memblock.c:1181:9: note: 'm_start' is >= 'r_start'
                                   if (m_start >= r_start)
                                       ^~~~~~~
   mm/memblock.c:1181:5: note: Taking true branch
                                   if (m_start >= r_start)
                                   ^
   mm/memblock.c:1185:36: note: The result of the '<<' expression is undefined
                                   *idx = (u32)idx_a | (u64)idx_b << 32;
                                                       ~~~~~~~~~~~^~~~~
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   13 warnings generated.
   drivers/scsi/scsi_logging.c:75:3: warning: Value stored to 'off' is never 
read [clang-analyzer-deadcode.DeadStores]
                   off += vscnprintf(logbuf + off, logbuf_len - off, fmt, args);
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_logging.c:75:3: note: Value stored to 'off' is never read
                   off += vscnprintf(logbuf + off, logbuf_len - off, fmt, args);
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_logging.c:100:3: warning: Value stored to 'off' is never 
read [clang-analyzer-deadcode.DeadStores]
                   off += vscnprintf(logbuf + off, logbuf_len - off, fmt, args);
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_logging.c:100:3: note: Value stored to 'off' is never read
                   off += vscnprintf(logbuf + off, logbuf_len - off, fmt, args);
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_logging.c:209:3: warning: Value stored to 'off' is never 
read [clang-analyzer-deadcode.DeadStores]
                   off += scnprintf(logbuf + off, logbuf_len - off, "\n");
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_logging.c:209:3: note: Value stored to 'off' is never read
                   off += scnprintf(logbuf + off, logbuf_len - off, "\n");
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_logging.c:331:2: warning: Value stored to 'off' is never 
read [clang-analyzer-deadcode.DeadStores]
           off += scsi_format_sense_hdr(logbuf + off, logbuf_len - off, sshdr);
           ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_logging.c:331:2: note: Value stored to 'off' is never read
           off += scsi_format_sense_hdr(logbuf + off, logbuf_len - off, sshdr);
           ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_logging.c:339:2: warning: Value stored to 'off' is never 
read [clang-analyzer-deadcode.DeadStores]
           off += scsi_format_extd_sense(logbuf + off, logbuf_len - off,
           ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_logging.c:339:2: note: Value stored to 'off' is never read
           off += scsi_format_extd_sense(logbuf + off, logbuf_len - off,
           ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_logging.c:435:2: warning: Value stored to 'off' is never 
read [clang-analyzer-deadcode.DeadStores]
           off += scnprintf(logbuf + off, logbuf_len - off,
           ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_logging.c:435:2: note: Value stored to 'off' is never read
           off += scnprintf(logbuf + off, logbuf_len - off,
           ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 7 warnings (7 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   7 warnings generated.
   Suppressed 7 warnings (7 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   7 warnings generated.
   drivers/mfd/tps65010.c:650:5: warning: Value stored to 'status' is never 
read [clang-analyzer-deadcode.DeadStores]
                                   status = 0;
                                   ^        ~
   drivers/mfd/tps65010.c:650:5: note: Value stored to 'status' is never read
                                   status = 0;
                                   ^        ~
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   7 warnings generated.
   Suppressed 7 warnings (7 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   10 warnings generated.
>> drivers/media/platform/qcom/camss/camss-csid-gen2.c:407:3: warning: Value 
>> stored to 'val' is never read [clang-analyzer-deadcode.DeadStores]
                   val = 0;
                   ^     ~
   drivers/media/platform/qcom/camss/camss-csid-gen2.c:407:3: note: Value 
stored to 'val' is never read
                   val = 0;
                   ^     ~
>> drivers/media/platform/qcom/camss/camss-csid-gen2.c:484:2: warning: Value 
>> stored to 'hw_gen' is never read [clang-analyzer-deadcode.DeadStores]
           hw_gen = (hw_version >> HW_VERSION_GENERATION) & 0xF;
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-csid-gen2.c:484:2: note: Value 
stored to 'hw_gen' is never read
           hw_gen = (hw_version >> HW_VERSION_GENERATION) & 0xF;
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/media/platform/qcom/camss/camss-csid-gen2.c:485:2: warning: Value 
>> stored to 'hw_rev' is never read [clang-analyzer-deadcode.DeadStores]
           hw_rev = (hw_version >> HW_VERSION_REVISION) & 0xFFF;
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-csid-gen2.c:485:2: note: Value 
stored to 'hw_rev' is never read
           hw_rev = (hw_version >> HW_VERSION_REVISION) & 0xFFF;
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/media/platform/qcom/camss/camss-csid-gen2.c:486:2: warning: Value 
>> stored to 'hw_step' is never read [clang-analyzer-deadcode.DeadStores]
           hw_step = (hw_version >> HW_VERSION_STEPPING) & 0xFFFF;
           ^         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-csid-gen2.c:486:2: note: Value 
stored to 'hw_step' is never read
           hw_step = (hw_version >> HW_VERSION_STEPPING) & 0xFFFF;
           ^         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   7 warnings generated.
   drivers/vfio/pci/vfio_pci_intrs.c:301:6: warning: Use of memory after it is 
freed [clang-analyzer-unix.Malloc]
           if (vdev->ctx[vector].trigger) {
               ^
   drivers/vfio/pci/vfio_pci_intrs.c:646:2: note: Control jumps to 'case 
VFIO_PCI_MSI_IRQ_INDEX:'  at line 660
           switch (index) {
           ^
   drivers/vfio/pci/vfio_pci_intrs.c:662:3: note: Control jumps to 'case 32:'  
at line 667
                   switch (flags & VFIO_IRQ_SET_ACTION_TYPE_MASK) {
                   ^
   drivers/vfio/pci/vfio_pci_intrs.c:669:4: note:  Execution continues on line 
671
                           break;
                           ^
   drivers/vfio/pci/vfio_pci_intrs.c:671:3: note:  Execution continues on line 
689
                   break;
                   ^
   drivers/vfio/pci/vfio_pci_intrs.c:689:7: note: 'func' is non-null
           if (!func)
                ^~~~
   drivers/vfio/pci/vfio_pci_intrs.c:689:2: note: Taking false branch
           if (!func)
           ^
   drivers/vfio/pci/vfio_pci_intrs.c:692:9: note: Calling 
'vfio_pci_set_msi_trigger'
           return func(vdev, index, start, count, flags, data);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/vfio/pci/vfio_pci_intrs.c:515:15: note: 'index' is not equal to 
VFIO_PCI_MSIX_IRQ_INDEX
           bool msix = (index == VFIO_PCI_MSIX_IRQ_INDEX) ? true : false;
                        ^~~~~
   drivers/vfio/pci/vfio_pci_intrs.c:515:14: note: '?' condition is false
           bool msix = (index == VFIO_PCI_MSIX_IRQ_INDEX) ? true : false;
                       ^
   drivers/vfio/pci/vfio_pci_intrs.c:517:13: note: Assuming 'index' is not 
equal to field 'irq_type'
           if (irq_is(vdev, index) && !count && (flags & 
VFIO_IRQ_SET_DATA_NONE)) {
                      ^
   include/linux/vfio_pci_core.h:146:29: note: expanded from macro 'irq_is'
   #define irq_is(vdev, type) (vdev->irq_type == type)
                               ^~~~~~~~~~~~~~~~~~~~~~
   drivers/vfio/pci/vfio_pci_intrs.c:517:26: note: Left side of '&&' is false
           if (irq_is(vdev, index) && !count && (flags & 
VFIO_IRQ_SET_DATA_NONE)) {
                                   ^
   drivers/vfio/pci/vfio_pci_intrs.c:522:21: note: 'index' is not equal to 
field 'irq_type'
           if (!(irq_is(vdev, index) || is_irq_none(vdev)))
                              ^
   include/linux/vfio_pci_core.h:146:47: note: expanded from macro 'irq_is'
   #define irq_is(vdev, type) (vdev->irq_type == type)
                                                 ^~~~
   drivers/vfio/pci/vfio_pci_intrs.c:522:8: note: Left side of '||' is false
           if (!(irq_is(vdev, index) || is_irq_none(vdev)))
                 ^
   include/linux/vfio_pci_core.h:146:28: note: expanded from macro 'irq_is'
   #define irq_is(vdev, type) (vdev->irq_type == type)
                              ^
   drivers/vfio/pci/vfio_pci_intrs.c:522:43: note: Assuming field 'irq_type' is 
not equal to VFIO_PCI_INTX_IRQ_INDEX
           if (!(irq_is(vdev, index) || is_irq_none(vdev)))
                                                    ^
   include/linux/vfio_pci_core.h:145:38: note: expanded from macro 'is_irq_none'
   #define is_irq_none(vdev) (!(is_intx(vdev) || is_msi(vdev) || is_msix(vdev)))
                                ~~~~~~~~^~~~~
   include/linux/vfio_pci_core.h:142:24: note: expanded from macro 'is_intx'
   #define is_intx(vdev) (vdev->irq_type == VFIO_PCI_INTX_IRQ_INDEX)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/vfio/pci/vfio_pci_intrs.c:522:31: note: Left side of '||' is false
           if (!(irq_is(vdev, index) || is_irq_none(vdev)))
                                        ^
   include/linux/vfio_pci_core.h:145:30: note: expanded from macro 'is_irq_none'
   #define is_irq_none(vdev) (!(is_intx(vdev) || is_msi(vdev) || is_msix(vdev)))
                                ^
   include/linux/vfio_pci_core.h:142:23: note: expanded from macro 'is_intx'
   #define is_intx(vdev) (vdev->irq_type == VFIO_PCI_INTX_IRQ_INDEX)
                         ^
   drivers/vfio/pci/vfio_pci_intrs.c:522:31: note: Field 'irq_type' is not 
equal to VFIO_PCI_MSI_IRQ_INDEX
           if (!(irq_is(vdev, index) || is_irq_none(vdev)))
                                        ^
   include/linux/vfio_pci_core.h:145:47: note: expanded from macro 'is_irq_none'
   #define is_irq_none(vdev) (!(is_intx(vdev) || is_msi(vdev) || is_msix(vdev)))
                                                 ^
   include/linux/vfio_pci_core.h:143:29: note: expanded from macro 'is_msi'
   #define is_msi(vdev) (vdev->irq_type == VFIO_PCI_MSI_IRQ_INDEX)
                               ^
   drivers/vfio/pci/vfio_pci_intrs.c:522:31: note: Left side of '||' is false
           if (!(irq_is(vdev, index) || is_irq_none(vdev)))
                                        ^
   include/linux/vfio_pci_core.h:145:30: note: expanded from macro 'is_irq_none'
   #define is_irq_none(vdev) (!(is_intx(vdev) || is_msi(vdev) || is_msix(vdev)))
                                ^
   include/linux/vfio_pci_core.h:142:23: note: expanded from macro 'is_intx'
   #define is_intx(vdev) (vdev->irq_type == VFIO_PCI_INTX_IRQ_INDEX)
                         ^
   drivers/vfio/pci/vfio_pci_intrs.c:522:43: note: Assuming field 'irq_type' is 
not equal to VFIO_PCI_MSIX_IRQ_INDEX
           if (!(irq_is(vdev, index) || is_irq_none(vdev)))
                                                    ^
   include/linux/vfio_pci_core.h:145:71: note: expanded from macro 'is_irq_none'
   #define is_irq_none(vdev) (!(is_intx(vdev) || is_msi(vdev) || is_msix(vdev)))

vim +/val +407 drivers/media/platform/qcom/camss/camss-csid-gen2.c

eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  336  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  337  static void csid_configure_stream(struct csid_device *csid, 
u8 enable)
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  338  {
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  339        struct csid_testgen_config *tg = &csid->testgen;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  340        u32 val;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  341        u32 phy_sel = 0;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  342        u8 lane_cnt = csid->phy.lane_cnt;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  343        struct v4l2_mbus_framefmt *input_format = 
&csid->fmt[MSM_CSID_PAD_SRC];
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  344        const struct csid_format *format = 
csid_get_fmt_entry(csid->formats, csid->nformats,
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  345                                                              
input_format->code);
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  346  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  347        if (!lane_cnt)
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  348                lane_cnt = 4;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  349  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  350        if (!tg->enabled)
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  351                phy_sel = csid->phy.csiphy_id;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  352  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  353        if (enable) {
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  354                u8 vc = 0; /* Virtual Channel 0 */
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  355                u8 dt_id = vc * 4;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  356  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  357                if (tg->enabled) {
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  358                        /* Config Test Generator */
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  359                        vc = 0xa;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  360  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  361                        /* configure one DT, infinite frames */
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  362                        val = vc << TPG_VC_CFG0_VC_NUM;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  363                        val |= INTELEAVING_MODE_ONE_SHOT << 
TPG_VC_CFG0_LINE_INTERLEAVING_MODE;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  364                        val |= 0 << TPG_VC_CFG0_NUM_FRAMES;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  365                        writel_relaxed(val, csid->base + 
CSID_TPG_VC_CFG0);
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  366  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  367                        val = 0x740 << 
TPG_VC_CFG1_H_BLANKING_COUNT;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  368                        val |= 0x3ff << 
TPG_VC_CFG1_V_BLANKING_COUNT;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  369                        writel_relaxed(val, csid->base + 
CSID_TPG_VC_CFG1);
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  370  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  371                        writel_relaxed(0x12345678, csid->base + 
CSID_TPG_LFSR_SEED);
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  372  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  373                        val = input_format->height & 0x1fff << 
TPG_DT_n_CFG_0_FRAME_HEIGHT;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  374                        val |= input_format->width & 0x1fff << 
TPG_DT_n_CFG_0_FRAME_WIDTH;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  375                        writel_relaxed(val, csid->base + 
CSID_TPG_DT_n_CFG_0(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  376  
14d510e040f85f drivers/media/platform/qcom/camss/camss-csid-170.c Jonathan 
Marek 2021-12-22  377                        val = format->data_type << 
TPG_DT_n_CFG_1_DATA_TYPE;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  378                        writel_relaxed(val, csid->base + 
CSID_TPG_DT_n_CFG_1(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  379  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  380                        val = tg->mode << 
TPG_DT_n_CFG_2_PAYLOAD_MODE;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  381                        val |= 0xBE << 
TPG_DT_n_CFG_2_USER_SPECIFIED_PAYLOAD;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  382                        val |= format->decode_format << 
TPG_DT_n_CFG_2_ENCODE_FORMAT;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  383                        writel_relaxed(val, csid->base + 
CSID_TPG_DT_n_CFG_2(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  384  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  385                        writel_relaxed(0, csid->base + 
CSID_TPG_COLOR_BARS_CFG);
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  386  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  387                        writel_relaxed(0, csid->base + 
CSID_TPG_COLOR_BOX_CFG);
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  388                }
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  389  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  390                val = 1 << RDI_CFG0_BYTE_CNTR_EN;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  391                val |= 1 << RDI_CFG0_FORMAT_MEASURE_EN;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  392                val |= 1 << RDI_CFG0_TIMESTAMP_EN;
14d510e040f85f drivers/media/platform/qcom/camss/camss-csid-170.c Jonathan 
Marek 2021-12-22  393                /* note: for non-RDI path, this should be 
format->decode_format */
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  394                val |= DECODE_FORMAT_PAYLOAD_ONLY << 
RDI_CFG0_DECODE_FORMAT;
14d510e040f85f drivers/media/platform/qcom/camss/camss-csid-170.c Jonathan 
Marek 2021-12-22  395                val |= format->data_type << 
RDI_CFG0_DATA_TYPE;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  396                val |= vc << RDI_CFG0_VIRTUAL_CHANNEL;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  397                val |= dt_id << RDI_CFG0_DT_ID;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  398                writel_relaxed(val, csid->base + 
CSID_RDI_CFG0(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  399  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  400                /* CSID_TIMESTAMP_STB_POST_IRQ */
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  401                val = 2 << RDI_CFG1_TIMESTAMP_STB_SEL;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  402                writel_relaxed(val, csid->base + 
CSID_RDI_CFG1(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  403  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  404                val = 1;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  405                writel_relaxed(val, csid->base + 
CSID_RDI_FRM_DROP_PERIOD(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  406  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16 @407                val = 0;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  408                writel_relaxed(0, csid->base + 
CSID_RDI_FRM_DROP_PATTERN(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  409  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  410                val = 1;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  411                writel_relaxed(val, csid->base + 
CSID_RDI_IRQ_SUBSAMPLE_PERIOD(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  412  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  413                val = 0;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  414                writel_relaxed(val, csid->base + 
CSID_RDI_IRQ_SUBSAMPLE_PATTERN(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  415  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  416                val = 1;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  417                writel_relaxed(val, csid->base + 
CSID_RDI_RPP_PIX_DROP_PERIOD(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  418  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  419                val = 0;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  420                writel_relaxed(val, csid->base + 
CSID_RDI_RPP_PIX_DROP_PATTERN(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  421  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  422                val = 1;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  423                writel_relaxed(val, csid->base + 
CSID_RDI_RPP_LINE_DROP_PERIOD(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  424  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  425                val = 0;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  426                writel_relaxed(val, csid->base + 
CSID_RDI_RPP_LINE_DROP_PATTERN(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  427  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  428                val = 0;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  429                writel_relaxed(val, csid->base + 
CSID_RDI_CTRL(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  430  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  431                val = readl_relaxed(csid->base + 
CSID_RDI_CFG0(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  432                val |=  1 << RDI_CFG0_ENABLE;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  433                writel_relaxed(val, csid->base + 
CSID_RDI_CFG0(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  434        }
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  435  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  436        if (tg->enabled) {
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  437                val = enable << TPG_CTRL_TEST_EN;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  438                val |= 1 << TPG_CTRL_FS_PKT_EN;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  439                val |= 1 << TPG_CTRL_FE_PKT_EN;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  440                val |= (lane_cnt - 1) << 
TPG_CTRL_NUM_ACTIVE_LANES;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  441                val |= 0x64 << TPG_CTRL_CYCLES_BETWEEN_PKTS;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  442                val |= 0xA << TPG_CTRL_NUM_TRAIL_BYTES;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  443                writel_relaxed(val, csid->base + CSID_TPG_CTRL);
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  444        }
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  445  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  446        val = (lane_cnt - 1) << CSI2_RX_CFG0_NUM_ACTIVE_LANES;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  447        val |= csid->phy.lane_assign << 
CSI2_RX_CFG0_DL0_INPUT_SEL;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  448        val |= phy_sel << CSI2_RX_CFG0_PHY_NUM_SEL;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  449        writel_relaxed(val, csid->base + CSID_CSI2_RX_CFG0);
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  450  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  451        val = 1 << CSI2_RX_CFG1_PACKET_ECC_CORRECTION_EN;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  452        val |= 1 << CSI2_RX_CFG1_MISR_EN;
7d8210851cb3db drivers/media/platform/qcom/camss/camss-csid-170.c Jonathan 
Marek 2021-12-22  453        writel_relaxed(val, csid->base + 
CSID_CSI2_RX_CFG1);
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  454  
ee780cd7be3b56 drivers/media/platform/qcom/camss/camss-csid-170.c Jonathan 
Marek 2021-12-22  455        if (enable)
ee780cd7be3b56 drivers/media/platform/qcom/camss/camss-csid-170.c Jonathan 
Marek 2021-12-22  456                val = HALT_CMD_RESUME_AT_FRAME_BOUNDARY << 
RDI_CTRL_HALT_CMD;
ee780cd7be3b56 drivers/media/platform/qcom/camss/camss-csid-170.c Jonathan 
Marek 2021-12-22  457        else
ee780cd7be3b56 drivers/media/platform/qcom/camss/camss-csid-170.c Jonathan 
Marek 2021-12-22  458                val = HALT_CMD_HALT_AT_FRAME_BOUNDARY << 
RDI_CTRL_HALT_CMD;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  459        writel_relaxed(val, csid->base + CSID_RDI_CTRL(0));
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  460  }
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  461  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  462  static int csid_configure_testgen_pattern(struct csid_device 
*csid, s32 val)
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  463  {
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  464        if (val > 0 && val <= csid->testgen.nmodes)
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  465                csid->testgen.mode = val;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  466  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  467        return 0;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  468  }
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  469  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  470  /*
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  471   * csid_hw_version - CSID hardware version query
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  472   * @csid: CSID device
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  473   *
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  474   * Return HW version or error
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  475   */
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  476  static u32 csid_hw_version(struct csid_device *csid)
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  477  {
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  478        u32 hw_version;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  479        u32 hw_gen;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  480        u32 hw_rev;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  481        u32 hw_step;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  482  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  483        hw_version = readl_relaxed(csid->base + 
CSID_HW_VERSION);
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16 @484        hw_gen = (hw_version >> HW_VERSION_GENERATION) & 0xF;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16 @485        hw_rev = (hw_version >> HW_VERSION_REVISION) & 0xFFF;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16 @486        hw_step = (hw_version >> HW_VERSION_STEPPING) & 0xFFFF;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  487        dev_dbg(csid->camss->dev, "CSID HW Version = 
%u.%u.%u\n",
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  488                hw_gen, hw_rev, hw_step);
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  489  
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  490        return hw_version;
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  491  }
eebe6d00e9bf12 drivers/media/platform/qcom/camss/camss-csid-170.c Robert Foss   
 2021-03-16  492  

:::::: The code at line 407 was first introduced by commit
:::::: eebe6d00e9bf1216fb381b64146e1b7e50d90b3f media: camss: Add support for 
CSID hardware version Titan 170

:::::: TO: Robert Foss <[email protected]>
:::::: CC: Mauro Carvalho Chehab <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to