All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Chenyang Li <lichenyang@loongson.cn>,
	Maxime Ripard <mripard@kernel.org>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Dan Carpenter <error27@gmail.com>,
	David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
	dri-devel@lists.freedesktop.org, devel@linuxdriverproject.org
Cc: Sam Ravnborg <sam@ravnborg.org>,
	kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Yi Li <liyi@loongson.cn>
Subject: Re: [PATCH v7 1/4] drm/loongson: Add DRM Driver for Loongson 7A1000 bridge chip
Date: Sat, 25 Jun 2022 19:27:51 +0800	[thread overview]
Message-ID: <202206251930.GbwGAcFG-lkp@intel.com> (raw)
In-Reply-To: <20220625090715.3663-1-lichenyang@loongson.cn>

Hi Chenyang,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on linus/master v5.19-rc3 next-20220624]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Chenyang-Li/drm-loongson-Add-DRM-Driver-for-Loongson-7A1000-bridge-chip/20220625-171037
base:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
config: powerpc-allmodconfig
compiler: powerpc-linux-gcc (GCC) 11.3.0
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
        # https://github.com/intel-lab-lkp/linux/commit/438d0791edb6352903bf09dfe214453526081075
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Chenyang-Li/drm-loongson-Add-DRM-Driver-for-Loongson-7A1000-bridge-chip/20220625-171037
        git checkout 438d0791edb6352903bf09dfe214453526081075
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash drivers/gpu/drm/loongson/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

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

   drivers/gpu/drm/loongson/loongson_crtc.c: In function 'loongson_crtc_mode_set_nofb':
>> drivers/gpu/drm/loongson/loongson_crtc.c:128:42: error: invalid use of undefined type 'struct drm_framebuffer'
     128 |         format = crtc->primary->state->fb->format;
         |                                          ^~
--
   drivers/gpu/drm/loongson/loongson_device.c: In function 'loongson_gpu_offset':
>> drivers/gpu/drm/loongson/loongson_device.c:14:44: error: invalid use of undefined type 'struct drm_framebuffer'
      14 |         gbo = drm_gem_vram_of_gem(state->fb->obj[0]);
         |                                            ^~
--
   In file included from include/linux/device.h:15,
                    from include/linux/pci.h:37,
                    from drivers/gpu/drm/loongson/loongson_drv.c:14:
   drivers/gpu/drm/loongson/loongson_drv.c: In function 'loongson_device_init':
