Re: [DPU PATCH v2 3/3] drm/msm/dp: add support for DP PLL driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Chandan,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on robclark/msm-next]
[also build test ERROR on v5.0-rc1 next-20190108]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Chandan-Uddaraju/List-of-patches-for-DP-drivers-on-SnapDragon/20190109-052537
base:   git://people.freedesktop.org/~robclark/linux msm-next
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=arm 

All error/warnings (new ones prefixed by >>):

   drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_parse_audio_channel_period':
>> drivers/gpu/drm/msm/dp/dp_link.c:75:33: error: 'DP_TEST_AUDIO_PERIOD_CH1' undeclared (first use in this function); did you mean 'DP_TEST_BIT_DEPTH_10'?
     ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH1);
                                    ^~~~~~~~~~~~~~~~~~~~~~~~
                                    DP_TEST_BIT_DEPTH_10
   drivers/gpu/drm/msm/dp/dp_link.c:75:33: note: each undeclared identifier is reported only once for each function it appears in
   drivers/gpu/drm/msm/dp/dp_link.c:82:33: error: 'DP_TEST_AUDIO_PERIOD_CH2' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH1'?
     ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH2);
                                    ^~~~~~~~~~~~~~~~~~~~~~~~
                                    DP_TEST_AUDIO_PERIOD_CH1
   drivers/gpu/drm/msm/dp/dp_link.c:90:33: error: 'DP_TEST_AUDIO_PERIOD_CH3' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH2'?
     ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH3);
                                    ^~~~~~~~~~~~~~~~~~~~~~~~
                                    DP_TEST_AUDIO_PERIOD_CH2
   drivers/gpu/drm/msm/dp/dp_link.c:97:33: error: 'DP_TEST_AUDIO_PERIOD_CH4' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH3'?
     ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH4);
                                    ^~~~~~~~~~~~~~~~~~~~~~~~
                                    DP_TEST_AUDIO_PERIOD_CH3
   drivers/gpu/drm/msm/dp/dp_link.c:104:33: error: 'DP_TEST_AUDIO_PERIOD_CH5' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH4'?
     ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH5);
                                    ^~~~~~~~~~~~~~~~~~~~~~~~
                                    DP_TEST_AUDIO_PERIOD_CH4
   drivers/gpu/drm/msm/dp/dp_link.c:111:33: error: 'DP_TEST_AUDIO_PERIOD_CH6' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH5'?
     ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH6);
                                    ^~~~~~~~~~~~~~~~~~~~~~~~
                                    DP_TEST_AUDIO_PERIOD_CH5
   drivers/gpu/drm/msm/dp/dp_link.c:118:33: error: 'DP_TEST_AUDIO_PERIOD_CH7' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH6'?
     ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH7);
                                    ^~~~~~~~~~~~~~~~~~~~~~~~
                                    DP_TEST_AUDIO_PERIOD_CH6
   drivers/gpu/drm/msm/dp/dp_link.c:125:33: error: 'DP_TEST_AUDIO_PERIOD_CH8' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH7'?
     ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH8);
                                    ^~~~~~~~~~~~~~~~~~~~~~~~
                                    DP_TEST_AUDIO_PERIOD_CH7
   drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_parse_audio_pattern_type':
   drivers/gpu/drm/msm/dp/dp_link.c:143:5: error: 'DP_TEST_AUDIO_PATTERN_TYPE' undeclared (first use in this function); did you mean 'DP_TEST_PHY_PATTERN'?
        DP_TEST_AUDIO_PATTERN_TYPE, &data);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
        DP_TEST_PHY_PATTERN
   drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_parse_audio_mode':
