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: 20 hours ago
:::::: commit date: 5 weeks ago
config: riscv-randconfig-c006-20220223 
(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 >>)
            ^
   net/ipv4/devinet.c:996:7: note: Assuming the condition is false
                   if (IN_CLASSA(haddr))
                       ^
   include/uapi/linux/in.h:277:24: note: expanded from macro 'IN_CLASSA'
   #define IN_CLASSA(a)            ((((long int) (a)) & 0x80000000) == 0)
                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/devinet.c:996:3: note: Taking false branch
                   if (IN_CLASSA(haddr))
                   ^
   net/ipv4/devinet.c:998:12: note: Assuming the condition is false
                   else if (IN_CLASSB(haddr))
                            ^
   include/uapi/linux/in.h:283:24: note: expanded from macro 'IN_CLASSB'
   #define IN_CLASSB(a)            ((((long int) (a)) & 0xc0000000) == 
0x80000000)
                                    
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/devinet.c:998:8: note: Taking false branch
                   else if (IN_CLASSB(haddr))
                        ^
   net/ipv4/devinet.c:1000:12: note: Assuming the condition is false
                   else if (IN_CLASSC(haddr))
                            ^
   include/uapi/linux/in.h:289:24: note: expanded from macro 'IN_CLASSC'
   #define IN_CLASSC(a)            ((((long int) (a)) & 0xe0000000) == 
0xc0000000)
                                    
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/devinet.c:1000:8: note: Taking false branch
                   else if (IN_CLASSC(haddr))
                        ^
   net/ipv4/devinet.c:1002:12: note: Assuming the condition is false
                   else if (IN_CLASSE(haddr))
                            ^
   include/uapi/linux/in.h:301:24: note: expanded from macro 'IN_CLASSE'
   #define IN_CLASSE(a)            ((((long int) (a)) & 0xf0000000) == 
0xf0000000)
                                    
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/devinet.c:1002:8: note: Taking false branch
                   else if (IN_CLASSE(haddr))
                        ^
   net/ipv4/devinet.c:1006:2: note: Returning the value -1 (loaded from 'rc'), 
which participates in a condition later
           return rc;
           ^~~~~~~~~
   net/ipv4/devinet.c:1174:25: note: Returning from 'inet_abc_len'
                           ifa->ifa_prefixlen = inet_abc_len(ifa->ifa_address);
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/devinet.c:1175:20: note: Calling 'inet_make_mask'
                           ifa->ifa_mask = inet_make_mask(ifa->ifa_prefixlen);
                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/inetdevice.h:288:6: note: 'logmask' is 255
           if (logmask)
               ^~~~~~~
   include/linux/inetdevice.h:288:2: note: Taking true branch
           if (logmask)
           ^
   include/linux/inetdevice.h:289:21: note: The result of the left shift is 
undefined because the right operand is negative
                   return htonl(~((1U<<(32-logmask))-1));
                                     ^
   include/linux/byteorder/generic.h:139:27: note: expanded from macro 'htonl'
   #define htonl(x) ___htonl(x)
                             ^
   include/linux/byteorder/generic.h:134:35: note: expanded from macro 
'___htonl'
   #define ___htonl(x) __cpu_to_be32(x)
                                     ^
   include/uapi/linux/byteorder/little_endian.h:40:53: note: expanded from 
