+++ /dev/null
-From 19966754328d99ee003ddfc7a8c31ceb115483ac Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter@ffwll.ch>
-Date: Mon, 6 Sep 2010 20:08:44 +0200
-Subject: drm/i915: die, i915_probe_agp, die
-
-From: Daniel Vetter <daniel.vetter@ffwll.ch>
-
-commit 19966754328d99ee003ddfc7a8c31ceb115483ac upstream.
-
-Use the detection from intel-gtt.ko instead. Hooray!
-
-Also move the stolen mem allocator to the other gtt stuff in dev_prv->mem.
-
-v2: Chris Wilson noted that my error handling was crap. Fix it. He also
-said that this fixes a problem on his i845. Indeed, i915_probe_agp
-misses a special case for i830/i845 stolen mem detection.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=25476
-Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
-index 6eb64c1..9cb7c98 100644
---- a/drivers/char/agp/intel-gtt.c
-+++ b/drivers/char/agp/intel-gtt.c
-@@ -1714,6 +1714,12 @@ int intel_gmch_probe(struct pci_dev *pdev,
- }
- EXPORT_SYMBOL(intel_gmch_probe);
-
-+struct intel_gtt *intel_gtt_get(void)
-+{
-+ return &intel_private.base;
-+}
-+EXPORT_SYMBOL(intel_gtt_get);
-+
- void intel_gmch_remove(struct pci_dev *pdev)
- {
- if (intel_private.pcidev)
-diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
-index a693b27..428c75b 100644
---- a/drivers/gpu/drm/i915/i915_dma.c
-+++ b/drivers/gpu/drm/i915/i915_dma.c
-@@ -989,172 +989,6 @@ intel_teardown_mchbar(struct drm_device *dev)
- release_resource(&dev_priv->mch_res);
- }
-
--/**
-- * i915_probe_agp - get AGP bootup configuration
-- * @pdev: PCI device
-- * @aperture_size: returns AGP aperture configured size
-- * @preallocated_size: returns size of BIOS preallocated AGP space
-- *
-- * Since Intel integrated graphics are UMA, the BIOS has to set aside
-- * some RAM for the framebuffer at early boot. This code figures out
-- * how much was set aside so we can use it for our own purposes.
-- */
--static int i915_probe_agp(struct drm_device *dev, uint32_t *aperture_size,
-- uint32_t *preallocated_size)
--{
-- struct drm_i915_private *dev_priv = dev->dev_private;
-- u16 tmp = 0;
-- unsigned long overhead;
-- unsigned long stolen;
--
-- /* Get the fb aperture size and "stolen" memory amount. */
-- pci_read_config_word(dev_priv->bridge_dev, INTEL_GMCH_CTRL, &tmp);
--
-- *aperture_size = 1024 * 1024;
-- *preallocated_size = 1024 * 1024;
--
-- switch (dev->pdev->device) {
-- case PCI_DEVICE_ID_INTEL_82830_CGC:
-- case PCI_DEVICE_ID_INTEL_82845G_IG:
-- case PCI_DEVICE_ID_INTEL_82855GM_IG:
-- case PCI_DEVICE_ID_INTEL_82865_IG:
-- if ((tmp & INTEL_GMCH_MEM_MASK) == INTEL_GMCH_MEM_64M)
-- *aperture_size *= 64;
-- else
-- *aperture_size *= 128;
-- break;
-- default:
-- /* 9xx supports large sizes, just look at the length */
-- *aperture_size = pci_resource_len(dev->pdev, 2);
-- break;
-- }
--
-- /*
-- * Some of the preallocated space is taken by the GTT
-- * and popup. GTT is 1K per MB of aperture size, and popup is 4K.
-- */
-- if (IS_G4X(dev) || IS_PINEVIEW(dev) || IS_IRONLAKE(dev) || IS_GEN6(dev))
-- overhead = 4096;
-- else
-- overhead = (*aperture_size / 1024) + 4096;
--
-- if (IS_GEN6(dev)) {
-- /* SNB has memory control reg at 0x50.w */
-- pci_read_config_word(dev->pdev, SNB_GMCH_CTRL, &tmp);
--
-- switch (tmp & SNB_GMCH_GMS_STOLEN_MASK) {
-- case INTEL_855_GMCH_GMS_DISABLED:
-- DRM_ERROR("video memory is disabled\n");
-- return -1;
-- case SNB_GMCH_GMS_STOLEN_32M:
-- stolen = 32 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_64M:
-- stolen = 64 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_96M:
-- stolen = 96 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_128M:
-- stolen = 128 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_160M:
-- stolen = 160 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_192M:
-- stolen = 192 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_224M:
-- stolen = 224 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_256M:
-- stolen = 256 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_288M:
-- stolen = 288 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_320M:
-- stolen = 320 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_352M:
-- stolen = 352 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_384M:
-- stolen = 384 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_416M:
-- stolen = 416 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_448M:
-- stolen = 448 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_480M:
-- stolen = 480 * 1024 * 1024;
-- break;
-- case SNB_GMCH_GMS_STOLEN_512M:
-- stolen = 512 * 1024 * 1024;
-- break;
-- default:
-- DRM_ERROR("unexpected GMCH_GMS value: 0x%02x\n",
-- tmp & SNB_GMCH_GMS_STOLEN_MASK);
-- return -1;
-- }
-- } else {
-- switch (tmp & INTEL_GMCH_GMS_MASK) {
-- case INTEL_855_GMCH_GMS_DISABLED:
-- DRM_ERROR("video memory is disabled\n");
-- return -1;
-- case INTEL_855_GMCH_GMS_STOLEN_1M:
-- stolen = 1 * 1024 * 1024;
-- break;
-- case INTEL_855_GMCH_GMS_STOLEN_4M:
-- stolen = 4 * 1024 * 1024;
-- break;
-- case INTEL_855_GMCH_GMS_STOLEN_8M:
-- stolen = 8 * 1024 * 1024;
-- break;
-- case INTEL_855_GMCH_GMS_STOLEN_16M:
-- stolen = 16 * 1024 * 1024;
-- break;
-- case INTEL_855_GMCH_GMS_STOLEN_32M:
-- stolen = 32 * 1024 * 1024;
-- break;
-- case INTEL_915G_GMCH_GMS_STOLEN_48M:
-- stolen = 48 * 1024 * 1024;
-- break;
-- case INTEL_915G_GMCH_GMS_STOLEN_64M:
-- stolen = 64 * 1024 * 1024;
-- break;
-- case INTEL_GMCH_GMS_STOLEN_128M:
-- stolen = 128 * 1024 * 1024;
-- break;
-- case INTEL_GMCH_GMS_STOLEN_256M:
-- stolen = 256 * 1024 * 1024;
-- break;
-- case INTEL_GMCH_GMS_STOLEN_96M:
-- stolen = 96 * 1024 * 1024;
-- break;
-- case INTEL_GMCH_GMS_STOLEN_160M:
-- stolen = 160 * 1024 * 1024;
-- break;
-- case INTEL_GMCH_GMS_STOLEN_224M:
-- stolen = 224 * 1024 * 1024;
-- break;
-- case INTEL_GMCH_GMS_STOLEN_352M:
-- stolen = 352 * 1024 * 1024;
-- break;
-- default:
-- DRM_ERROR("unexpected GMCH_GMS value: 0x%02x\n",
-- tmp & INTEL_GMCH_GMS_MASK);
-- return -1;
-- }
-- }
--
-- *preallocated_size = stolen - overhead;
--
-- return 0;
--}
--
- #define PTE_ADDRESS_MASK 0xfffff000
- #define PTE_ADDRESS_MASK_HIGH 0x000000f0 /* i915+ */
- #define PTE_MAPPING_TYPE_UNCACHED (0 << 1)
-@@ -1249,7 +1083,7 @@ static void i915_setup_compression(struct drm_device *dev, int size)
- unsigned long ll_base = 0;
-
- /* Leave 1M for line length buffer & misc. */
-- compressed_fb = drm_mm_search_free(&dev_priv->vram, size, 4096, 0);
-+ compressed_fb = drm_mm_search_free(&dev_priv->mm.vram, size, 4096, 0);
- if (!compressed_fb) {
- dev_priv->no_fbc_reason = FBC_STOLEN_TOO_SMALL;
- i915_warn_stolen(dev);
-@@ -1270,7 +1104,7 @@ static void i915_setup_compression(struct drm_device *dev, int size)
- }
-
- if (!(IS_GM45(dev) || IS_IRONLAKE_M(dev))) {
-- compressed_llb = drm_mm_search_free(&dev_priv->vram, 4096,
-+ compressed_llb = drm_mm_search_free(&dev_priv->mm.vram, 4096,
- 4096, 0);
- if (!compressed_llb) {
- i915_warn_stolen(dev);
-@@ -1366,8 +1200,8 @@ static int i915_load_modeset_init(struct drm_device *dev,
- struct drm_i915_private *dev_priv = dev->dev_private;
- int ret = 0;
-
-- /* Basic memrange allocator for stolen space (aka vram) */
-- drm_mm_init(&dev_priv->vram, 0, prealloc_size);
-+ /* Basic memrange allocator for stolen space (aka mm.vram) */
-+ drm_mm_init(&dev_priv->mm.vram, 0, prealloc_size);
- DRM_INFO("set up %ldM of stolen space\n", prealloc_size / (1024*1024));
-
- /* We're off and running w/KMS */
-@@ -2107,16 +1941,16 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
- "performance may suffer.\n");
- }
-
-- ret = i915_probe_agp(dev, &agp_size, &prealloc_size);
-- if (ret)
-+ dev_priv->mm.gtt = intel_gtt_get();
-+ if (!dev_priv->mm.gtt) {
-+ DRM_ERROR("Failed to initialize GTT\n");
-+ ret = -ENODEV;
- goto out_iomapfree;
--
-- if (prealloc_size > intel_max_stolen) {
-- DRM_INFO("detected %dM stolen memory, trimming to %dM\n",
-- prealloc_size >> 20, intel_max_stolen >> 20);
-- prealloc_size = intel_max_stolen;
- }
-
-+ prealloc_size = dev_priv->mm.gtt->gtt_stolen_entries << PAGE_SHIFT;
-+ agp_size = dev_priv->mm.gtt->gtt_mappable_entries << PAGE_SHIFT;
-+
- dev_priv->wq = create_singlethread_workqueue("i915");
- if (dev_priv->wq == NULL) {
- DRM_ERROR("Failed to create our workqueue.\n");
-@@ -2301,7 +2135,7 @@ int i915_driver_unload(struct drm_device *dev)
- mutex_unlock(&dev->struct_mutex);
- if (I915_HAS_FBC(dev) && i915_powersave)
- i915_cleanup_compression(dev);
-- drm_mm_takedown(&dev_priv->vram);
-+ drm_mm_takedown(&dev_priv->mm.vram);
-
- intel_cleanup_overlay(dev);
- }
-diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
-index d825ef2..c8b2200 100644
---- a/drivers/gpu/drm/i915/i915_drv.h
-+++ b/drivers/gpu/drm/i915/i915_drv.h
-@@ -305,8 +305,6 @@ typedef struct drm_i915_private {
- uint32_t last_instdone;
- uint32_t last_instdone1;
-
-- struct drm_mm vram;
--
- unsigned long cfb_size;
- unsigned long cfb_pitch;
- int cfb_fence;
-@@ -511,6 +509,11 @@ typedef struct drm_i915_private {
- u32 saveMCHBAR_RENDER_STANDBY;
-
- struct {
-+ /** Bridge to intel-gtt-ko */
-+ struct intel_gtt *gtt;
-+ /** Memory allocator for GTT stolen memory */
-+ struct drm_mm vram;
-+ /** Memory allocator for GTT */
- struct drm_mm gtt_space;
-
- struct io_mapping *gtt_mapping;
-diff --git a/include/drm/intel-gtt.h b/include/drm/intel-gtt.h
-index 6769cb7..b3aa7ab 100644
---- a/include/drm/intel-gtt.h
-+++ b/include/drm/intel-gtt.h
-@@ -14,5 +14,7 @@ struct intel_gtt {
- unsigned int gtt_mappable_entries;
- };
-
-+struct intel_gtt *intel_gtt_get(void);
-+
- #endif
-
--- /dev/null
+From 2018845b6a169f75341f8e68ad1089cb6697cf24 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Date: Tue, 16 Nov 2010 11:23:33 -0800
+Subject: Staging: line6: fix up some sysfs attribute permissions
+
+From: Greg Kroah-Hartman <gregkh@suse.de>
+
+commit 2018845b6a169f75341f8e68ad1089cb6697cf24 and
+2018845b6a169f75341f8e68ad1089cb6697cf24 upstream merged together as it
+had to be backported by hand.
+
+They should not be writable by any user
+
+Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Markus Grabner <grabner@icg.tugraz.at>
+Cc: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/staging/line6/control.c | 204 +++++++++++++++++++--------------------
+ drivers/staging/line6/midi.c | 4
+ drivers/staging/line6/pod.c | 32 +++---
+ drivers/staging/line6/toneport.c | 4
+ drivers/staging/line6/variax.c | 12 +-
+ 5 files changed, 128 insertions(+), 128 deletions(-)
+
+--- a/drivers/staging/line6/control.c
++++ b/drivers/staging/line6/control.c
+@@ -268,210 +268,210 @@ VARIAX_PARAM_R(float, mix2);
+ VARIAX_PARAM_R(float, mix1);
+ VARIAX_PARAM_R(int, pickup_wiring);
+
+-static DEVICE_ATTR(tweak, S_IWUGO | S_IRUGO, pod_get_tweak, pod_set_tweak);
+-static DEVICE_ATTR(wah_position, S_IWUGO | S_IRUGO, pod_get_wah_position,
++static DEVICE_ATTR(tweak, S_IWUSR | S_IRUGO, pod_get_tweak, pod_set_tweak);
++static DEVICE_ATTR(wah_position, S_IWUSR | S_IRUGO, pod_get_wah_position,
+ pod_set_wah_position);
+-static DEVICE_ATTR(compression_gain, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(compression_gain, S_IWUSR | S_IRUGO,
+ pod_get_compression_gain, pod_set_compression_gain);
+-static DEVICE_ATTR(vol_pedal_position, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(vol_pedal_position, S_IWUSR | S_IRUGO,
+ pod_get_vol_pedal_position, pod_set_vol_pedal_position);
+-static DEVICE_ATTR(compression_threshold, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(compression_threshold, S_IWUSR | S_IRUGO,
+ pod_get_compression_threshold,
+ pod_set_compression_threshold);
+-static DEVICE_ATTR(pan, S_IWUGO | S_IRUGO, pod_get_pan, pod_set_pan);
+-static DEVICE_ATTR(amp_model_setup, S_IWUGO | S_IRUGO, pod_get_amp_model_setup,
++static DEVICE_ATTR(pan, S_IWUSR | S_IRUGO, pod_get_pan, pod_set_pan);
++static DEVICE_ATTR(amp_model_setup, S_IWUSR | S_IRUGO, pod_get_amp_model_setup,
+ pod_set_amp_model_setup);
+-static DEVICE_ATTR(amp_model, S_IWUGO | S_IRUGO, pod_get_amp_model,
++static DEVICE_ATTR(amp_model, S_IWUSR | S_IRUGO, pod_get_amp_model,
+ pod_set_amp_model);
+-static DEVICE_ATTR(drive, S_IWUGO | S_IRUGO, pod_get_drive, pod_set_drive);
+-static DEVICE_ATTR(bass, S_IWUGO | S_IRUGO, pod_get_bass, pod_set_bass);
+-static DEVICE_ATTR(mid, S_IWUGO | S_IRUGO, pod_get_mid, pod_set_mid);
+-static DEVICE_ATTR(lowmid, S_IWUGO | S_IRUGO, pod_get_lowmid, pod_set_lowmid);
+-static DEVICE_ATTR(treble, S_IWUGO | S_IRUGO, pod_get_treble, pod_set_treble);
+-static DEVICE_ATTR(highmid, S_IWUGO | S_IRUGO, pod_get_highmid,
++static DEVICE_ATTR(drive, S_IWUSR | S_IRUGO, pod_get_drive, pod_set_drive);
++static DEVICE_ATTR(bass, S_IWUSR | S_IRUGO, pod_get_bass, pod_set_bass);
++static DEVICE_ATTR(mid, S_IWUSR | S_IRUGO, pod_get_mid, pod_set_mid);
++static DEVICE_ATTR(lowmid, S_IWUSR | S_IRUGO, pod_get_lowmid, pod_set_lowmid);
++static DEVICE_ATTR(treble, S_IWUSR | S_IRUGO, pod_get_treble, pod_set_treble);
++static DEVICE_ATTR(highmid, S_IWUSR | S_IRUGO, pod_get_highmid,
+ pod_set_highmid);
+-static DEVICE_ATTR(chan_vol, S_IWUGO | S_IRUGO, pod_get_chan_vol,
++static DEVICE_ATTR(chan_vol, S_IWUSR | S_IRUGO, pod_get_chan_vol,
+ pod_set_chan_vol);
+-static DEVICE_ATTR(reverb_mix, S_IWUGO | S_IRUGO, pod_get_reverb_mix,
++static DEVICE_ATTR(reverb_mix, S_IWUSR | S_IRUGO, pod_get_reverb_mix,
+ pod_set_reverb_mix);
+-static DEVICE_ATTR(effect_setup, S_IWUGO | S_IRUGO, pod_get_effect_setup,
++static DEVICE_ATTR(effect_setup, S_IWUSR | S_IRUGO, pod_get_effect_setup,
+ pod_set_effect_setup);
+-static DEVICE_ATTR(band_1_frequency, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(band_1_frequency, S_IWUSR | S_IRUGO,
+ pod_get_band_1_frequency, pod_set_band_1_frequency);
+-static DEVICE_ATTR(presence, S_IWUGO | S_IRUGO, pod_get_presence,
++static DEVICE_ATTR(presence, S_IWUSR | S_IRUGO, pod_get_presence,
+ pod_set_presence);
+-static DEVICE_ATTR2(treble__bass, treble, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR2(treble__bass, treble, S_IWUSR | S_IRUGO,
+ pod_get_treble__bass, pod_set_treble__bass);
+-static DEVICE_ATTR(noise_gate_enable, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(noise_gate_enable, S_IWUSR | S_IRUGO,
+ pod_get_noise_gate_enable, pod_set_noise_gate_enable);
+-static DEVICE_ATTR(gate_threshold, S_IWUGO | S_IRUGO, pod_get_gate_threshold,
++static DEVICE_ATTR(gate_threshold, S_IWUSR | S_IRUGO, pod_get_gate_threshold,
+ pod_set_gate_threshold);
+-static DEVICE_ATTR(gate_decay_time, S_IWUGO | S_IRUGO, pod_get_gate_decay_time,
++static DEVICE_ATTR(gate_decay_time, S_IWUSR | S_IRUGO, pod_get_gate_decay_time,
+ pod_set_gate_decay_time);
+-static DEVICE_ATTR(stomp_enable, S_IWUGO | S_IRUGO, pod_get_stomp_enable,
++static DEVICE_ATTR(stomp_enable, S_IWUSR | S_IRUGO, pod_get_stomp_enable,
+ pod_set_stomp_enable);
+-static DEVICE_ATTR(comp_enable, S_IWUGO | S_IRUGO, pod_get_comp_enable,
++static DEVICE_ATTR(comp_enable, S_IWUSR | S_IRUGO, pod_get_comp_enable,
+ pod_set_comp_enable);
+-static DEVICE_ATTR(stomp_time, S_IWUGO | S_IRUGO, pod_get_stomp_time,
++static DEVICE_ATTR(stomp_time, S_IWUSR | S_IRUGO, pod_get_stomp_time,
+ pod_set_stomp_time);
+-static DEVICE_ATTR(delay_enable, S_IWUGO | S_IRUGO, pod_get_delay_enable,
++static DEVICE_ATTR(delay_enable, S_IWUSR | S_IRUGO, pod_get_delay_enable,
+ pod_set_delay_enable);
+-static DEVICE_ATTR(mod_param_1, S_IWUGO | S_IRUGO, pod_get_mod_param_1,
++static DEVICE_ATTR(mod_param_1, S_IWUSR | S_IRUGO, pod_get_mod_param_1,
+ pod_set_mod_param_1);
+-static DEVICE_ATTR(delay_param_1, S_IWUGO | S_IRUGO, pod_get_delay_param_1,
++static DEVICE_ATTR(delay_param_1, S_IWUSR | S_IRUGO, pod_get_delay_param_1,
+ pod_set_delay_param_1);
+-static DEVICE_ATTR(delay_param_1_note_value, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(delay_param_1_note_value, S_IWUSR | S_IRUGO,
+ pod_get_delay_param_1_note_value,
+ pod_set_delay_param_1_note_value);
+-static DEVICE_ATTR2(band_2_frequency__bass, band_2_frequency, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR2(band_2_frequency__bass, band_2_frequency, S_IWUSR | S_IRUGO,
+ pod_get_band_2_frequency__bass,
+ pod_set_band_2_frequency__bass);
+-static DEVICE_ATTR(delay_param_2, S_IWUGO | S_IRUGO, pod_get_delay_param_2,
++static DEVICE_ATTR(delay_param_2, S_IWUSR | S_IRUGO, pod_get_delay_param_2,
+ pod_set_delay_param_2);
+-static DEVICE_ATTR(delay_volume_mix, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(delay_volume_mix, S_IWUSR | S_IRUGO,
+ pod_get_delay_volume_mix, pod_set_delay_volume_mix);
+-static DEVICE_ATTR(delay_param_3, S_IWUGO | S_IRUGO, pod_get_delay_param_3,
++static DEVICE_ATTR(delay_param_3, S_IWUSR | S_IRUGO, pod_get_delay_param_3,
+ pod_set_delay_param_3);
+-static DEVICE_ATTR(reverb_enable, S_IWUGO | S_IRUGO, pod_get_reverb_enable,
++static DEVICE_ATTR(reverb_enable, S_IWUSR | S_IRUGO, pod_get_reverb_enable,
+ pod_set_reverb_enable);
+-static DEVICE_ATTR(reverb_type, S_IWUGO | S_IRUGO, pod_get_reverb_type,
++static DEVICE_ATTR(reverb_type, S_IWUSR | S_IRUGO, pod_get_reverb_type,
+ pod_set_reverb_type);
+-static DEVICE_ATTR(reverb_decay, S_IWUGO | S_IRUGO, pod_get_reverb_decay,
++static DEVICE_ATTR(reverb_decay, S_IWUSR | S_IRUGO, pod_get_reverb_decay,
+ pod_set_reverb_decay);
+-static DEVICE_ATTR(reverb_tone, S_IWUGO | S_IRUGO, pod_get_reverb_tone,
++static DEVICE_ATTR(reverb_tone, S_IWUSR | S_IRUGO, pod_get_reverb_tone,
+ pod_set_reverb_tone);
+-static DEVICE_ATTR(reverb_pre_delay, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(reverb_pre_delay, S_IWUSR | S_IRUGO,
+ pod_get_reverb_pre_delay, pod_set_reverb_pre_delay);
+-static DEVICE_ATTR(reverb_pre_post, S_IWUGO | S_IRUGO, pod_get_reverb_pre_post,
++static DEVICE_ATTR(reverb_pre_post, S_IWUSR | S_IRUGO, pod_get_reverb_pre_post,
+ pod_set_reverb_pre_post);
+-static DEVICE_ATTR(band_2_frequency, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(band_2_frequency, S_IWUSR | S_IRUGO,
+ pod_get_band_2_frequency, pod_set_band_2_frequency);
+-static DEVICE_ATTR2(band_3_frequency__bass, band_3_frequency, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR2(band_3_frequency__bass, band_3_frequency, S_IWUSR | S_IRUGO,
+ pod_get_band_3_frequency__bass,
+ pod_set_band_3_frequency__bass);
+-static DEVICE_ATTR(wah_enable, S_IWUGO | S_IRUGO, pod_get_wah_enable,
++static DEVICE_ATTR(wah_enable, S_IWUSR | S_IRUGO, pod_get_wah_enable,
+ pod_set_wah_enable);
+-static DEVICE_ATTR(modulation_lo_cut, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(modulation_lo_cut, S_IWUSR | S_IRUGO,
+ pod_get_modulation_lo_cut, pod_set_modulation_lo_cut);
+-static DEVICE_ATTR(delay_reverb_lo_cut, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(delay_reverb_lo_cut, S_IWUSR | S_IRUGO,
+ pod_get_delay_reverb_lo_cut, pod_set_delay_reverb_lo_cut);
+-static DEVICE_ATTR(volume_pedal_minimum, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(volume_pedal_minimum, S_IWUSR | S_IRUGO,
+ pod_get_volume_pedal_minimum, pod_set_volume_pedal_minimum);
+-static DEVICE_ATTR(eq_pre_post, S_IWUGO | S_IRUGO, pod_get_eq_pre_post,
++static DEVICE_ATTR(eq_pre_post, S_IWUSR | S_IRUGO, pod_get_eq_pre_post,
+ pod_set_eq_pre_post);
+-static DEVICE_ATTR(volume_pre_post, S_IWUGO | S_IRUGO, pod_get_volume_pre_post,
++static DEVICE_ATTR(volume_pre_post, S_IWUSR | S_IRUGO, pod_get_volume_pre_post,
+ pod_set_volume_pre_post);
+-static DEVICE_ATTR(di_model, S_IWUGO | S_IRUGO, pod_get_di_model,
++static DEVICE_ATTR(di_model, S_IWUSR | S_IRUGO, pod_get_di_model,
+ pod_set_di_model);
+-static DEVICE_ATTR(di_delay, S_IWUGO | S_IRUGO, pod_get_di_delay,
++static DEVICE_ATTR(di_delay, S_IWUSR | S_IRUGO, pod_get_di_delay,
+ pod_set_di_delay);
+-static DEVICE_ATTR(mod_enable, S_IWUGO | S_IRUGO, pod_get_mod_enable,
++static DEVICE_ATTR(mod_enable, S_IWUSR | S_IRUGO, pod_get_mod_enable,
+ pod_set_mod_enable);
+-static DEVICE_ATTR(mod_param_1_note_value, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(mod_param_1_note_value, S_IWUSR | S_IRUGO,
+ pod_get_mod_param_1_note_value,
+ pod_set_mod_param_1_note_value);
+-static DEVICE_ATTR(mod_param_2, S_IWUGO | S_IRUGO, pod_get_mod_param_2,
++static DEVICE_ATTR(mod_param_2, S_IWUSR | S_IRUGO, pod_get_mod_param_2,
+ pod_set_mod_param_2);
+-static DEVICE_ATTR(mod_param_3, S_IWUGO | S_IRUGO, pod_get_mod_param_3,
++static DEVICE_ATTR(mod_param_3, S_IWUSR | S_IRUGO, pod_get_mod_param_3,
+ pod_set_mod_param_3);
+-static DEVICE_ATTR(mod_param_4, S_IWUGO | S_IRUGO, pod_get_mod_param_4,
++static DEVICE_ATTR(mod_param_4, S_IWUSR | S_IRUGO, pod_get_mod_param_4,
+ pod_set_mod_param_4);
+-static DEVICE_ATTR(mod_param_5, S_IWUGO | S_IRUGO, pod_get_mod_param_5,
++static DEVICE_ATTR(mod_param_5, S_IWUSR | S_IRUGO, pod_get_mod_param_5,
+ pod_set_mod_param_5);
+-static DEVICE_ATTR(mod_volume_mix, S_IWUGO | S_IRUGO, pod_get_mod_volume_mix,
++static DEVICE_ATTR(mod_volume_mix, S_IWUSR | S_IRUGO, pod_get_mod_volume_mix,
+ pod_set_mod_volume_mix);
+-static DEVICE_ATTR(mod_pre_post, S_IWUGO | S_IRUGO, pod_get_mod_pre_post,
++static DEVICE_ATTR(mod_pre_post, S_IWUSR | S_IRUGO, pod_get_mod_pre_post,
+ pod_set_mod_pre_post);
+-static DEVICE_ATTR(modulation_model, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(modulation_model, S_IWUSR | S_IRUGO,
+ pod_get_modulation_model, pod_set_modulation_model);
+-static DEVICE_ATTR(band_3_frequency, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(band_3_frequency, S_IWUSR | S_IRUGO,
+ pod_get_band_3_frequency, pod_set_band_3_frequency);
+-static DEVICE_ATTR2(band_4_frequency__bass, band_4_frequency, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR2(band_4_frequency__bass, band_4_frequency, S_IWUSR | S_IRUGO,
+ pod_get_band_4_frequency__bass,
+ pod_set_band_4_frequency__bass);
+-static DEVICE_ATTR(mod_param_1_double_precision, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(mod_param_1_double_precision, S_IWUSR | S_IRUGO,
+ pod_get_mod_param_1_double_precision,
+ pod_set_mod_param_1_double_precision);
+-static DEVICE_ATTR(delay_param_1_double_precision, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(delay_param_1_double_precision, S_IWUSR | S_IRUGO,
+ pod_get_delay_param_1_double_precision,
+ pod_set_delay_param_1_double_precision);
+-static DEVICE_ATTR(eq_enable, S_IWUGO | S_IRUGO, pod_get_eq_enable,
++static DEVICE_ATTR(eq_enable, S_IWUSR | S_IRUGO, pod_get_eq_enable,
+ pod_set_eq_enable);
+-static DEVICE_ATTR(tap, S_IWUGO | S_IRUGO, pod_get_tap, pod_set_tap);
+-static DEVICE_ATTR(volume_tweak_pedal_assign, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(tap, S_IWUSR | S_IRUGO, pod_get_tap, pod_set_tap);
++static DEVICE_ATTR(volume_tweak_pedal_assign, S_IWUSR | S_IRUGO,
+ pod_get_volume_tweak_pedal_assign,
+ pod_set_volume_tweak_pedal_assign);
+-static DEVICE_ATTR(band_5_frequency, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(band_5_frequency, S_IWUSR | S_IRUGO,
+ pod_get_band_5_frequency, pod_set_band_5_frequency);
+-static DEVICE_ATTR(tuner, S_IWUGO | S_IRUGO, pod_get_tuner, pod_set_tuner);
+-static DEVICE_ATTR(mic_selection, S_IWUGO | S_IRUGO, pod_get_mic_selection,
++static DEVICE_ATTR(tuner, S_IWUSR | S_IRUGO, pod_get_tuner, pod_set_tuner);
++static DEVICE_ATTR(mic_selection, S_IWUSR | S_IRUGO, pod_get_mic_selection,
+ pod_set_mic_selection);
+-static DEVICE_ATTR(cabinet_model, S_IWUGO | S_IRUGO, pod_get_cabinet_model,
++static DEVICE_ATTR(cabinet_model, S_IWUSR | S_IRUGO, pod_get_cabinet_model,
+ pod_set_cabinet_model);
+-static DEVICE_ATTR(stomp_model, S_IWUGO | S_IRUGO, pod_get_stomp_model,
++static DEVICE_ATTR(stomp_model, S_IWUSR | S_IRUGO, pod_get_stomp_model,
+ pod_set_stomp_model);
+-static DEVICE_ATTR(roomlevel, S_IWUGO | S_IRUGO, pod_get_roomlevel,
++static DEVICE_ATTR(roomlevel, S_IWUSR | S_IRUGO, pod_get_roomlevel,
+ pod_set_roomlevel);
+-static DEVICE_ATTR(band_4_frequency, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(band_4_frequency, S_IWUSR | S_IRUGO,
+ pod_get_band_4_frequency, pod_set_band_4_frequency);
+-static DEVICE_ATTR(band_6_frequency, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(band_6_frequency, S_IWUSR | S_IRUGO,
+ pod_get_band_6_frequency, pod_set_band_6_frequency);
+-static DEVICE_ATTR(stomp_param_1_note_value, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(stomp_param_1_note_value, S_IWUSR | S_IRUGO,
+ pod_get_stomp_param_1_note_value,
+ pod_set_stomp_param_1_note_value);
+-static DEVICE_ATTR(stomp_param_2, S_IWUGO | S_IRUGO, pod_get_stomp_param_2,
++static DEVICE_ATTR(stomp_param_2, S_IWUSR | S_IRUGO, pod_get_stomp_param_2,
+ pod_set_stomp_param_2);
+-static DEVICE_ATTR(stomp_param_3, S_IWUGO | S_IRUGO, pod_get_stomp_param_3,
++static DEVICE_ATTR(stomp_param_3, S_IWUSR | S_IRUGO, pod_get_stomp_param_3,
+ pod_set_stomp_param_3);
+-static DEVICE_ATTR(stomp_param_4, S_IWUGO | S_IRUGO, pod_get_stomp_param_4,
++static DEVICE_ATTR(stomp_param_4, S_IWUSR | S_IRUGO, pod_get_stomp_param_4,
+ pod_set_stomp_param_4);
+-static DEVICE_ATTR(stomp_param_5, S_IWUGO | S_IRUGO, pod_get_stomp_param_5,
++static DEVICE_ATTR(stomp_param_5, S_IWUSR | S_IRUGO, pod_get_stomp_param_5,
+ pod_set_stomp_param_5);
+-static DEVICE_ATTR(stomp_param_6, S_IWUGO | S_IRUGO, pod_get_stomp_param_6,
++static DEVICE_ATTR(stomp_param_6, S_IWUSR | S_IRUGO, pod_get_stomp_param_6,
+ pod_set_stomp_param_6);
+-static DEVICE_ATTR(amp_switch_select, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(amp_switch_select, S_IWUSR | S_IRUGO,
+ pod_get_amp_switch_select, pod_set_amp_switch_select);
+-static DEVICE_ATTR(delay_param_4, S_IWUGO | S_IRUGO, pod_get_delay_param_4,
++static DEVICE_ATTR(delay_param_4, S_IWUSR | S_IRUGO, pod_get_delay_param_4,
+ pod_set_delay_param_4);
+-static DEVICE_ATTR(delay_param_5, S_IWUGO | S_IRUGO, pod_get_delay_param_5,
++static DEVICE_ATTR(delay_param_5, S_IWUSR | S_IRUGO, pod_get_delay_param_5,
+ pod_set_delay_param_5);
+-static DEVICE_ATTR(delay_pre_post, S_IWUGO | S_IRUGO, pod_get_delay_pre_post,
++static DEVICE_ATTR(delay_pre_post, S_IWUSR | S_IRUGO, pod_get_delay_pre_post,
+ pod_set_delay_pre_post);
+-static DEVICE_ATTR(delay_model, S_IWUGO | S_IRUGO, pod_get_delay_model,
++static DEVICE_ATTR(delay_model, S_IWUSR | S_IRUGO, pod_get_delay_model,
+ pod_set_delay_model);
+-static DEVICE_ATTR(delay_verb_model, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(delay_verb_model, S_IWUSR | S_IRUGO,
+ pod_get_delay_verb_model, pod_set_delay_verb_model);
+-static DEVICE_ATTR(tempo_msb, S_IWUGO | S_IRUGO, pod_get_tempo_msb,
++static DEVICE_ATTR(tempo_msb, S_IWUSR | S_IRUGO, pod_get_tempo_msb,
+ pod_set_tempo_msb);
+-static DEVICE_ATTR(tempo_lsb, S_IWUGO | S_IRUGO, pod_get_tempo_lsb,
++static DEVICE_ATTR(tempo_lsb, S_IWUSR | S_IRUGO, pod_get_tempo_lsb,
+ pod_set_tempo_lsb);
+-static DEVICE_ATTR(wah_model, S_IWUGO | S_IRUGO, pod_get_wah_model,
++static DEVICE_ATTR(wah_model, S_IWUSR | S_IRUGO, pod_get_wah_model,
+ pod_set_wah_model);
+-static DEVICE_ATTR(bypass_volume, S_IWUGO | S_IRUGO, pod_get_bypass_volume,
++static DEVICE_ATTR(bypass_volume, S_IWUSR | S_IRUGO, pod_get_bypass_volume,
+ pod_set_bypass_volume);
+-static DEVICE_ATTR(fx_loop_on_off, S_IWUGO | S_IRUGO, pod_get_fx_loop_on_off,
++static DEVICE_ATTR(fx_loop_on_off, S_IWUSR | S_IRUGO, pod_get_fx_loop_on_off,
+ pod_set_fx_loop_on_off);
+-static DEVICE_ATTR(tweak_param_select, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR(tweak_param_select, S_IWUSR | S_IRUGO,
+ pod_get_tweak_param_select, pod_set_tweak_param_select);
+-static DEVICE_ATTR(amp1_engage, S_IWUGO | S_IRUGO, pod_get_amp1_engage,
++static DEVICE_ATTR(amp1_engage, S_IWUSR | S_IRUGO, pod_get_amp1_engage,
+ pod_set_amp1_engage);
+-static DEVICE_ATTR(band_1_gain, S_IWUGO | S_IRUGO, pod_get_band_1_gain,
++static DEVICE_ATTR(band_1_gain, S_IWUSR | S_IRUGO, pod_get_band_1_gain,
+ pod_set_band_1_gain);
+-static DEVICE_ATTR2(band_2_gain__bass, band_2_gain, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR2(band_2_gain__bass, band_2_gain, S_IWUSR | S_IRUGO,
+ pod_get_band_2_gain__bass, pod_set_band_2_gain__bass);
+-static DEVICE_ATTR(band_2_gain, S_IWUGO | S_IRUGO, pod_get_band_2_gain,
++static DEVICE_ATTR(band_2_gain, S_IWUSR | S_IRUGO, pod_get_band_2_gain,
+ pod_set_band_2_gain);
+-static DEVICE_ATTR2(band_3_gain__bass, band_3_gain, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR2(band_3_gain__bass, band_3_gain, S_IWUSR | S_IRUGO,
+ pod_get_band_3_gain__bass, pod_set_band_3_gain__bass);
+-static DEVICE_ATTR(band_3_gain, S_IWUGO | S_IRUGO, pod_get_band_3_gain,
++static DEVICE_ATTR(band_3_gain, S_IWUSR | S_IRUGO, pod_get_band_3_gain,
+ pod_set_band_3_gain);
+-static DEVICE_ATTR2(band_4_gain__bass, band_4_gain, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR2(band_4_gain__bass, band_4_gain, S_IWUSR | S_IRUGO,
+ pod_get_band_4_gain__bass, pod_set_band_4_gain__bass);
+-static DEVICE_ATTR2(band_5_gain__bass, band_5_gain, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR2(band_5_gain__bass, band_5_gain, S_IWUSR | S_IRUGO,
+ pod_get_band_5_gain__bass, pod_set_band_5_gain__bass);
+-static DEVICE_ATTR(band_4_gain, S_IWUGO | S_IRUGO, pod_get_band_4_gain,
++static DEVICE_ATTR(band_4_gain, S_IWUSR | S_IRUGO, pod_get_band_4_gain,
+ pod_set_band_4_gain);
+-static DEVICE_ATTR2(band_6_gain__bass, band_6_gain, S_IWUGO | S_IRUGO,
++static DEVICE_ATTR2(band_6_gain__bass, band_6_gain, S_IWUSR | S_IRUGO,
+ pod_get_band_6_gain__bass, pod_set_band_6_gain__bass);
+ static DEVICE_ATTR(body, S_IRUGO, variax_get_body, line6_nop_write);
+ static DEVICE_ATTR(pickup1_enable, S_IRUGO, variax_get_pickup1_enable,
+--- a/drivers/staging/line6/midi.c
++++ b/drivers/staging/line6/midi.c
+@@ -362,8 +362,8 @@ static ssize_t midi_set_midi_mask_receiv
+ return count;
+ }
+
+-static DEVICE_ATTR(midi_mask_transmit, S_IWUGO | S_IRUGO, midi_get_midi_mask_transmit, midi_set_midi_mask_transmit);
+-static DEVICE_ATTR(midi_mask_receive, S_IWUGO | S_IRUGO, midi_get_midi_mask_receive, midi_set_midi_mask_receive);
++static DEVICE_ATTR(midi_mask_transmit, S_IWUSR | S_IRUGO, midi_get_midi_mask_transmit, midi_set_midi_mask_transmit);
++static DEVICE_ATTR(midi_mask_receive, S_IWUSR | S_IRUGO, midi_get_midi_mask_receive, midi_set_midi_mask_receive);
+
+ /* MIDI device destructor */
+ static int snd_line6_midi_free(struct snd_device *device)
+--- a/drivers/staging/line6/pod.c
++++ b/drivers/staging/line6/pod.c
+@@ -952,33 +952,33 @@ POD_GET_SYSTEM_PARAM(tuner_pitch, 1, 1);
+ #undef GET_SYSTEM_PARAM
+
+ /* POD special files: */
+-static DEVICE_ATTR(channel, S_IWUGO | S_IRUGO, pod_get_channel, pod_set_channel);
++static DEVICE_ATTR(channel, S_IWUSR | S_IRUGO, pod_get_channel, pod_set_channel);
+ static DEVICE_ATTR(clip, S_IRUGO, pod_wait_for_clip, line6_nop_write);
+ static DEVICE_ATTR(device_id, S_IRUGO, pod_get_device_id, line6_nop_write);
+ static DEVICE_ATTR(dirty, S_IRUGO, pod_get_dirty, line6_nop_write);
+-static DEVICE_ATTR(dump, S_IWUGO | S_IRUGO, pod_get_dump, pod_set_dump);
+-static DEVICE_ATTR(dump_buf, S_IWUGO | S_IRUGO, pod_get_dump_buf, pod_set_dump_buf);
+-static DEVICE_ATTR(finish, S_IWUGO, line6_nop_read, pod_set_finish);
++static DEVICE_ATTR(dump, S_IWUSR | S_IRUGO, pod_get_dump, pod_set_dump);
++static DEVICE_ATTR(dump_buf, S_IWUSR | S_IRUGO, pod_get_dump_buf, pod_set_dump_buf);
++static DEVICE_ATTR(finish, S_IWUSR, line6_nop_read, pod_set_finish);
+ static DEVICE_ATTR(firmware_version, S_IRUGO, pod_get_firmware_version, line6_nop_write);
+-static DEVICE_ATTR(midi_postprocess, S_IWUGO | S_IRUGO, pod_get_midi_postprocess, pod_set_midi_postprocess);
+-static DEVICE_ATTR(monitor_level, S_IWUGO | S_IRUGO, pod_get_monitor_level, pod_set_monitor_level);
++static DEVICE_ATTR(midi_postprocess, S_IWUSR | S_IRUGO, pod_get_midi_postprocess, pod_set_midi_postprocess);
++static DEVICE_ATTR(monitor_level, S_IWUSR | S_IRUGO, pod_get_monitor_level, pod_set_monitor_level);
+ static DEVICE_ATTR(name, S_IRUGO, pod_get_name, line6_nop_write);
+ static DEVICE_ATTR(name_buf, S_IRUGO, pod_get_name_buf, line6_nop_write);
+-static DEVICE_ATTR(retrieve_amp_setup, S_IWUGO, line6_nop_read, pod_set_retrieve_amp_setup);
+-static DEVICE_ATTR(retrieve_channel, S_IWUGO, line6_nop_read, pod_set_retrieve_channel);
+-static DEVICE_ATTR(retrieve_effects_setup, S_IWUGO, line6_nop_read, pod_set_retrieve_effects_setup);
+-static DEVICE_ATTR(routing, S_IWUGO | S_IRUGO, pod_get_routing, pod_set_routing);
++static DEVICE_ATTR(retrieve_amp_setup, S_IWUSR, line6_nop_read, pod_set_retrieve_amp_setup);
++static DEVICE_ATTR(retrieve_channel, S_IWUSR, line6_nop_read, pod_set_retrieve_channel);
++static DEVICE_ATTR(retrieve_effects_setup, S_IWUSR, line6_nop_read, pod_set_retrieve_effects_setup);
++static DEVICE_ATTR(routing, S_IWUSR | S_IRUGO, pod_get_routing, pod_set_routing);
+ static DEVICE_ATTR(serial_number, S_IRUGO, pod_get_serial_number, line6_nop_write);
+-static DEVICE_ATTR(store_amp_setup, S_IWUGO, line6_nop_read, pod_set_store_amp_setup);
+-static DEVICE_ATTR(store_channel, S_IWUGO, line6_nop_read, pod_set_store_channel);
+-static DEVICE_ATTR(store_effects_setup, S_IWUGO, line6_nop_read, pod_set_store_effects_setup);
+-static DEVICE_ATTR(tuner_freq, S_IWUGO | S_IRUGO, pod_get_tuner_freq, pod_set_tuner_freq);
+-static DEVICE_ATTR(tuner_mute, S_IWUGO | S_IRUGO, pod_get_tuner_mute, pod_set_tuner_mute);
++static DEVICE_ATTR(store_amp_setup, S_IWUSR, line6_nop_read, pod_set_store_amp_setup);
++static DEVICE_ATTR(store_channel, S_IWUSR, line6_nop_read, pod_set_store_channel);
++static DEVICE_ATTR(store_effects_setup, S_IWUSR, line6_nop_read, pod_set_store_effects_setup);
++static DEVICE_ATTR(tuner_freq, S_IWUSR | S_IRUGO, pod_get_tuner_freq, pod_set_tuner_freq);
++static DEVICE_ATTR(tuner_mute, S_IWUSR | S_IRUGO, pod_get_tuner_mute, pod_set_tuner_mute);
+ static DEVICE_ATTR(tuner_note, S_IRUGO, pod_get_tuner_note, line6_nop_write);
+ static DEVICE_ATTR(tuner_pitch, S_IRUGO, pod_get_tuner_pitch, line6_nop_write);
+
+ #if CREATE_RAW_FILE
+-static DEVICE_ATTR(raw, S_IWUGO, line6_nop_read, line6_set_raw);
++static DEVICE_ATTR(raw, S_IWUSR, line6_nop_read, line6_set_raw);
+ #endif
+
+ /*
+--- a/drivers/staging/line6/toneport.c
++++ b/drivers/staging/line6/toneport.c
+@@ -124,9 +124,9 @@ static ssize_t toneport_set_led_green(st
+ return count;
+ }
+
+-static DEVICE_ATTR(led_red, S_IWUGO | S_IRUGO, line6_nop_read,
++static DEVICE_ATTR(led_red, S_IWUSR | S_IRUGO, line6_nop_read,
+ toneport_set_led_red);
+-static DEVICE_ATTR(led_green, S_IWUGO | S_IRUGO, line6_nop_read,
++static DEVICE_ATTR(led_green, S_IWUSR | S_IRUGO, line6_nop_read,
+ toneport_set_led_green);
+
+ static int toneport_send_cmd(struct usb_device *usbdev, int cmd1, int cmd2)
+--- a/drivers/staging/line6/variax.c
++++ b/drivers/staging/line6/variax.c
+@@ -389,17 +389,17 @@ static ssize_t variax_set_raw2(struct de
+ #endif
+
+ /* Variax workbench special files: */
+-static DEVICE_ATTR(model, S_IWUGO | S_IRUGO, variax_get_model, variax_set_model);
+-static DEVICE_ATTR(volume, S_IWUGO | S_IRUGO, variax_get_volume, variax_set_volume);
+-static DEVICE_ATTR(tone, S_IWUGO | S_IRUGO, variax_get_tone, variax_set_tone);
++static DEVICE_ATTR(model, S_IWUSR | S_IRUGO, variax_get_model, variax_set_model);
++static DEVICE_ATTR(volume, S_IWUSR | S_IRUGO, variax_get_volume, variax_set_volume);
++static DEVICE_ATTR(tone, S_IWUSR | S_IRUGO, variax_get_tone, variax_set_tone);
+ static DEVICE_ATTR(name, S_IRUGO, variax_get_name, line6_nop_write);
+ static DEVICE_ATTR(bank, S_IRUGO, variax_get_bank, line6_nop_write);
+ static DEVICE_ATTR(dump, S_IRUGO, variax_get_dump, line6_nop_write);
+-static DEVICE_ATTR(active, S_IWUGO | S_IRUGO, variax_get_active, variax_set_active);
++static DEVICE_ATTR(active, S_IWUSR | S_IRUGO, variax_get_active, variax_set_active);
+
+ #if CREATE_RAW_FILE
+-static DEVICE_ATTR(raw, S_IWUGO, line6_nop_read, line6_set_raw);
+-static DEVICE_ATTR(raw2, S_IWUGO, line6_nop_read, variax_set_raw2);
++static DEVICE_ATTR(raw, S_IWUSR, line6_nop_read, line6_set_raw);
++static DEVICE_ATTR(raw2, S_IWUSR, line6_nop_read, variax_set_raw2);
+ #endif
+
+