10 Sep, 2010

5 commits

  • This patch solve compile error when .config doesn't have
    CONFIG_SND_SOC which is needed for HDMI sound.
    It was reported by Guennadi as follows

    Besides, I think, this will not link without CONFIG_SND_SOC.

    Reported-by: Guennadi Liakhovetski
    Signed-off-by: Kuninori Morimoto
    Reviewed-by: Guennadi Liakhovetski
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • This patch solve below report from Guennadi

    > /* External video parameter settings */
    > static void hdmi_external_video_param(struct sh_hdmi *hdmi)
    > {
    > @@ -804,6 +862,11 @@ static int __init sh_hdmi_probe(struct platform_device *pdev)
    > return -ENOMEM;
    > }
    >
    > + ret = snd_soc_register_codec(&pdev->dev,
    > + &soc_codec_dev_sh_hdmi, &sh_hdmi_dai, 1);
    > + if (ret < 0)
    > + goto egetclk;
    > +
    > hdmi->dev = &pdev->dev;
    >
    > hdmi->hdmi_clk = clk_get(&pdev->dev, "ick");

    NAK. This breaks the error path and has to be fixed. Firstly, please, use
    a new label like "esndreg," secondly, you have to add

    clk_disable(hdmi->hdmi_clk);
    erate:
    clk_put(hdmi->hdmi_clk);
    egetclk:
    + snd_soc_unregister_codec(&pdev->dev);
    +esndreg:
    mutex_destroy(&hdmi->mutex);
    kfree(hdmi);

    Reported-by: Guennadi Liakhovetski
    Signed-off-by: Kuninori Morimoto
    Reviewed-by: Guennadi Liakhovetski
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • This patch solve below report from Guennadi

    > +static struct snd_soc_dai_driver sh_hdmi_dai = {
    > + .name = "sh_mobile_hdmi-hifi",
    > + .playback = {
    > + .stream_name = "Playback",
    > + .channels_min = 1,

    Can it actually do mono? Maybe at probe time you could look at audio flags
    from your previous patch and, e.g., for SPDIF set channels_min to 2?

    > + .channels_max = 2,

    That's the "smallest max," yes. With some other interfaces (I2S, DSD) it
    can support up to 8 channels...

    > + .rates = SNDRV_PCM_RATE_8000_48000,

    Hm, in the datasheet I see supported frequencies 32kHz to 192kHz. And if
    you promise support for multiple frequencies, don't you want to implement
    .hw_params? Besides, not all of these frequencies will be available,
    depending on your supplied clock and your willingness to implement
    downsampling.

    Reported-by: Guennadi Liakhovetski
    Signed-off-by: Kuninori Morimoto
    Reviewed-by: Guennadi Liakhovetski
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • This patch solve below report from Guennadi

    1)

    > +/* Audio source select */
    > +#define HDMI_SRC_MASK (0xF << 0)
    > +#define HDMI_SRC_I2S (0 << 0) /* default */
    > +#define HDMI_SRC_SPDIF (1 << 0)
    > +#define HDMI_SRC_DSD (2 << 0)
    > +#define HDMI_SRC_HBR (3 << 0)

    I would be more specific with these macro names, i.e., include "AUDIO" or
    "SND" or something similar in them, e.g., HDMI_AUDIO_SRC_I2S.

    2)

    > + case HDMI_SRC_I2S:
    > + data = (0x0 << 3);
    > + break;
    > + case HDMI_SRC_SPDIF:
    > + data = (0x1 << 3);
    > + break;
    > + case HDMI_SRC_DSD:
    > + data = (0x2 << 3);
    > + break;
    > + case HDMI_SRC_HBR:
    > + data = (0x3 << 3);

    In all above cases parenthesis are superfluous.

    Reported-by: Guennadi Liakhovetski
    Signed-off-by: Kuninori Morimoto
    Reviewed-by: Guennadi Liakhovetski
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • This patch solve below report from Guennadi

    1)

    > - hdmi_write(hdmi, 0x00, HDMI_AUDIO_SETTING_1);
    > + switch (pdata->flags & HDMI_SRC_MASK) {
    > + default:
    > + /* FALL THROUGH */

    I'm not sure I like the capitalisation here - no reason to shout;)

    2)

    > +/************************************************************************
    > +
    > +
    > + HDMI sound
    > +
    > +
    > +************************************************************************/

    I don't think this comment deserves 7 lines of text, besides breaking the
    multiline comment style. If you think, one line like

    /* HDMI sound */

    is not enough how about just

    /*
    * HDMI sound
    */

    3)

    > +/************************************************************************
    > +
    > +
    > + HDMI video
    > +
    > +
    > +************************************************************************/

    See above - 7 lines seem to be an overkill to me.

    Reported-by: Guennadi Liakhovetski
    Signed-off-by: Kuninori Morimoto
    Reviewed-by: Guennadi Liakhovetski
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     