>> include/drm/drm_print.h:425:39: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 3 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
     425 |         dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
         |                                       ^~~~~~~~
   include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                              ^~~
   include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
     150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                                                          ^~~~~~~
   include/drm/drm_print.h:425:9: note: in expansion of macro 'dev_info'
     425 |         dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
         |         ^~~~
   include/drm/drm_print.h:429:9: note: in expansion of macro '__drm_printk'
     429 |         __drm_printk((drm), info,, fmt, ##__VA_ARGS__)
         |         ^~~~~~~~~~~~
   drivers/gpu/drm/loongson/loongson_drv.c:91:9: note: in expansion of macro 'drm_info'
      91 |         drm_info(dev, "DC mmio base 0x%llx size 0x%llx io 0x%llx\n",
         |         ^~~~~~~~
   include/drm/drm_print.h:425:39: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 4 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
     425 |         dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
         |                                       ^~~~~~~~
   include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                              ^~~
   include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
     150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                                                          ^~~~~~~
   include/drm/drm_print.h:425:9: note: in expansion of macro 'dev_info'
     425 |         dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
         |         ^~~~
   include/drm/drm_print.h:429:9: note: in expansion of macro '__drm_printk'
     429 |         __drm_printk((drm), info,, fmt, ##__VA_ARGS__)
         |         ^~~~~~~~~~~~
   drivers/gpu/drm/loongson/loongson_drv.c:91:9: note: in expansion of macro 'drm_info'
      91 |         drm_info(dev, "DC mmio base 0x%llx size 0x%llx io 0x%llx\n",
         |         ^~~~~~~~
   drivers/gpu/drm/loongson/loongson_drv.c: At top level:
   drivers/gpu/drm/loongson/loongson_drv.c:99:5: warning: no previous prototype for 'loongson_modeset_init' [-Wmissing-prototypes]
      99 | int loongson_modeset_init(struct loongson_device *ldev)
         |     ^~~~~~~~~~~~~~~~~~~~~
--
   drivers/gpu/drm/loongson/loongson_plane.c: In function 'loongson_plane_atomic_update':
>> drivers/gpu/drm/loongson/loongson_plane.c:27:27: error: invalid use of undefined type 'struct drm_framebuffer'
      27 |         pitch = lstate->fb->pitches[0];
         |                           ^~
   drivers/gpu/drm/loongson/loongson_plane.c:33:27: error: invalid use of undefined type 'struct drm_framebuffer'
      33 |         depth = lstate->fb->format->cpp[0] << 3;
         |                           ^~


vim +128 drivers/gpu/drm/loongson/loongson_crtc.c

   102	
   103	static void loongson_crtc_mode_set_nofb(struct drm_crtc *crtc)
   104	{
   105		struct drm_device *dev = crtc->dev;
   106		struct loongson_device *ldev = to_loongson_device(dev);
   107		struct loongson_crtc *lcrtc = to_loongson_crtc(crtc);
   108		struct drm_display_mode *mode = &crtc->state->adjusted_mode;
   109		const struct drm_format_info *format;
   110		struct pix_pll pll_cfg;
   111		u32 hr, hss, hse, hfl;
   112		u32 vr, vss, vse, vfl;
   113		u32 pix_freq;
   114		u32 reg_offset;
   115	
   116		hr = mode->hdisplay;
   117		hss = mode->hsync_start;
   118		hse = mode->hsync_end;
   119		hfl = mode->htotal;
   120	
   121		vr = mode->vdisplay;
   122		vss = mode->vsync_start;
   123		vse = mode->vsync_end;
   124		vfl = mode->vtotal;
   125	
   126		pix_freq = mode->clock;
   127		reg_offset = lcrtc->reg_offset;
 > 128		format = crtc->primary->state->fb->format;
   129	
   130		ls7a_mm_wreg(ldev, FB_DITCFG_REG + reg_offset, 0);
   131		ls7a_mm_wreg(ldev, FB_DITTAB_LO_REG + reg_offset, 0);
   132		ls7a_mm_wreg(ldev, FB_DITTAB_HI_REG + reg_offset, 0);
   133		ls7a_mm_wreg(ldev, FB_PANCFG_REG + reg_offset, FB_PANCFG_DEF);
   134		ls7a_mm_wreg(ldev, FB_PANTIM_REG + reg_offset, 0);
   135	
   136		ls7a_mm_wreg(ldev, FB_HDISPLAY_REG + reg_offset, (hfl << 16) | hr);
   137		ls7a_mm_wreg(ldev, FB_HSYNC_REG + reg_offset,
   138			     FB_HSYNC_PULSE | (hse << 16) | hss);
   139	
   140		ls7a_mm_wreg(ldev, FB_VDISPLAY_REG + reg_offset, (vfl << 16) | vr);
   141		ls7a_mm_wreg(ldev, FB_VSYNC_REG + reg_offset,
   142			     FB_VSYNC_PULSE | (vse << 16) | vss);
   143	
   144		switch (format->format) {
   145		case DRM_FORMAT_RGB565:
   146			lcrtc->cfg_reg |= 0x3;
   147			break;
   148		case DRM_FORMAT_RGB888:
   149		case DRM_FORMAT_XRGB8888:
   150		case DRM_FORMAT_ARGB8888:
   151		default:
   152			lcrtc->cfg_reg |= 0x4;
   153			break;
   154		}
   155	
   156		ls7a_mm_wreg(ldev, FB_CFG_REG + reg_offset, lcrtc->cfg_reg);
   157	
   158		cal_freq(pix_freq, &pll_cfg);
   159		config_pll(ldev, LS7A_PIX_PLL + reg_offset, &pll_cfg);
   160	}
   161	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Chenyang Li <lichenyang@loongson.cn>,
	Maxime Ripard <mripard@kernel.org>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Dan Carpenter <error27@gmail.com>,
	David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
	dri-devel@lists.freedesktop.org, devel@linuxdriverproject.org
Cc: kbuild-all@lists.01.org, Sam Ravnborg <sam@ravnborg.org>,
	linux-kernel@vger.kernel.org, Yi Li <liyi@loongson.cn>
Subject: Re: [PATCH v7 1/4] drm/loongson: Add DRM Driver for Loongson 7A1000 bridge chip
Date: Sat, 25 Jun 2022 19:27:51 +0800	[thread overview]
Message-ID: <202206251930.GbwGAcFG-lkp@intel.com> (raw)
In-Reply-To: <20220625090715.3663-1-lichenyang@loongson.cn>

Hi Chenyang,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on linus/master v5.19-rc3 next-20220624]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Chenyang-Li/drm-loongson-Add-DRM-Driver-for-Loongson-7A1000-bridge-chip/20220625-171037
base:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
config: powerpc-allmodconfig
compiler: powerpc-linux-gcc (GCC) 11.3.0
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
        # https://github.com/intel-lab-lkp/linux/commit/438d0791edb6352903bf09dfe214453526081075
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Chenyang-Li/drm-loongson-Add-DRM-Driver-for-Loongson-7A1000-bridge-chip/20220625-171037
        git checkout 438d0791edb6352903bf09dfe214453526081075
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash drivers/gpu/drm/loongson/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

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

   drivers/gpu/drm/loongson/loongson_crtc.c: In function 'loongson_crtc_mode_set_nofb':
>> drivers/gpu/drm/loongson/loongson_crtc.c:128:42: error: invalid use of undefined type 'struct drm_framebuffer'
     128 |         format = crtc->primary->state->fb->format;
         |                                          ^~
--
   drivers/gpu/drm/loongson/loongson_device.c: In function 'loongson_gpu_offset':
>> drivers/gpu/drm/loongson/loongson_device.c:14:44: error: invalid use of undefined type 'struct drm_framebuffer'
      14 |         gbo = drm_gem_vram_of_gem(state->fb->obj[0]);
         |                                            ^~
--
   In file included from include/linux/device.h:15,
                    from include/linux/pci.h:37,
                    from drivers/gpu/drm/loongson/loongson_drv.c:14:
   drivers/gpu/drm/loongson/loongson_drv.c: In function 'loongson_device_init':
>> include/drm/drm_print.h:425:39: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 3 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
     425 |         dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
         |                                       ^~~~~~~~
   include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                              ^~~
   include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
     150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                                                          ^~~~~~~
   include/drm/drm_print.h:425:9: note: in expansion of macro 'dev_info'
     425 |         dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
         |         ^~~~
   include/drm/drm_print.h:429:9: note: in expansion of macro '__drm_printk'
     429 |         __drm_printk((drm), info,, fmt, ##__VA_ARGS__)
         |         ^~~~~~~~~~~~
   drivers/gpu/drm/loongson/loongson_drv.c:91:9: note: in expansion of macro 'drm_info'
      91 |         drm_info(dev, "DC mmio base 0x%llx size 0x%llx io 0x%llx\n",
         |         ^~~~~~~~
   include/drm/drm_print.h:425:39: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 4 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
     425 |         dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
         |                                       ^~~~~~~~
   include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                              ^~~
   include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
     150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                                                          ^~~~~~~
   include/drm/drm_print.h:425:9: note: in expansion of macro 'dev_info'
     425 |         dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
         |         ^~~~
   include/drm/drm_print.h:429:9: note: in expansion of macro '__drm_printk'
     429 |         __drm_printk((drm), info,, fmt, ##__VA_ARGS__)
         |         ^~~~~~~~~~~~
   drivers/gpu/drm/loongson/loongson_drv.c:91:9: note: in expansion of macro 'drm_info'
      91 |         drm_info(dev, "DC mmio base 0x%llx size 0x%llx io 0x%llx\n",
         |         ^~~~~~~~
   drivers/gpu/drm/loongson/loongson_drv.c: At top level:
   drivers/gpu/drm/loongson/loongson_drv.c:99:5: warning: no previous prototype for 'loongson_modeset_init' [-Wmissing-prototypes]
      99 | int loongson_modeset_init(struct loongson_device *ldev)
         |     ^~~~~~~~~~~~~~~~~~~~~
--
   drivers/gpu/drm/loongson/loongson_plane.c: In function 'loongson_plane_atomic_update':
>> drivers/gpu/drm/loongson/loongson_plane.c:27:27: error: invalid use of undefined type 'struct drm_framebuffer'
      27 |         pitch = lstate->fb->pitches[0];
         |                           ^~
   drivers/gpu/drm/loongson/loongson_plane.c:33:27: error: invalid use of undefined type 'struct drm_framebuffer'
      33 |         depth = lstate->fb->format->cpp[0] << 3;
         |                           ^~


vim +128 drivers/gpu/drm/loongson/loongson_crtc.c

   102	
   103	static void loongson_crtc_mode_set_nofb(struct drm_crtc *crtc)
   104	{
   105		struct drm_device *dev = crtc->dev;
   106		struct loongson_device *ldev = to_loongson_device(dev);
   107		struct loongson_crtc *lcrtc = to_loongson_crtc(crtc);
   108		struct drm_display_mode *mode = &crtc->state->adjusted_mode;
   109		const struct drm_format_info *format;
   110		struct pix_pll pll_cfg;
   111		u32 hr, hss, hse, hfl;
   112		u32 vr, vss, vse, vfl;
   113		u32 pix_freq;
   114		u32 reg_offset;
   115	
   116		hr = mode->hdisplay;
   117		hss = mode->hsync_start;
   118		hse = mode->hsync_end;
   119		hfl = mode->htotal;
   120	
   121		vr = mode->vdisplay;
   122		vss = mode->vsync_start;
   123		vse = mode->vsync_end;
   124		vfl = mode->vtotal;
   125	
   126		pix_freq = mode->clock;
   127		reg_offset = lcrtc->reg_offset;
 > 128		format = crtc->primary->state->fb->format;
   129	
   130		ls7a_mm_wreg(ldev, FB_DITCFG_REG + reg_offset, 0);
   131		ls7a_mm_wreg(ldev, FB_DITTAB_LO_REG + reg_offset, 0);
   132		ls7a_mm_wreg(ldev, FB_DITTAB_HI_REG + reg_offset, 0);
   133		ls7a_mm_wreg(ldev, FB_PANCFG_REG + reg_offset, FB_PANCFG_DEF);
   134		ls7a_mm_wreg(ldev, FB_PANTIM_REG + reg_offset, 0);
   135	
   136		ls7a_mm_wreg(ldev, FB_HDISPLAY_REG + reg_offset, (hfl << 16) | hr);
   137		ls7a_mm_wreg(ldev, FB_HSYNC_REG + reg_offset,
   138			     FB_HSYNC_PULSE | (hse << 16) | hss);
   139	
   140		ls7a_mm_wreg(ldev, FB_VDISPLAY_REG + reg_offset, (vfl << 16) | vr);
   141		ls7a_mm_wreg(ldev, FB_VSYNC_REG + reg_offset,
   142			     FB_VSYNC_PULSE | (vse << 16) | vss);
   143	
   144		switch (format->format) {
   145		case DRM_FORMAT_RGB565:
   146			lcrtc->cfg_reg |= 0x3;
   147			break;
   148		case DRM_FORMAT_RGB888:
   149		case DRM_FORMAT_XRGB8888:
   150		case DRM_FORMAT_ARGB8888:
   151		default:
   152			lcrtc->cfg_reg |= 0x4;
   153			break;
   154		}
   155	
   156		ls7a_mm_wreg(ldev, FB_CFG_REG + reg_offset, lcrtc->cfg_reg);
   157	
   158		cal_freq(pix_freq, &pll_cfg);
   159		config_pll(ldev, LS7A_PIX_PLL + reg_offset, &pll_cfg);
   160	}
   161	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

  parent reply	other threads:[~2022-06-25 11:28 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-25  9:07 [PATCH v7 1/4] drm/loongson: Add DRM Driver for Loongson 7A1000 bridge chip Chenyang Li
2022-06-25  9:07 ` [PATCH v7 2/4] drm/loongson: Add GPIO and I2C driver for loongson drm Chenyang Li
2022-06-25 12:39   ` kernel test robot
2022-06-25 12:39     ` kernel test robot
2022-07-11 14:43   ` kernel test robot
2022-07-11 14:43     ` kernel test robot
2022-06-25  9:07 ` [PATCH v7 3/4] drm/loongson: Add interrupt driver for LS7A Chenyang Li
2022-07-11 20:30   ` kernel test robot
2022-07-11 20:30     ` kernel test robot
2022-06-25  9:07 ` [PATCH v7 4/4] drm/loongson: Use acpi to get video bios Chenyang Li
2022-06-25 11:27 ` kernel test robot [this message]
2022-06-25 11:27   ` [PATCH v7 1/4] drm/loongson: Add DRM Driver for Loongson 7A1000 bridge chip kernel test robot
2022-09-06 12:00 ` [PATCH v7 2/4] drm/loongson: Add GPIO and I2C driver for loongson drm 李晨阳
2022-09-06 12:00 ` [PATCH v7 3/4] drm/loongson: Add interrupt driver for LS7A 李晨阳
2022-09-06 12:00 ` [PATCH v7 4/4] drm/loongson: Use acpi to get video bios 李晨阳
  -- strict thread matches above, loose matches on Subject: below --
2022-09-06 11:59 [PATCH v7 1/4] drm/loongson: Add DRM Driver for Loongson 7A1000 bridge chip 李晨阳
2022-04-22  8:14 Chenyang Li
2022-04-22 16:54 ` kernel test robot
2022-04-22 16:54   ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202206251930.GbwGAcFG-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=airlied@linux.ie \
    --cc=daniel@ffwll.ch \
    --cc=devel@linuxdriverproject.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=error27@gmail.com \
    --cc=kbuild-all@lists.01.org \
    --cc=lichenyang@loongson.cn \
    --cc=linux-kernel@vger.kernel.org \
    --cc=liyi@loongson.cn \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=sam@ravnborg.org \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.