>> drivers/gpu/drm/msm/dp/dp_link.c:172:47: error: 'DP_TEST_AUDIO_MODE' undeclared (first use in this function); did you mean 'DP_TEST_LINK_RATE'?
     rlen = drm_dp_dpcd_readb(link->aux->drm_aux, DP_TEST_AUDIO_MODE, &data);
                                                  ^~~~~~~~~~~~~~~~~~
                                                  DP_TEST_LINK_RATE
   drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_is_video_audio_test_requested':
   drivers/gpu/drm/msm/dp/dp_link.c:577:5: error: 'DP_TEST_LINK_AUDIO_PATTERN' undeclared (first use in this function); did you mean 'DP_TEST_LINK_VIDEO_PATTERN'?
        DP_TEST_LINK_AUDIO_PATTERN |
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
        DP_TEST_LINK_VIDEO_PATTERN
   drivers/gpu/drm/msm/dp/dp_link.c:578:5: error: 'DP_TEST_LINK_AUDIO_DISABLED_VIDEO' undeclared (first use in this function); did you mean 'DP_TEST_LINK_AUDIO_PATTERN'?
        DP_TEST_LINK_AUDIO_DISABLED_VIDEO);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        DP_TEST_LINK_AUDIO_PATTERN
   drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_is_video_pattern_requested':
   drivers/gpu/drm/msm/dp/dp_link.c:974:3: error: 'DP_TEST_LINK_AUDIO_DISABLED_VIDEO' undeclared (first use in this function); did you mean 'DP_TEST_LINK_VIDEO_PATTERN'?
      DP_TEST_LINK_AUDIO_DISABLED_VIDEO);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      DP_TEST_LINK_VIDEO_PATTERN
   drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_is_audio_pattern_requested':
   drivers/gpu/drm/msm/dp/dp_link.c:979:41: error: 'DP_TEST_LINK_AUDIO_PATTERN' undeclared (first use in this function); did you mean 'DP_TEST_LINK_VIDEO_PATTERN'?
     return (link->request.test_requested & DP_TEST_LINK_AUDIO_PATTERN);
                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~
                                            DP_TEST_LINK_VIDEO_PATTERN
   drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_process_request':
   drivers/gpu/drm/msm/dp/dp_link.c:1052:28: error: 'DP_TEST_LINK_AUDIO_PATTERN' undeclared (first use in this function); did you mean 'DP_TEST_LINK_VIDEO_PATTERN'?
      dp_link->sink_request |= DP_TEST_LINK_AUDIO_PATTERN;
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~
                               DP_TEST_LINK_VIDEO_PATTERN
   drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_get_colorimetry_config':
   drivers/gpu/drm/msm/dp/dp_link.c:1078:8: error: 'DP_TEST_DYNAMIC_RANGE_VESA' undeclared (first use in this function); did you mean 'DP_TEST_DYNAMIC_RANGE_CEA'?
      cc = DP_TEST_DYNAMIC_RANGE_VESA;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
           DP_TEST_DYNAMIC_RANGE_CEA
   drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_is_video_pattern_requested':
   drivers/gpu/drm/msm/dp/dp_link.c:975:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_is_audio_pattern_requested':
   drivers/gpu/drm/msm/dp/dp_link.c:980:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
--
   drivers/gpu/drm/msm/dp/dp_power.c: In function 'dp_power_init':
>> drivers/gpu/drm/msm/dp/dp_power.c:677:28: warning: 'power' may be used uninitialized in this function [-Wmaybe-uninitialized]
     pm_runtime_put_sync(&power->pdev->dev);
                          ~~~~~^~~~~~

vim +75 drivers/gpu/drm/msm/dp/dp_link.c