macro '__cpu_to_be32'
   #define __cpu_to_be32(x) ((__force __be32)__swab32((x)))
                                                       ^
   include/uapi/linux/swab.h:118:32: note: expanded from macro '__swab32'
           (__builtin_constant_p((__u32)(x)) ?     \
                                         ^
   net/ipv4/devinet.c:1269:3: warning: Call to function 'strcpy' is insecure as 
it does not provide bounding of the memory buffer. Replace unbounded copy 
functions with analogous functions that support length arguments such as 
'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                   strcpy(ifr.ifr_name, ifa->ifa_label);
                   ^~~~~~
   net/ipv4/devinet.c:1269:3: note: Call to function 'strcpy' is insecure as it 
does not provide bounding of the memory buffer. Replace unbounded copy 
functions with analogous functions that support length arguments such as 
'strlcpy'. CWE-119
                   strcpy(ifr.ifr_name, ifa->ifa_label);
                   ^~~~~~
   net/ipv4/devinet.c:1498:4: warning: Call to function 'strcat' is insecure as 
it does not provide bounding of the memory buffer. Replace unbounded copy 
functions with analogous functions that support length arguments such as 
'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                           strcat(ifa->ifa_label, dot);
                           ^~~~~~
   net/ipv4/devinet.c:1498:4: note: Call to function 'strcat' is insecure as it 
does not provide bounding of the memory buffer. Replace unbounded copy 
functions with analogous functions that support length arguments such as 
'strlcat'. CWE-119
                           strcat(ifa->ifa_label, dot);
                           ^~~~~~
   net/ipv4/devinet.c:1500:4: warning: Call to function 'strcpy' is insecure as 
it does not provide bounding of the memory buffer. Replace unbounded copy 
functions with analogous functions that support length arguments such as 
'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                           strcpy(ifa->ifa_label + (IFNAMSIZ - strlen(dot) - 
1), dot);
                           ^~~~~~
   net/ipv4/devinet.c:1500:4: note: Call to function 'strcpy' is insecure as it 
does not provide bounding of the memory buffer. Replace unbounded copy 
functions with analogous functions that support length arguments such as 
'strlcpy'. CWE-119
                           strcpy(ifa->ifa_label + (IFNAMSIZ - strlen(dot) - 
1), dot);
                           ^~~~~~
   net/ipv4/devinet.c:1542:5: warning: Value stored to 'in_dev' is never read 