01 Sep, 2010

2 commits


13 Aug, 2010

3 commits

  • * 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    i2c: I2C bus multiplexer driver pca954x
    i2c: Multiplexed I2C bus core support
    i2c: Use a separate mutex for userspace client lists
    i2c: Make i2c_default_probe self-sufficient
    i2c: Drop dummy variable
    i2c: Move adapter locking helpers to i2c-core
    V4L/DVB: Use custom I2C probing function mechanism
    i2c: Add support for custom probe function
    i2c-dev: Use memdup_user
    i2c-dev: Remove unnecessary kmalloc casts

    Linus Torvalds
     
  • * 'params' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: (22 commits)
    param: don't deref arg in __same_type() checks
    param: update drivers/acpi/debug.c to new scheme
    param: use module_param in drivers/message/fusion/mptbase.c
    ide: use module_param_named rather than module_param_call
    param: update drivers/char/ipmi/ipmi_watchdog.c to new scheme
    param: lock if_sdio's lbs_helper_name and lbs_fw_name against sysfs changes.
    param: lock myri10ge_fw_name against sysfs changes.
    param: simple locking for sysfs-writable charp parameters
    param: remove unnecessary writable charp
    param: add kerneldoc to moduleparam.h
    param: locking for kernel parameters
    param: make param sections const.
    param: use free hook for charp (fix leak of charp parameters)
    param: add a free hook to kernel_param_ops.
    param: silence .init.text references from param ops
    Add param ops struct for hvc_iucv driver.
    nfs: update for module_param_named API change
    AppArmor: update for module_param_named API change
    param: use ops in struct kernel_param, rather than get and set fns directly
    param: move the EXPORT_SYMBOL to after the definitions.
    ...

    Linus Torvalds
     
  • * 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6:
    mmc_spi: Fix unterminated of_match_table
    of/sparc: fix build regression from of_device changes
    of/device: Replace struct of_device with struct platform_device

    Linus Torvalds
     

12 Aug, 2010

3 commits

  • The probe method used by i2c_new_probed_device() may not be suitable
    for all cases. Let the caller provide its own, optional probe
    function.

    Signed-off-by: Jean Delvare
    Acked-by: Mauro Carvalho Chehab

    Jean Delvare
     
  • * 'msm-video' of git://codeaurora.org/quic/kernel/dwalker/linux-msm:
    video: msm: Fix section mismatch in mddi.c.
    drivers: video: msm: drop some unused variables

    Linus Torvalds
     
  • * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (226 commits)
    ARM: 6323/1: cam60: don't use __init for cam60_spi_{flash_platform_data,partitions}
    ARM: 6324/1: cam60: move cam60_spi_devices to .init.data
    ARM: 6322/1: imx/pca100: Fix name of spi platform data
    ARM: 6321/1: fix syntax error in main Kconfig file
    ARM: 6297/1: move U300 timer to dynamic clock lookup
    ARM: 6296/1: clock U300 intcon and timer properly
    ARM: 6295/1: fix U300 apb_pclk split
    ARM: 6306/1: fix inverted MMC card detect in U300
    ARM: 6299/1: errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID
    ARM: 6294/1: etm: do a dummy read from OSSRR during initialization
    ARM: 6292/1: coresight: add ETM management registers
    ARM: 6288/1: ftrace: document mcount formats
    ARM: 6287/1: ftrace: clean up mcount assembly indentation
    ARM: 6286/1: fix Thumb-2 decompressor broken by "Auto calculate ZRELADDR"
    ARM: 6281/1: video/imxfb.c: allow usage without BACKLIGHT_CLASS_DEVICE
    ARM: 6280/1: imx: Fix build failure when including without
    ARM: S5PV210: Fix on missing s3c-sdhci card detection method for hsmmc3
    ARM: S5P: Fix on missing S5P_DEV_FIMC in plat-s5p/Kconfig
    ARM: S5PV210: Override FIMC driver name on Aquila board
    ARM: S5PC100: enable FIMC on SMDKC100
    ...

    Fix up conflicts in arch/arm/mach-{s5pc100,s5pv210}/cpu.c due to
    different subsystem 'setname' calls, and trivial port types in
    include/linux/serial_core.h

    Linus Torvalds
     