c24ff5297 Chandan Uddaraju 2019-01-07   69  
c24ff5297 Chandan Uddaraju 2019-01-07   70  static int dp_link_parse_audio_channel_period(struct dp_link_private *link)
c24ff5297 Chandan Uddaraju 2019-01-07   71  {
c24ff5297 Chandan Uddaraju 2019-01-07   72  	int ret = 0;
c24ff5297 Chandan Uddaraju 2019-01-07   73  	struct dp_link_test_audio *req = &link->dp_link.test_audio;
c24ff5297 Chandan Uddaraju 2019-01-07   74  
c24ff5297 Chandan Uddaraju 2019-01-07  @75  	ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH1);
c24ff5297 Chandan Uddaraju 2019-01-07   76  	if (ret == -EINVAL)
c24ff5297 Chandan Uddaraju 2019-01-07   77  		goto exit;
c24ff5297 Chandan Uddaraju 2019-01-07   78  
c24ff5297 Chandan Uddaraju 2019-01-07   79  	req->test_audio_period_ch_1 = ret;
c24ff5297 Chandan Uddaraju 2019-01-07   80  	DRM_DEBUG_DP("test_audio_period_ch_1 = 0x%x\n", ret);
c24ff5297 Chandan Uddaraju 2019-01-07   81  
c24ff5297 Chandan Uddaraju 2019-01-07   82  	ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH2);
c24ff5297 Chandan Uddaraju 2019-01-07   83  	if (ret == -EINVAL)
c24ff5297 Chandan Uddaraju 2019-01-07   84  		goto exit;
c24ff5297 Chandan Uddaraju 2019-01-07   85  
c24ff5297 Chandan Uddaraju 2019-01-07   86  	req->test_audio_period_ch_2 = ret;
c24ff5297 Chandan Uddaraju 2019-01-07   87  	DRM_DEBUG_DP("test_audio_period_ch_2 = 0x%x\n", ret);
c24ff5297 Chandan Uddaraju 2019-01-07   88  
c24ff5297 Chandan Uddaraju 2019-01-07   89  	/* TEST_AUDIO_PERIOD_CH_3 (Byte 0x275) */
c24ff5297 Chandan Uddaraju 2019-01-07   90  	ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH3);
c24ff5297 Chandan Uddaraju 2019-01-07   91  	if (ret == -EINVAL)
c24ff5297 Chandan Uddaraju 2019-01-07   92  		goto exit;
c24ff5297 Chandan Uddaraju 2019-01-07   93  
c24ff5297 Chandan Uddaraju 2019-01-07   94  	req->test_audio_period_ch_3 = ret;
c24ff5297 Chandan Uddaraju 2019-01-07   95  	DRM_DEBUG_DP("test_audio_period_ch_3 = 0x%x\n", ret);
c24ff5297 Chandan Uddaraju 2019-01-07   96  
c24ff5297 Chandan Uddaraju 2019-01-07   97  	ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH4);
c24ff5297 Chandan Uddaraju 2019-01-07   98  	if (ret == -EINVAL)
c24ff5297 Chandan Uddaraju 2019-01-07   99  		goto exit;
c24ff5297 Chandan Uddaraju 2019-01-07  100  
c24ff5297 Chandan Uddaraju 2019-01-07  101  	req->test_audio_period_ch_4 = ret;
c24ff5297 Chandan Uddaraju 2019-01-07  102  	DRM_DEBUG_DP("test_audio_period_ch_4 = 0x%x\n", ret);
c24ff5297 Chandan Uddaraju 2019-01-07  103  
c24ff5297 Chandan Uddaraju 2019-01-07  104  	ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH5);
c24ff5297 Chandan Uddaraju 2019-01-07  105  	if (ret == -EINVAL)
c24ff5297 Chandan Uddaraju 2019-01-07  106  		goto exit;
c24ff5297 Chandan Uddaraju 2019-01-07  107  
c24ff5297 Chandan Uddaraju 2019-01-07  108  	req->test_audio_period_ch_5 = ret;
c24ff5297 Chandan Uddaraju 2019-01-07  109  	DRM_DEBUG_DP("test_audio_period_ch_5 = 0x%x\n", ret);
c24ff5297 Chandan Uddaraju 2019-01-07  110  
c24ff5297 Chandan Uddaraju 2019-01-07  111  	ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH6);
c24ff5297 Chandan Uddaraju 2019-01-07  112  	if (ret == -EINVAL)
c24ff5297 Chandan Uddaraju 2019-01-07  113  		goto exit;
c24ff5297 Chandan Uddaraju 2019-01-07  114  
c24ff5297 Chandan Uddaraju 2019-01-07  115  	req->test_audio_period_ch_6 = ret;
c24ff5297 Chandan Uddaraju 2019-01-07  116  	DRM_DEBUG_DP("test_audio_period_ch_6 = 0x%x\n", ret);
c24ff5297 Chandan Uddaraju 2019-01-07  117  
c24ff5297 Chandan Uddaraju 2019-01-07  118  	ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH7);
c24ff5297 Chandan Uddaraju 2019-01-07  119  	if (ret == -EINVAL)
c24ff5297 Chandan Uddaraju 2019-01-07  120  		goto exit;
c24ff5297 Chandan Uddaraju 2019-01-07  121  
c24ff5297 Chandan Uddaraju 2019-01-07  122  	req->test_audio_period_ch_7 = ret;
c24ff5297 Chandan Uddaraju 2019-01-07  123  	DRM_DEBUG_DP("test_audio_period_ch_7 = 0x%x\n", ret);
c24ff5297 Chandan Uddaraju 2019-01-07  124  
c24ff5297 Chandan Uddaraju 2019-01-07  125  	ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH8);
c24ff5297 Chandan Uddaraju 2019-01-07  126  	if (ret == -EINVAL)
c24ff5297 Chandan Uddaraju 2019-01-07  127  		goto exit;
c24ff5297 Chandan Uddaraju 2019-01-07  128  
c24ff5297 Chandan Uddaraju 2019-01-07  129  	req->test_audio_period_ch_8 = ret;
c24ff5297 Chandan Uddaraju 2019-01-07  130  	DRM_DEBUG_DP("test_audio_period_ch_8 = 0x%x\n", ret);
c24ff5297 Chandan Uddaraju 2019-01-07  131  exit:
c24ff5297 Chandan Uddaraju 2019-01-07  132  	return ret;
c24ff5297 Chandan Uddaraju 2019-01-07  133  }
c24ff5297 Chandan Uddaraju 2019-01-07  134  
c24ff5297 Chandan Uddaraju 2019-01-07  135  static int dp_link_parse_audio_pattern_type(struct dp_link_private *link)
c24ff5297 Chandan Uddaraju 2019-01-07  136  {
c24ff5297 Chandan Uddaraju 2019-01-07  137  	int ret = 0;
c24ff5297 Chandan Uddaraju 2019-01-07  138  	u8 data;
c24ff5297 Chandan Uddaraju 2019-01-07  139  	ssize_t rlen;
c24ff5297 Chandan Uddaraju 2019-01-07  140  	int const max_audio_pattern_type = 0x1;
c24ff5297 Chandan Uddaraju 2019-01-07  141  
c24ff5297 Chandan Uddaraju 2019-01-07  142  	rlen = drm_dp_dpcd_readb(link->aux->drm_aux,
c24ff5297 Chandan Uddaraju 2019-01-07 @143  				DP_TEST_AUDIO_PATTERN_TYPE, &data);
c24ff5297 Chandan Uddaraju 2019-01-07  144  	if (rlen < 0) {
c24ff5297 Chandan Uddaraju 2019-01-07  145  		DRM_ERROR("failed to read link audio mode. rlen=%zd\n", rlen);
c24ff5297 Chandan Uddaraju 2019-01-07  146  		return rlen;
c24ff5297 Chandan Uddaraju 2019-01-07  147  	}
c24ff5297 Chandan Uddaraju 2019-01-07  148  
c24ff5297 Chandan Uddaraju 2019-01-07  149  	/* Audio Pattern Type - Bits 7:0 */
c24ff5297 Chandan Uddaraju 2019-01-07  150  	if ((int)data > max_audio_pattern_type) {
c24ff5297 Chandan Uddaraju 2019-01-07  151  		DRM_ERROR("invalid audio pattern type = 0x%x\n", data);
c24ff5297 Chandan Uddaraju 2019-01-07  152  		ret = -EINVAL;
c24ff5297 Chandan Uddaraju 2019-01-07  153  		goto exit;
c24ff5297 Chandan Uddaraju 2019-01-07  154  	}
c24ff5297 Chandan Uddaraju 2019-01-07  155  
c24ff5297 Chandan Uddaraju 2019-01-07  156  	link->dp_link.test_audio.test_audio_pattern_type = data;
c24ff5297 Chandan Uddaraju 2019-01-07  157  	DRM_DEBUG_DP("audio pattern type = 0x%x\n", data);
c24ff5297 Chandan Uddaraju 2019-01-07  158  exit:
c24ff5297 Chandan Uddaraju 2019-01-07  159  	return ret;
c24ff5297 Chandan Uddaraju 2019-01-07  160  }
c24ff5297 Chandan Uddaraju 2019-01-07  161  
c24ff5297 Chandan Uddaraju 2019-01-07  162  static int dp_link_parse_audio_mode(struct dp_link_private *link)
c24ff5297 Chandan Uddaraju 2019-01-07  163  {
c24ff5297 Chandan Uddaraju 2019-01-07  164  	int ret = 0;
c24ff5297 Chandan Uddaraju 2019-01-07  165  	u8 data;
c24ff5297 Chandan Uddaraju 2019-01-07  166  	ssize_t rlen;
c24ff5297 Chandan Uddaraju 2019-01-07  167  	int const max_audio_sampling_rate = 0x6;
c24ff5297 Chandan Uddaraju 2019-01-07  168  	int const max_audio_channel_count = 0x8;
c24ff5297 Chandan Uddaraju 2019-01-07  169  	int sampling_rate = 0x0;
c24ff5297 Chandan Uddaraju 2019-01-07  170  	int channel_count = 0x0;
c24ff5297 Chandan Uddaraju 2019-01-07  171  
c24ff5297 Chandan Uddaraju 2019-01-07 @172  	rlen = drm_dp_dpcd_readb(link->aux->drm_aux, DP_TEST_AUDIO_MODE, &data);
c24ff5297 Chandan Uddaraju 2019-01-07  173  	if (rlen < 0) {
c24ff5297 Chandan Uddaraju 2019-01-07  174  		DRM_ERROR("failed to read link audio mode. rlen=%zd\n", rlen);
c24ff5297 Chandan Uddaraju 2019-01-07  175  		return rlen;
c24ff5297 Chandan Uddaraju 2019-01-07  176  	}
c24ff5297 Chandan Uddaraju 2019-01-07  177  
c24ff5297 Chandan Uddaraju 2019-01-07  178  	/* Sampling Rate - Bits 3:0 */
c24ff5297 Chandan Uddaraju 2019-01-07  179  	sampling_rate = data & 0xF;
c24ff5297 Chandan Uddaraju 2019-01-07  180  	if (sampling_rate > max_audio_sampling_rate) {
c24ff5297 Chandan Uddaraju 2019-01-07  181  		DRM_ERROR("sampling rate (0x%x) greater than max (0x%x)\n",
c24ff5297 Chandan Uddaraju 2019-01-07  182  				sampling_rate, max_audio_sampling_rate);
c24ff5297 Chandan Uddaraju 2019-01-07  183  		ret = -EINVAL;
c24ff5297 Chandan Uddaraju 2019-01-07  184  		goto exit;
c24ff5297 Chandan Uddaraju 2019-01-07  185  	}
c24ff5297 Chandan Uddaraju 2019-01-07  186  
c24ff5297 Chandan Uddaraju 2019-01-07  187  	/* Channel Count - Bits 7:4 */
c24ff5297 Chandan Uddaraju 2019-01-07  188  	channel_count = ((data & 0xF0) >> 4) + 1;
c24ff5297 Chandan Uddaraju 2019-01-07  189  	if (channel_count > max_audio_channel_count) {
c24ff5297 Chandan Uddaraju 2019-01-07  190  		DRM_ERROR("channel_count (0x%x) greater than max (0x%x)\n",
c24ff5297 Chandan Uddaraju 2019-01-07  191  				channel_count, max_audio_channel_count);
c24ff5297 Chandan Uddaraju 2019-01-07  192  		ret = -EINVAL;
c24ff5297 Chandan Uddaraju 2019-01-07  193  		goto exit;
c24ff5297 Chandan Uddaraju 2019-01-07  194  	}
c24ff5297 Chandan Uddaraju 2019-01-07  195  
c24ff5297 Chandan Uddaraju 2019-01-07  196  	link->dp_link.test_audio.test_audio_sampling_rate = sampling_rate;
c24ff5297 Chandan Uddaraju 2019-01-07  197  	link->dp_link.test_audio.test_audio_channel_count = channel_count;
c24ff5297 Chandan Uddaraju 2019-01-07  198  	DRM_DEBUG_DP("sampling_rate = 0x%x, channel_count = 0x%x\n",
c24ff5297 Chandan Uddaraju 2019-01-07  199  					sampling_rate, channel_count);
c24ff5297 Chandan Uddaraju 2019-01-07  200  exit:
c24ff5297 Chandan Uddaraju 2019-01-07  201  	return ret;
c24ff5297 Chandan Uddaraju 2019-01-07  202  }
c24ff5297 Chandan Uddaraju 2019-01-07  203  

:::::: The code at line 75 was first introduced by commit
:::::: c24ff5297c35cef4b4da979f2889b9291fe59523 drm/msm/dp: add displayPort driver support

:::::: TO: Chandan Uddaraju <chandanu@xxxxxxxxxxxxxx>
:::::: CC: 0day robot <lkp@xxxxxxxxx>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux