Re: MMC3 Overo
On Mon, Aug 3, 2009 at 6:59 AM, Elvis Dowsonelvis.dow...@mac.com wrote: Hi, On Aug 3, 2009, at 2:56 PM, John Sarman wrote: On Mon, Aug 3, 2009 at 6:37 AM, Elvis Dowsonelvis.dow...@mac.com wrote: MMC3 connects to one of the 70 pin bottom connectors. Is this for some custom board? I am using the standard Overo Earth + palo43 combo. Just want to know if I need to apply the mmc3 patch or not. Yeah, sorry it is a 100% custom board. The 32 mmc patches released do apply, but the IRQ fix is only needed if you plan to use mmc3. The existing mmc reader on board the overo, is it connected to mmc1 or mmc3? Best regards, Elvis -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Help bringing up a sensor driver for isp omap34xx.c
Sakari, My images are not so pretty yet, but that is because I haven't set any real configuration on the image sensor yet. First I would like to get the data streaming to the framebuffer. That will allow me to focus the image, then I will start applying the i2c calls needed. Also I have an idea for creating a sensor driver, one to rule them all so to speak. What are your opinions on a driver that would read a firmware file that basically contains the i2c calls that are sensor specific. In the firmware block it would have the necessary code to first find the sensor, then it would have blocks to do the various sensor related features, such as init ,gain, exposure , etc, etc. This model would allow for anyone to use an image sensor with confidential datasheets because they could place there firmware in say /lib/firmware/imaging and not be forced to have that GPL'ed. Plus everyone benefits from a highly tested GPL'ed driver. I even image a tool that allows designers to generate the firmware files while viewing the data on the framebuffer, but thats a future discussion. Thanks, John Sarman On Mon, Jul 20, 2009 at 5:08 AM, Sakari Ailussakari.ai...@nokia.com wrote: (Dropped Sameer and Mohit from Cc.) John Sarman wrote: Hello, Hi, I am having a problem deciphering what is wrong with my sensor driver. It seems that everything operates on the driver but that I am getting buffer overflows. I have fully tested the image sensor and it is set to operate in 640x480 mode. currently it is like 648x 487 for the dummy pixels and lines. I have enabled all the debugging #defines in the latest code from the gitorious repository. I also had to edit a few debug statements because they cause the compile to fail. Those failures were due to the resizer rewrite and since the #defines were commented out that code was never compiled. Anyways here is my dmesg after I open and select the /dev/video0. I have been banging my head against a wall for 2 weeks now. Thanks, ... ISPSBL_PCR_CCDCPRV_2_RSZ_OVF very often without any ill effects (AFAIR) which consequently causes OVF_IRQ to be triggered. It can be ignored. How are your images? :) Printing things that big from the interrupt handler might hamper with your image captuting efforts, too. Cheers, -- Sakari Ailus sakari.ai...@maxwell.research.nokia.com -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
omap35xx question
I am working with the omap34xx camera driver. I have a working sensor driver that is capable of delivering Bayer data. I have successfully ran the driver with both raw output and YUYV. However when in YUYV the previewer resizer seems SLOW and over time the select call will timeout. I am able to run the device using xawtv, but it will sadly end with a v4l2: oops select timeout. My sensor is set to 2592 x 1944 although my driver says 800x600 and is outputing 7 fps. When I observe the interrupts i get a series of HS_VS then I will get a preview and resizer interrupt, then more HS_VS. I was thinking I would get a HS_VS then VDO VD1 PREV RESize, but am unsure of this. Any help or enlightenment is appreciated. -- John Sarman -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Omap34xx and OV5620
Sergio, Success, I was able to capture data from the OV5620 using the omap34xxcam and isp. The problem I was was having was due to several wrong setups (all my fault of course :) I am using the v4l2 example code. The code wanted YUYV and Interlaced. I changed it to the SGBRG10 and FIELD_NONE and I started getting VD1 interrupts. I read through the isr in isp.c and saw that in raw mode it wanted a VD0. I changed that to VD1 and then got a message stating the wait was too long :( At that point I made the sensor send 1280x 1024 data instead of 640x 480. Now i was getting VD0 and VD1 interrupts. Changed the isp.c back to the original code and voila. Images. So i saved a buffer to a file and converted the data to 8-bit data I saw my first mono image. Now I would like to be able to have a YUYV output pixelformat and let the isp engine do all the conversion for me. The datasheet says this is possible and the code seems to support it, but I am not getting interrupts for it. So here is my new questions: Is converting from raw to YUYV possible in hardware on the omap34xx Specifically omap3530 If so do you think that having the interrupts print is causing the isr to miss other interrupts. Thanks, John Sarman -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Problems configuring OMAP35x ISP driver
Eddy Here is the config static struct isp_interface_config ov5620_if_config = { .ccdc_par_ser = ISP_PARLL, .dataline_shift = 0x1, .hsvs_syncdetect = ISPCTRL_SYNC_DETECT_VSRISE, .strobe = 0x0, .prestrobe = 0x0, .shutter = 0x0, .prev_sph = 2, .prev_slv = 0, .wenlog = ISPCCDC_CFG_WENLOG_OR, .u.par.par_bridge = 0x0, .u.par.par_clk_pol = 0x0, }; My sensor has pos edge Vsync and pos edge h sync, positive clock, wenlog was originally ISPCCDC_CFG_WENLOG_AND I am using the latest patches from Sergio. Maybe I should backport my driver to the older release. Are you using the RAW input or another input format ? Thanks John Sarman Tetracam Inc. On Wed, Jul 15, 2009 at 1:28 PM, Eino-Ville Talvalatalv...@stanford.edu wrote: John, I don't have any magic cures to offer right off - if I had to guess, I'd say something in the ISP is misconfigured. Do you call isp_configure_interface in your board file, and does the struct you pass it match what the sensor puts out? I'm not actually sure which kernel version you're using - we here at Stanford have been using Vaibhav Hiremath's git repository at: http://arago-project.org/git/people/vaibhav/ti-psp-omap-video.git (the ti_display part), with the ISP patches from Sergio from a few months ago applied on top. It's a bit of a mess, if you ask me - I hope all of this gets integrated into the mainline soon, keeping track of it all takes far too much time. -Eddy On 7/14/2009 1:51 PM, John Sarman wrote: Eddy and anyone who may be able to help, I am currently working on an Omnivision OV5620 and have used the ov3640 driver as a starting point. I have the June 18( latest ? ) code from the gitorious git repo. I have thouroughly tested my i2c driver setup using a 500 Mhz oscilloscope and have configured the sensor to 640 x 480. The only mode this supports is RAW V4L2_PIX_FMT_SGRBG10 and I have that as the only available format. So far so good. Sensor powers, configures etc, etc. However when I run the sensor I get ISPCTRL: HS_VS_IRQ6ISPCTRL: OVF_IRQ6ISPCTRL: To test this I used the example code provided with v4l2 documentation. I have attached a complete log with all my added printk's set up as a poor mans stacktrace. Stuck trying to determine where to go from here, I feel like I am so close to getting an image. Thanks, John Sarman v4l2_open omap34xx: Opening device isp_get ISPCTRL: isp_get: old 0 isp_enable_clocks isp_restore_ctx isp_restore_context isp_restore_context iommu_restore_ctx ISPHIST: Restoring context isp_restore_context ISPH3A: Restoring context isp_restore_context isp_restore_context ISPRESZ: Restoring context isp_restore_context ISPCTRL: isp_get: new 1 omap34xxcam_slave_power_set OV5620: ioctl_s_power isp_set_xclk isp_reg_and_or ISPCTRL: isp_set_xclk(): cam_xclka set to 2400 Hz BOARD_OVERO_CAMERA: Switching Power to 1 OV5620: POWER ON isp_configure_interface isp_buf_init OV5620: Sensor Detected, calling configure ov5620:configure omap34xxcam_slave_power_set OV5620: ioctl_s_power BOARD_OVERO_CAMERA: Switching Power to 2 OV5620: POWER STANDBY isp_set_xclk isp_reg_and_or ISPCTRL: isp_set_xclk(): cam_xclka set to 0 Hz OV5620: ioctl_g_fmt_cap omap34xxcam_s_pix_parm omap34xxcam_try_pix_parm omap34xxcam_try_pix_parm fps = 1 OV5620: ioctl_enum_fmt_cap OV5620: ioctl_enum_fmt_cap index 0 type 1 video4linux video0: trying fmt 30314142 (0) OV5620: ioctl_enum_framesizes isp_try_fmt_cap isp_try_pipeline video4linux video0: this w 640 h 480 fmt 30314142 - w 640 h 480 fmt 30314142 wanted w 640 h 480 fmt 30314142 video4linux video0: renegotiate: w 640 h 480 w 1073741823 h 1073741823 OV5620: ioctl_enum_frameintervals video4linux video0: fps 60 the demoninator is 0 video4linux video0: best_pix_in: w 640 h 480 fmt 30314142 ival 1/60 OV5620: ioctl_enum_frameintervals video4linux video0: fps 30 video4linux video0: closer fps: fps 29 fps 59 video4linux video0: best_pix_in: w 640 h 480 fmt 30314142 ival 1/30 OV5620: ioctl_enum_frameintervals video4linux video0: fps 7 video4linux video0: closer fps: fps 6 fps 29 video4linux video0: best_pix_in: w 640 h 480 fmt 30314142 ival 2/15 OV5620: ioctl_enum_frameintervals OV5620: ioctl_enum_framesizes isp_try_fmt_cap isp_try_pipeline video4linux video0: this w 1280 h 960 fmt 30314142 - w 1280 h 960 fmt 30314142 wanted w 640 h 480 fmt 30314142 video4linux video0: size diff bigger: w 1280 h 960 w 640 h 480 OV5620: ioctl_enum_framesizes OV5620: ioctl_enum_fmt_cap OV5620: ioctl_enum_fmt_cap index 1 type 1 video4linux video0: w 640, h 480, fmt 30314142 - w 640, h 480 video4linux video0: Wanted w 640, h 480, fmt 30314142 omap34xxcam_s_pix_parm 1 0 isp_s_fmt_cap isp_s_pipeline isp_release_resources isp_try_pipeline isp_reg_or isp_reg_or isp_reg_and_or
Help bringing up a sensor driver for isp omap34xx.c
Hello, I am having a problem deciphering what is wrong with my sensor driver. It seems that everything operates on the driver but that I am getting buffer overflows. I have fully tested the image sensor and it is set to operate in 640x480 mode. currently it is like 648x 487 for the dummy pixels and lines. I have enabled all the debugging #defines in the latest code from the gitorious repository. I also had to edit a few debug statements because they cause the compile to fail. Those failures were due to the resizer rewrite and since the #defines were commented out that code was never compiled. Anyways here is my dmesg after I open and select the /dev/video0. I have been banging my head against a wall for 2 weeks now. Thanks, OV5620: ioctl_g_priv OV5620: ov5620_probe OV5620: ioctl_g_priv OV5620: ioctl_g_priv OV5620: ioctl_g_priv OV5620: ioctl_g_priv ISPCTRL: isp_get: old 0 ISPCCDC: Restoring context ISPHIST: Restoring context ISPH3A: Restoring context ISPPREV: Restoring context ISPRESZ: Restoring context ISPCTRL: isp_get: new 1 OV5620: ioctl_s_power ISPCTRL: isp_set_xclk(): cam_xclka set to 2400 Hz BOARD_OVERO_CAMERA: Switching Power to 1 OV5620: POWER ON OV5620: Sensor not detected, calling ioctl_dev_init(s) OV5620: ioctl_dev_init ov5620:detect ov5620 3-0030: model id detected 0x5621 mfr 0x7fa2 ov5620 3-0030: Chip version 0x02 detected OV5620: Sensor Detected, calling configure ov5620:configure OV5620: ioctl_g_fmt_cap OV5620: ioctl_s_power OV5620: POWER OFF BOARD_OVERO_CAMERA: Switching Power to 0 OV5620: POWER OFF ISPCTRL: isp_set_xclk(): cam_xclka set to 0 Hz ISPCTRL: isp_put: old 1 ISPCCDC: Saving context ISPHIST: Saving context ISPH3A: Saving context ISPPREV: Saving context ISPRESZ: Saving context ISPCCDC: ISP_ERR: CCDC Module already freed ISPRESZ: ISP_ERR : Resizer Module already freed ISPCTRL: isp_put: new 0 ISPCTRL: isp_get: old 0 ISPCCDC: Restoring context ISPHIST: Restoring context ISPH3A: Restoring context ISPPREV: Restoring context ISPRESZ: Restoring context ISPCTRL: isp_get: new 1 OV5620: ioctl_s_power ISPCTRL: isp_set_xclk(): cam_xclka set to 2400 Hz BOARD_OVERO_CAMERA: Switching Power to 1 OV5620: POWER ON OV5620: Sensor Detected, calling configure ov5620:configure OV5620: ioctl_s_power BOARD_OVERO_CAMERA: Switching Power to 2 OV5620: POWER STANDBY ISPCTRL: isp_set_xclk(): cam_xclka set to 0 Hz OV5620: ioctl_g_fmt_cap OV5620: ioctl_enum_fmt_cap OV5620: ioctl_enum_fmt_cap index 0 type 1 OV5620: ioctl_enum_framesizes OV5620: ioctl_enum_frameintervals OV5620:frmi-index = 0 OV5620: ioctl_enum_frameintervals OV5620: ioctl_enum_framesizes OV5620: ioctl_enum_frameintervals OV5620:frmi-index = 0 OV5620: ioctl_enum_frameintervals OV5620: ioctl_enum_framesizes OV5620: ioctl_enum_fmt_cap OV5620: ioctl_enum_fmt_cap index 1 type 1 ISPCCDC: ISP_ERR: CCDC Module already freed ISPRESZ: ISP_ERR : Resizer Module already freed ISPCCDC: Module in use =1 ISPCCDC: Accepted CCDC Input (width = 640,Height = 480) ISPCCDC: Accepted CCDC Output (width = 640,Height = 479) ISPCCDC: ###CCDC PCR=0x0 ISPCCDC: ISP_CTRL =0x39e150 ISPCCDC: ccdc input format is CCDC_RAW ISPCCDC: ccdc output format is CCDC_OTHERS_VP ISPCCDC: ###ISP_CTRL in ccdc =0x39e150 ISPCCDC: ###ISP_IRQ0ENABLE in ccdc =0x0 ISPCCDC: ###ISP_IRQ0STATUS in ccdc =0x8200 ISPCCDC: ###CCDC SYN_MODE=0x10600 ISPCCDC: ###CCDC HORZ_INFO=0x27f ISPCCDC: ###CCDC VERT_START=0x0 ISPCCDC: ###CCDC VERT_LINES=0x1df ISPCCDC: ###CCDC CULLING=0x00ff ISPCCDC: ###CCDC HSIZE_OFF=0x500 ISPCCDC: ###CCDC SDOFST=0x0 ISPCCDC: ###CCDC SDR_ADDR=0x266000 ISPCCDC: ###CCDC CLAMP=0x10 ISPCCDC: ###CCDC COLPTN=0xbb11bb11 ISPCCDC: ###CCDC CFG=0x8000 ISPCCDC: ###CCDC VP_OUT=0x77c5000 ISPCCDC: ###CCDC_SDR_ADDR= 0x266000 ISPCCDC: ###CCDC FMTCFG=0xe000 ISPCCDC: ###CCDC FMT_HORZ=0x500 ISPCCDC: ###CCDC FMT_VERT=0x3c0 ISPCCDC: ###CCDC LSC_CONFIG=0x6608 ISPCCDC: ###CCDC LSC_INIT=0x0 ISPCCDC: ###CCDC LSC_TABLE BASE=0x1000 ISPCCDC: ###CCDC LSC TABLE OFFSET=0x60 ISPCTRL: ###ISP_CTRL=0x39e150 ISPCTRL: ###ISP_TCTRL_CTRL=0x0 ISPCTRL: ###ISP_SYSCONFIG=0x2000 ISPCTRL: ###ISP_SYSSTATUS=0x1 ISPCTRL: ###ISP_IRQ0ENABLE=0x0 ISPCTRL: ###ISP_IRQ0STATUS=0x8200 ISPPREV:Configuring brightness in ISP: 0 ISPRESZ: ispresizer_config_datapath()+ ISPRESZ: ispresizer_config_ycpos()+ ISPRESZ: ispresizer_config_ycpos()- ISPRESZ: ispresizer_config_filter_coef()+ ISPRESZ: ispresizer_config_filter_coef()- ISPRESZ: ispresizer_enable_cbilin()+ ISPRESZ: ispresizer_enable_cbilin()- ISPRESZ: ispresizer_config_luma_enhance()+ ISPRESZ: ispresizer_config_luma_enhance()- ISPRESZ: ispresizer_config_datapath()- ISPRESZ: ispresizer_config_inlineoffset()+ ISPRESZ: ispresizer_config_inlineoffset()- ISPRESZ: ispresizer_set_inaddr()+ ISPRESZ: ispresizer_set_inaddr()- ISPRESZ: ispresizer_config_outlineoffset()+ ISPRESZ: ispresizer_config_outlineoffset()- ISPRESZ: ispresizer_config_ycpos()+ ISPRESZ: ispresizer_config_ycpos()- ISPRESZ: ispresizer_config_size()- OV5620: ioctl_g_fmt_cap OV5620: ioctl_s_fmt_cap
Re: Problems configuring OMAP35x ISP driver
Eddy and anyone who may be able to help, I am currently working on an Omnivision OV5620 and have used the ov3640 driver as a starting point. I have the June 18( latest ? ) code from the gitorious git repo. I have thouroughly tested my i2c driver setup using a 500 Mhz oscilloscope and have configured the sensor to 640 x 480. The only mode this supports is RAW V4L2_PIX_FMT_SGRBG10 and I have that as the only available format. So far so good. Sensor powers, configures etc, etc. However when I run the sensor I get ISPCTRL: HS_VS_IRQ 6ISPCTRL: OVF_IRQ 6ISPCTRL: To test this I used the example code provided with v4l2 documentation. I have attached a complete log with all my added printk's set up as a poor mans stacktrace. Stuck trying to determine where to go from here, I feel like I am so close to getting an image. Thanks, John Sarman v4l2_open omap34xx: Opening device isp_get ISPCTRL: isp_get: old 0 isp_enable_clocks isp_restore_ctx isp_restore_context isp_restore_context iommu_restore_ctx ISPHIST: Restoring context isp_restore_context ISPH3A: Restoring context isp_restore_context isp_restore_context ISPRESZ: Restoring context isp_restore_context ISPCTRL: isp_get: new 1 omap34xxcam_slave_power_set OV5620: ioctl_s_power isp_set_xclk isp_reg_and_or ISPCTRL: isp_set_xclk(): cam_xclka set to 2400 Hz BOARD_OVERO_CAMERA: Switching Power to 1 OV5620: POWER ON isp_configure_interface isp_buf_init OV5620: Sensor Detected, calling configure ov5620:configure omap34xxcam_slave_power_set OV5620: ioctl_s_power BOARD_OVERO_CAMERA: Switching Power to 2 OV5620: POWER STANDBY isp_set_xclk isp_reg_and_or ISPCTRL: isp_set_xclk(): cam_xclka set to 0 Hz OV5620: ioctl_g_fmt_cap omap34xxcam_s_pix_parm omap34xxcam_try_pix_parm omap34xxcam_try_pix_parm fps = 1 OV5620: ioctl_enum_fmt_cap OV5620: ioctl_enum_fmt_cap index 0 type 1 video4linux video0: trying fmt 30314142 (0) OV5620: ioctl_enum_framesizes isp_try_fmt_cap isp_try_pipeline video4linux video0: this w 640 h 480 fmt 30314142- w 640h 480 fmt 30314142wanted w 640h 480fmt 30314142 video4linux video0: renegotiate: w 640 h 480 w 1073741823h 1073741823 OV5620: ioctl_enum_frameintervals video4linux video0: fps 60 the demoninator is 0 video4linux video0: best_pix_in: w 640 h 480 fmt 30314142ival 1/60 OV5620: ioctl_enum_frameintervals video4linux video0: fps 30 video4linux video0: closer fps: fps 29 fps 59 video4linux video0: best_pix_in: w 640 h 480 fmt 30314142ival 1/30 OV5620: ioctl_enum_frameintervals video4linux video0: fps 7 video4linux video0: closer fps: fps 6fps 29 video4linux video0: best_pix_in: w 640 h 480 fmt 30314142ival 2/15 OV5620: ioctl_enum_frameintervals OV5620: ioctl_enum_framesizes isp_try_fmt_cap isp_try_pipeline video4linux video0: this w 1280 h 960 fmt 30314142- w 1280 h 960 fmt 30314142wanted w 640h 480fmt 30314142 video4linux video0: size diff bigger: w 1280h 960 w 640 h 480 OV5620: ioctl_enum_framesizes OV5620: ioctl_enum_fmt_cap OV5620: ioctl_enum_fmt_cap index 1 type 1 video4linux video0: w 640, h 480, fmt 30314142 - w 640, h 480 video4linux video0: Wanted w 640, h 480, fmt 30314142 omap34xxcam_s_pix_parm 1 0 isp_s_fmt_cap isp_s_pipeline isp_release_resources isp_try_pipeline isp_reg_or isp_reg_or isp_reg_and_or isp_reg_and_or isp_reg_and isp_print_status ISPCTRL: ###ISP_CTRL=0x29c140 ISPCTRL: ###ISP_TCTRL_CTRL=0x0 ISPCTRL: ###ISP_SYSCONFIG=0x2000 ISPCTRL: ###ISP_SYSSTATUS=0x1 ISPCTRL: ###ISP_IRQ0ENABLE=0x0 ISPCTRL: ###ISP_IRQ0STATUS=0x8000 isp_reg_and isp_reg_and isp_reg_and omap34xxcam_s_pix_parm 2 0 OV5620: ioctl_g_fmt_cap OV5620: ioctl_s_fmt_cap OV5620: ioctl_try_fmt_cap OV5620: ioctl_try_fmt_cap WIDTH = 640 OV5620: ioctl_try_fmt_cap HEIGHT = 480 omap34xxcam_s_pix_parm 3 0 OV5620: ioctl_s_parm OV5620 desired_fps = 7 omap34xxcam_s_pix_parm 4 0 omap34xx: Opened device video_do_ioctl omap34xxcam_vidioc_querycap video_do_ioctl omap34xxcam_cropcap OV5620: ioctl_g_fmt_cap video_do_ioctl omap34xxcam_vidioc_s_crop isp_s_crop video_do_ioctl omap34xxcam_vidioc_s_fmt_vid_cap omap34xxcam_s_pix_parm omap34xxcam_try_pix_parm omap34xxcam_try_pix_parm fps = 1 OV5620: ioctl_enum_fmt_cap OV5620: ioctl_enum_fmt_cap index 0 type 1 video4linux video0: trying fmt 30314142 (0) OV5620: ioctl_enum_framesizes isp_try_fmt_cap isp_try_pipeline video4linux video0: this w 640 h 480 fmt 30314142- w 640h 480 fmt 56595559wanted w 640h 480fmt 56595559 video4linux video0: renegotiate: w 640 h 480 w 1073741823h 1073741823 OV5620: ioctl_enum_frameintervals video4linux video0: fps 60 the demoninator is 0 video4linux video0: best_pix_in: w 640 h 480 fmt 30314142ival 1/60 OV5620: ioctl_enum_frameintervals video4linux video0: fps 30 video4linux video0: closer fps: fps 29 fps 59 video4linux video0: best_pix_in: w 640 h 480 fmt 30314142ival 1/30 OV5620: ioctl_enum_frameintervals video4linux video0: fps 7 video4linux
Need Help on howto trace down a soft lock when opening a video0 device
I am currently creating a camera driver for an omap3530 processor based on omap3 camera support. I have it successfully configuring my camera and /dev/video0 shows up. However when I try to open the device using any program( xawtv , cat, etc.) The system soft locks. What I am trying to do is put printk s everywhere to track down the source of the lock. Currently I would like to know where in v4l2 would be a good place to add a printk to see it go farther than the generic open from fnctrl.h. Or maybe another technique to track down where the soft lock is occurring Thanks John Sarman -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html