11 Aug, 2010

27 commits

  • Cc: Kulikov Vasiliy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • If iga_init() fails, code releases resources and continues to use it. It
    seems that after releasing resources 'return' should be.

    Signed-off-by: Kulikov Vasiliy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kulikov Vasiliy
     
  • When we setup up the VMA flags for the mmap flag and we end up using the
    fallback mmap functionality we set the vma->vm_flags |= VM_IO. However we
    neglect to propagate the flag to the vma->vm_page_prot.

    This bug was found when Linux kernel was running under Xen. In that
    scenario, any page that has VM_IO flag to it, means that it MUST be a
    MMIO/VRAM backend memory , _not_ System RAM. That is what the fbmem.c
    does: sets VM_IO, ioremaps the region - everything is peachy.

    Well, not exactly. The vm_page_prot does not get the relevant PTE flags
    set (_PAGE_IOMAP) which under Xen is a death-kneel to pages that are
    referencing real physical devices but don't have that flag set.

    This patch fixes this.

    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Daniel De Graaf
    Tested-by: Eamon Walsh
    Cc: Florian Tobias Schandinat
    Cc: Dave Airlie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel De Graaf
     
  • Add a simple algorithm which calculates the pixel clock based on the video
    mode parameters. This is only done when no pixel clock is supplied
    through the platform data.

    This allows drivers to omit the pixel clock data and thus share the
    algorithm used for calculating it.

    Signed-off-by: Maurus Cuelenaere
    Cc: Pawel Osciak
    Cc: Marek Szyprowski
    Cc: Kyungmin Park
    Cc: InKi Dae
    Cc: Ben Dooks
    Cc: Russell King
    Tested-by: Donghwa Lee
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Maurus Cuelenaere
     
  • S5PV210 SoCs allow enabling/disabling DMA channels per window. For a
    window to display data from framebuffer memory, its channel has to be
    enabled.

    Signed-off-by: Pawel Osciak
    Signed-off-by: Marek Szyprowski
    Signed-off-by: Kyungmin Park
    Cc: InKi Dae
    Cc: Ben Dooks
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pawel Osciak
     
  • This patch fixes the following section mismatch errors:

    WARNING: vmlinux.o(.data+0x20b40): Section mismatch in reference from the variable s3c_fb_driver_ids to the (unknown reference) .devinit.data:(unknown)
    The variable s3c_fb_driver_ids references
    the (unknown reference) __devinitdata (unknown)
    If the reference is valid then annotate the
    variable with __init* or __refdata (see linux/init.h) or name the variable:
    *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,

    WARNING: vmlinux.o(.data+0x20b58): Section mismatch in reference from the variable s3c_fb_driver_ids to the (unknown reference) .devinit.data:(unknown)
    The variable s3c_fb_driver_ids references
    the (unknown reference) __devinitdata (unknown)
    If the reference is valid then annotate the
    variable with __init* or __refdata (see linux/init.h) or name the variable:
    *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,

    WARNING: vmlinux.o(.data+0x20b70): Section mismatch in reference from the variable s3c_fb_driver_ids to the (unknown reference) .devinit.data:(unknown)
    The variable s3c_fb_driver_ids references
    the (unknown reference) __devinitdata (unknown)
    If the reference is valid then annotate the
    variable with __init* or __refdata (see linux/init.h) or name the variable:
    *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,

    Signed-off-by: Marek Szyprowski
    Signed-off-by: Kyungmin Park
    Cc: InKi Dae
    Cc: Ben Dooks
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marek Szyprowski
     
  • Newer hardware (S3C6410, S5P) have the ability to block updates from
    shadow registers during reconfiguration. Add protect calls for set_par
    and clear protection when resetting.

    Signed-off-by: Pawel Osciak
    Signed-off-by: Kyungmin Park
    Cc: InKi Dae
    Cc: Ben Dooks
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pawel Osciak
     
  • S3C64xx and S5P OSD registers for OSD size and alpha are as follows:
    VIDOSDC: win 0 - size, win 1-4: alpha
    VIDOSDD: win 1-2 - size; not present for windows 0, 3 and 4

    Signed-off-by: Pawel Osciak
    Signed-off-by: Kyungmin Park
    Cc: InKi Dae
    Cc: Ben Dooks
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pawel Osciak
     
  • S5PV210 allows per-window locking of register value updates from shadow
    registers.

    Signed-off-by: Pawel Osciak
    Signed-off-by: Kyungmin Park
    Cc: InKi Dae
    Cc: Ben Dooks
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pawel Osciak
     
  • Signed-off-by: Pawel Osciak
    Signed-off-by: Kyungmin Park
    Cc: InKi Dae
    Cc: Ben Dooks
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pawel Osciak
     
  • Add VSYNC interrupt support and an ioctl that allows waiting for it.
    Interrupts are turned on only when needed.

    Signed-off-by: Pawel Osciak
    Signed-off-by: Kyungmin Park
    Cc: InKi Dae
    Cc: Ben Dooks
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pawel Osciak
     
  • Supports all bpp modes.

    The PRTCON register is used to disable in-hardware updates of registers
    that store start and end addresses of framebuffer memory. This prevents
    display corruption in case we do not make it before VSYNC with updating
    them atomically. With this feature there is no need to wait for a VSYNC
    interrupt before each such update.

    Signed-off-by: Pawel Osciak
    Signed-off-by: Kyungmin Park
    Cc: InKi Dae
    Cc: Ben Dooks
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pawel Osciak
     
  • S5PC100 and S5PV210 framebuffer devices differ slightly in terms of
    available registers and their driver data structures have to be separate.
    Those differences include dissimilar ways to control shadow register
    updates.

    Signed-off-by: Pawel Osciak
    Signed-off-by: Kyungmin Park
    Cc: InKi Dae
    Cc: Ben Dooks
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pawel Osciak
     
  • The following problems were found in the above situation:

    sfb->windows[win] was being assigned at the end of s3c_fb_probe_win only.
    This resulted in passing a NULL to s3c_fb_release_win if probe_win
    returned early and a memory leak.

    dma_free_writecombine does not allow its third argument to be NULL.

    fb_dealloc_cmap does not verify whether its argument is not NULL.

    Signed-off-by: Pawel Osciak
    Signed-off-by: Kyungmin Park
    Cc: InKi Dae
    Cc: Ben Dooks
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pawel Osciak
     
  • Remove the palette setup code from the header files and put it into the
    main driver.

    Signed-off-by: Ben Dooks
    Signed-off-by: Pawel Osciak
    Cc: InKi Dae
    Cc: KyungMin Park
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Update the variant and window variant structures with the necessary
    changes to support the older style of hardware where these are not in the
    same place.

    Add the support for the s3c2443/s3c2416 hardware by using the
    platform-device s3c2443 to cover both, and add the initialisation data for
    these.

    Also change to including just the v4 header files for the moment until the
    last of the merging of these is sorted out.

    Signed-off-by: Ben Dooks
    Signed-off-by: Pawel Osciak
    Cc: InKi Dae
    Cc: KyungMin Park
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Remove the various header files that configure this driver and use the
    platform device name to select the correct configuration at probe time.

    Currently this does not remove the header files, only updates the driver
    and the relevant platform files.

    Signed-off-by: Ben Dooks
    Signed-off-by: Pawel Osciak
    Cc: InKi Dae
    Cc: KyungMin Park
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • The driver clears all windows, but also sets the windows' colour key
    controls at the same time. However, the last window does not have these
    registers as it is always blended into the previous window.

    Move the colour key initialisation into the probe, and run it for only
    nr_win-1 windows.

    Signed-off-by: Ben Dooks
    Signed-off-by: Pawel Osciak
    Cc: InKi Dae
    Cc: KyungMin Park
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • It has been working fine at 16bpp but in case of pixel format more then
    24bpp it would occur distortedness situation on that mode. so this patch
    set the word swap control bit of WINCONx to 1 as default value. but it
    should be set to 0 in case that each ENLOCAL bit of WINCON0 ~ 2 registers
    is enabled. this issue would be solved with local path feature soon.

    Signed-off-by: InKi Dae
    Reviewed-by: KyungMin Park
    Signed-off-by: Ben Dooks
    Signed-off-by: Pawel Osciak
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    InKi Dae
     
  • s5pv210 has five window layers (window0 ~ 4), among them, window0 ~ 2
    could be used for local path with fimc(capture device) and fimd writeback
    feature so this patch makes default window layer for UI to be set at
    machine code.

    Signed-off-by: InKi Dae
    Reviewed-by: KyungMin Park
    Signed-off-by: Ben Dooks
    Signed-off-by: Pawel Osciak
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    InKi Dae
     
  • As suggested by Marek Szyprowski, we should make the driver depend on the
    configuration currently being used to build the platform device into the
    kernel.

    Signed-off-by: Ben Dooks
    Signed-off-by: Pawel Osciak
    Cc: InKi Dae
    Cc: KyungMin Park
    Cc: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Replaced !strlen(str) check with !str[0]. Removed the variable which was
    used solely to store strlen result.

    Signed-off-by: Denys Vlasenko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Denys Vlasenko
     
  • This patch uninlines four similar functions, foo_update_attr(), in four
    fbcon-related files.

    These functions contain loops, two of theam have _nested_ loops, and they
    have more than one callsite each. I think they should not be inlined.

    Signed-off-by: Denys Vlasenko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Denys Vlasenko
     
  • This function's body is good two screenfuls and it has six callsites. No
    apparent reason why it is marked inline.

    Signed-off-by: Denys Vlasenko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Denys Vlasenko
     
  • Remove 43 section mismatches by moving the two structures efifb_defined
    and efifb_fix from .init.data to .devinit.data.

    Also the two structure arrays dmi_system_table[] and dmi_list[] have been
    moved from .data to .init.rodata and .init.data, which saves, if built-in,
    some space.

    On x86_64 'size -A' showed that these sections changed size:

    efifb.o:
    section size-old size-new
    .data 1200 688
    .init.data 7840 512
    .init.rodata 0 7568
    .devinit.data 0 256

    Total 11927 11911

    Signed-off-by: Henrik Kretzschmar
    Cc: Peter Jones
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Henrik Kretzschmar
     
  • Since the writing to sysfs can free the old one, we need to block that
    when we access the charp variables.

    Signed-off-by: Rusty Russell
    Reviewed-by: Takashi Iwai
    Tested-by: Phil Carmody
    Cc: Jeff Dike
    Cc: Dan Williams
    Cc: John W. Linville
    Cc: Jing Huang
    Cc: James E.J. Bottomley
    Cc: Greg Kroah-Hartman
    Cc: Johannes Berg
    Cc: David S. Miller
    Cc: user-mode-linux-devel@lists.sourceforge.net
    Cc: libertas-dev@lists.infradead.org
    Cc: linux-wireless@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Cc: linux-scsi@vger.kernel.org
    Cc: linux-usb@vger.kernel.org

    Rusty Russell
     
  • This is more kernel-ish, saves some space, and also allows us to
    expand the ops without breaking all the callers who are happy for the
    new members to be NULL.

    The few places which defined their own param types are changed to the
    new scheme (more which crept in recently fixed in following patches).

    Since we're touching them anyway, we change get() and set() to take a
    const struct kernel_param (which they really are). This causes some
    harmless warnings until we fix them (in following patches).

    To reduce churn, module_param_call creates the ops struct so the callers
    don't have to change (and casts the functions to reduce warnings).
    The modern version which takes an ops struct is called module_param_cb.

    Signed-off-by: Rusty Russell
    Reviewed-by: Takashi Iwai
    Tested-by: Phil Carmody
    Cc: "David S. Miller"
    Cc: Ville Syrjala
    Cc: Dmitry Torokhov
    Cc: Alessandro Rubini
    Cc: Michal Januszewski
    Cc: Trond Myklebust
    Cc: "J. Bruce Fields"
    Cc: Neil Brown
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-input@vger.kernel.org
    Cc: linux-fbdev-devel@lists.sourceforge.net
    Cc: linux-nfs@vger.kernel.org
    Cc: netdev@vger.kernel.org

    Rusty Russell