[clang-analyzer-deadcode.DeadStores]
                                   in_dev = inetdev_init(dev);
                                   ^        ~~~~~~~~~~~~~~~~~
   net/ipv4/devinet.c:1542:5: note: Value stored to 'in_dev' is never read
                                   in_dev = inetdev_init(dev);
                                   ^        ~~~~~~~~~~~~~~~~~
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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.
   3 warnings generated.
   Suppressed 3 warnings (3 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/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 3 warnings (3 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.
   4 warnings generated.
   drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c:32:5: warning: 
Value stored to 'hw_version' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           u8 hw_version = readl_relaxed(csiphy->base +
              ^~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c:32:5: note: Value 
stored to 'hw_version' during its initialization is never read
           u8 hw_version = readl_relaxed(csiphy->base +
              ^~~~~~~~~~
   Suppressed 3 warnings (3 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.
   4 warnings generated.
   drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c:279:2: warning: 
Value stored to 'hw_version' is never read [clang-analyzer-deadcode.DeadStores]
           hw_version |= readl_relaxed(csiphy->base +
           ^
   drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c:279:2: note: Value 
stored to 'hw_version' is never read
   Suppressed 3 warnings (3 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.
   4 warnings generated.
   include/media/v4l2-subdev.h:1000:10: warning: Access to field 'pads' results 
in a dereference of a null pointer (loaded from variable 'state') 
[clang-analyzer-core.NullDereference]
           return &state->pads[pad].try_fmt;
                   ^
   drivers/media/platform/qcom/camss/camss-csiphy.c:786:8: note: Calling 
'csiphy_init_formats'
           ret = csiphy_init_formats(sd, NULL);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-csiphy.c:546:12: note: 'fh' is null
                   .which = fh ? V4L2_SUBDEV_FORMAT_TRY :
                            ^~
   drivers/media/platform/qcom/camss/camss-csiphy.c:546:12: note: '?' condition 
is false
   drivers/media/platform/qcom/camss/camss-csiphy.c:555:31: note: 'fh' is null
           return csiphy_set_format(sd, fh ? fh->state : NULL, &format);
                                        ^~
   drivers/media/platform/qcom/camss/camss-csiphy.c:555:31: note: '?' condition 
is false
   drivers/media/platform/qcom/camss/camss-csiphy.c:555:31: note: Passing null 
pointer value via 2nd parameter 'sd_state'
           return csiphy_set_format(sd, fh ? fh->state : NULL, &format);
                                        ^~
   drivers/media/platform/qcom/camss/camss-csiphy.c:555:9: note: Calling 
'csiphy_set_format'
           return csiphy_set_format(sd, fh ? fh->state : NULL, &format);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-csiphy.c:510:6: note: 'format' is 
not equal to NULL
           if (format == NULL)
               ^~~~~~
   drivers/media/platform/qcom/camss/camss-csiphy.c:510:2: note: Taking false 
branch
           if (format == NULL)
           ^
   drivers/media/platform/qcom/camss/camss-csiphy.c:518:6: note: Assuming field 
'pad' is equal to MSM_CSIPHY_PAD_SINK
           if (fmt->pad == MSM_CSIPHY_PAD_SINK) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-csiphy.c:518:2: note: Taking true 
branch
           if (fmt->pad == MSM_CSIPHY_PAD_SINK) {
           ^
   drivers/media/platform/qcom/camss/camss-csiphy.c:519:40: note: Passing null 
pointer value via 2nd parameter 'sd_state'
                   format = __csiphy_get_format(csiphy, sd_state,
                                                        ^~~~~~~~
   drivers/media/platform/qcom/camss/camss-csiphy.c:519:12: note: Calling 
'__csiphy_get_format'
                   format = __csiphy_get_format(csiphy, sd_state,
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-csiphy.c:346:6: note: Assuming 
'which' is equal to V4L2_SUBDEV_FORMAT_TRY
           if (which == V4L2_SUBDEV_FORMAT_TRY)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-csiphy.c:346:2: note: Taking true 
branch
           if (which == V4L2_SUBDEV_FORMAT_TRY)
           ^
   drivers/media/platform/qcom/camss/camss-csiphy.c:347:54: note: Passing null 
pointer value via 2nd parameter 'state'
                   return v4l2_subdev_get_try_format(&csiphy->subdev, sd_state,
                                                                      ^~~~~~~~
   drivers/media/platform/qcom/camss/camss-csiphy.c:347:10: note: Calling 
'v4l2_subdev_get_try_format'
                   return v4l2_subdev_get_try_format(&csiphy->subdev, sd_state,
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:998:14: note: Assuming 'pad' is < field 
'num_pads'
           if (WARN_ON(pad >= sd->entity.num_pads))
                       ^
   include/asm-generic/bug.h:121:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   include/media/v4l2-subdev.h:998:6: note: Taking false branch
           if (WARN_ON(pad >= sd->entity.num_pads))
               ^
   include/asm-generic/bug.h:122:2: note: expanded from macro 'WARN_ON'
           if (unlikely(__ret_warn_on))                                    \
           ^
   include/media/v4l2-subdev.h:998:2: note: Taking false branch
           if (WARN_ON(pad >= sd->entity.num_pads))
           ^
   include/media/v4l2-subdev.h:1000:10: note: Access to field 'pads' results in 
a dereference of a null pointer (loaded from variable 'state')
           return &state->pads[pad].try_fmt;
                   ^~~~~
   Suppressed 3 warnings (3 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.
   8 warnings generated.
   drivers/media/dvb-frontends/cxd2820r_t.c:14:21: warning: Value stored to 
'client' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           struct i2c_client *client = priv->client[0];
                              ^~~~~~   ~~~~~~~~~~~~~~~
   drivers/media/dvb-frontends/cxd2820r_t.c:14:21: note: Value stored to 
'client' during its initialization is never read
           struct i2c_client *client = priv->client[0];

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