Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6

* 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6:
staging: iio: max517: Fix iio_info changes
Staging: mei: fix debug code
Staging: cx23885: fix include of altera.h
staging: iio: error case memory leak fix
staging: ath6kl: Fix a kernel panic during suspend/resume
staging: gma500: get control from firmware framebuffer if conflicts
staging: gma500: Skip bogus LVDS VBT mode and check for LVDS before adding backlight
staging: usbip: bugfix prevent driver unbind
staging: iio: industrialio-trigger: set iio_poll_func private_data
staging: rts_pstor: use bitwise operator instead of logical one
staging: fix ath6kl build when CFG80211 is not enabled
staging: brcm80211: fix for 'multiple definition of wl_msg_level' build err
staging: fix olpc_dcon build, needs BACKLIGHT_CLASS_DEVICE
Staging: remove STAGING_EXCLUDE_BUILD option
Staging: altera: move .h file to proper place

+84 -45
+1 -1
drivers/media/video/cx23885/cx23885-cards.c
··· 25 25 #include <linux/delay.h> 26 26 #include <media/cx25840.h> 27 27 #include <linux/firmware.h> 28 - #include <staging/altera.h> 29 28 29 + #include "../../../staging/altera-stapl/altera.h" 30 30 #include "cx23885.h" 31 31 #include "tuner-xc2028.h" 32 32 #include "netup-init.h"
-18
drivers/staging/Kconfig
··· 24 24 25 25 if STAGING 26 26 27 - config STAGING_EXCLUDE_BUILD 28 - bool "Exclude Staging drivers from being built" if STAGING 29 - default y 30 - ---help--- 31 - Are you sure you really want to build the staging drivers? 32 - They taint your kernel, don't live up to the normal Linux 33 - kernel quality standards, are a bit crufty around the edges, 34 - and might go off and kick your dog when you aren't paying 35 - attention. 36 - 37 - Say N here to be able to select and build the Staging drivers. 38 - This option is primarily here to prevent them from being built 39 - when selecting 'make allyesconfg' and 'make allmodconfig' so 40 - don't be all that put off, your dog will be just fine. 41 - 42 - if !STAGING_EXCLUDE_BUILD 43 - 44 27 source "drivers/staging/tty/Kconfig" 45 28 46 29 source "drivers/staging/generic_serial/Kconfig" ··· 160 177 161 178 source "drivers/staging/nvec/Kconfig" 162 179 163 - endif # !STAGING_EXCLUDE_BUILD 164 180 endif # STAGING
+1 -1
drivers/staging/altera-stapl/altera-jtag.c
··· 26 26 #include <linux/delay.h> 27 27 #include <linux/firmware.h> 28 28 #include <linux/slab.h> 29 - #include <staging/altera.h> 29 + #include "altera.h" 30 30 #include "altera-exprt.h" 31 31 #include "altera-jtag.h" 32 32
+1 -1
drivers/staging/altera-stapl/altera.c
··· 28 28 #include <linux/string.h> 29 29 #include <linux/firmware.h> 30 30 #include <linux/slab.h> 31 - #include <staging/altera.h> 31 + #include "altera.h" 32 32 #include "altera-exprt.h" 33 33 #include "altera-jtag.h" 34 34
+1
drivers/staging/ath6kl/Kconfig
··· 1 1 config ATH6K_LEGACY 2 2 tristate "Atheros AR6003 support (non mac80211)" 3 3 depends on MMC && WLAN 4 + depends on CFG80211 4 5 select WIRELESS_EXT 5 6 select WEXT_PRIV 6 7 help
+2 -1
drivers/staging/ath6kl/os/linux/cfg80211.c
··· 870 870 if(ar->scan_request) 871 871 { 872 872 /* Translate data to cfg80211 mgmt format */ 873 - wmi_iterate_nodes(ar->arWmi, ar6k_cfg80211_scan_node, ar->wdev->wiphy); 873 + if (ar->arWmi) 874 + wmi_iterate_nodes(ar->arWmi, ar6k_cfg80211_scan_node, ar->wdev->wiphy); 874 875 875 876 cfg80211_scan_done(ar->scan_request, 876 877 ((status & A_ECANCELED) || (status & A_EBUSY)) ? true : false);
-2
drivers/staging/brcm80211/brcmfmac/wl_iw.c
··· 64 64 extern bool wl_iw_conn_status_str(u32 event_type, u32 status, 65 65 u32 reason, char *stringBuf, uint buflen); 66 66 67 - uint wl_msg_level = WL_ERROR_VAL; 68 - 69 67 #define MAX_WLIW_IOCTL_LEN 1024 70 68 71 69 #ifdef CONFIG_WIRELESS_EXT
+14 -1
drivers/staging/gma500/psb_drv.c
··· 542 542 unsigned long irqflags; 543 543 int ret = -ENOMEM; 544 544 uint32_t tt_pages; 545 + struct drm_connector *connector; 546 + struct psb_intel_output *psb_intel_output; 545 547 546 548 dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL); 547 549 if (dev_priv == NULL) ··· 665 663 drm_kms_helper_poll_init(dev); 666 664 } 667 665 668 - ret = psb_backlight_init(dev); 666 + /* Only add backlight support if we have LVDS output */ 667 + list_for_each_entry(connector, &dev->mode_config.connector_list, 668 + head) { 669 + psb_intel_output = to_psb_intel_output(connector); 670 + 671 + switch (psb_intel_output->type) { 672 + case INTEL_OUTPUT_LVDS: 673 + ret = psb_backlight_init(dev); 674 + break; 675 + } 676 + } 677 + 669 678 if (ret) 670 679 return ret; 671 680 #if 0
+10
drivers/staging/gma500/psb_fb.c
··· 441 441 info->screen_size = size; 442 442 memset(info->screen_base, 0, size); 443 443 444 + if (dev_priv->pg->stolen_size) { 445 + info->apertures = alloc_apertures(1); 446 + if (!info->apertures) { 447 + ret = -ENOMEM; 448 + goto out_err0; 449 + } 450 + info->apertures->ranges[0].base = dev->mode_config.fb_base; 451 + info->apertures->ranges[0].size = dev_priv->pg->stolen_size; 452 + } 453 + 444 454 drm_fb_helper_fill_fix(info, fb->pitch, fb->depth); 445 455 drm_fb_helper_fill_var(info, &fbdev->psb_fb_helper, 446 456 sizes->fb_width, sizes->fb_height);
+9 -4
drivers/staging/gma500/psb_intel_bios.c
··· 154 154 155 155 fill_detail_timing_data(panel_fixed_mode, dvo_timing); 156 156 157 - dev_priv->lfp_lvds_vbt_mode = panel_fixed_mode; 158 - 159 - DRM_DEBUG("Found panel mode in BIOS VBT tables:\n"); 160 - drm_mode_debug_printmodeline(panel_fixed_mode); 157 + if (panel_fixed_mode->htotal > 0 && panel_fixed_mode->vtotal > 0) { 158 + dev_priv->lfp_lvds_vbt_mode = panel_fixed_mode; 159 + DRM_DEBUG("Found panel mode in BIOS VBT tables:\n"); 160 + drm_mode_debug_printmodeline(panel_fixed_mode); 161 + } else { 162 + DRM_DEBUG("Ignoring bogus LVDS VBT mode.\n"); 163 + dev_priv->lvds_vbt = 0; 164 + kfree(panel_fixed_mode); 165 + } 161 166 162 167 return; 163 168 }
+1 -1
drivers/staging/iio/dac/max517.c
··· 195 195 }; 196 196 197 197 static const struct iio_info max518_info = { 198 - .attrs = &max517_attribute_group, 198 + .attrs = &max518_attribute_group, 199 199 .driver_module = THIS_MODULE, 200 200 }; 201 201
+7 -3
drivers/staging/iio/imu/adis16400_ring.c
··· 137 137 if (st->variant->flags & ADIS16400_NO_BURST) { 138 138 ret = adis16350_spi_read_all(&indio_dev->dev, st->rx); 139 139 if (ret < 0) 140 - return ret; 140 + goto err; 141 141 for (; i < ring->scan_count; i++) 142 142 data[i] = *(s16 *)(st->rx + i*2); 143 143 } else { 144 144 ret = adis16400_spi_read_burst(&indio_dev->dev, st->rx); 145 145 if (ret < 0) 146 - return ret; 146 + goto err; 147 147 for (; i < indio_dev->ring->scan_count; i++) { 148 148 j = __ffs(mask); 149 149 mask &= ~(1 << j); ··· 158 158 ring->access->store_to(indio_dev->ring, (u8 *) data, pf->timestamp); 159 159 160 160 iio_trigger_notify_done(indio_dev->trig); 161 - kfree(data); 162 161 162 + kfree(data); 163 163 return IRQ_HANDLED; 164 + 165 + err: 166 + kfree(data); 167 + return ret; 164 168 } 165 169 166 170 void adis16400_unconfigure_ring(struct iio_dev *indio_dev)
+1
drivers/staging/iio/industrialio-trigger.c
··· 294 294 pf->h = h; 295 295 pf->thread = thread; 296 296 pf->type = type; 297 + pf->private_data = private; 297 298 298 299 return pf; 299 300 }
+2 -2
drivers/staging/mei/init.c
··· 205 205 "host_hw_state = 0x%08x, me_hw_state = 0x%08x.\n", 206 206 dev->host_hw_state, dev->me_hw_state); 207 207 208 - if (!(dev->host_hw_state & H_RDY) != H_RDY) 208 + if (!(dev->host_hw_state & H_RDY)) 209 209 dev_dbg(&dev->pdev->dev, "host turn off H_RDY.\n"); 210 210 211 - if (!(dev->me_hw_state & ME_RDY_HRA) != ME_RDY_HRA) 211 + if (!(dev->me_hw_state & ME_RDY_HRA)) 212 212 dev_dbg(&dev->pdev->dev, "ME turn off ME_RDY.\n"); 213 213 214 214 printk(KERN_ERR "mei: link layer initialization failed.\n");
+1
drivers/staging/olpc_dcon/Kconfig
··· 2 2 tristate "One Laptop Per Child Display CONtroller support" 3 3 depends on OLPC && FB 4 4 select I2C 5 + select BACKLIGHT_CLASS_DEVICE 5 6 ---help--- 6 7 Add support for the OLPC XO DCON controller. This controller is 7 8 only available on OLPC platforms. Unless you have one of these
+1 -1
drivers/staging/rts_pstor/sd.c
··· 2328 2328 2329 2329 retval = sd_send_cmd_get_rsp(chip, IO_SEND_OP_COND, 0, SD_RSP_TYPE_R4, rsp, 5); 2330 2330 if (retval == STATUS_SUCCESS) { 2331 - int func_num = (rsp[1] >> 4) && 0x07; 2331 + int func_num = (rsp[1] >> 4) & 0x07; 2332 2332 if (func_num) { 2333 2333 RTSX_DEBUGP("SD_IO card (Function number: %d)!\n", func_num); 2334 2334 chip->sd_io = 1;
+21
drivers/staging/usbip/stub_dev.c
··· 26 26 static int stub_probe(struct usb_interface *interface, 27 27 const struct usb_device_id *id); 28 28 static void stub_disconnect(struct usb_interface *interface); 29 + static int stub_pre_reset(struct usb_interface *interface); 30 + static int stub_post_reset(struct usb_interface *interface); 29 31 30 32 /* 31 33 * Define device IDs here if you want to explicitly limit exportable devices. ··· 61 59 .probe = stub_probe, 62 60 .disconnect = stub_disconnect, 63 61 .id_table = stub_table, 62 + .pre_reset = stub_pre_reset, 63 + .post_reset = stub_post_reset, 64 64 }; 65 65 66 66 /* ··· 544 540 busid_priv->status = STUB_BUSID_OTHER; 545 541 del_match_busid((char *)udev_busid); 546 542 } 543 + } 544 + 545 + /* 546 + * Presence of pre_reset and post_reset prevents the driver from being unbound 547 + * when the device is being reset 548 + */ 549 + 550 + int stub_pre_reset(struct usb_interface *interface) 551 + { 552 + dev_dbg(&interface->dev, "pre_reset\n"); 553 + return 0; 554 + } 555 + 556 + int stub_post_reset(struct usb_interface *interface) 557 + { 558 + dev_dbg(&interface->dev, "post_reset\n"); 559 + return 0; 547 560 }
+11 -9
drivers/staging/usbip/stub_rx.c
··· 175 175 dev_info(&urb->dev->dev, "usb_queue_reset_device\n"); 176 176 177 177 /* 178 - * usb_lock_device_for_reset caused a deadlock: it causes the driver 179 - * to unbind. In the shutdown the rx thread is signalled to shut down 180 - * but this thread is pending in the usb_lock_device_for_reset. 181 - * 182 - * Instead queue the reset. 183 - * 184 - * Unfortunatly an existing usbip connection will be dropped due to 185 - * driver unbinding. 178 + * With the implementation of pre_reset and post_reset the driver no 179 + * longer unbinds. This allows the use of synchronous reset. 186 180 */ 187 - usb_queue_reset_device(sdev->interface); 181 + 182 + if (usb_lock_device_for_reset(sdev->udev, sdev->interface)<0) 183 + { 184 + dev_err(&urb->dev->dev, "could not obtain lock to reset device\n"); 185 + return 0; 186 + } 187 + usb_reset_device(sdev->udev); 188 + usb_unlock_device(sdev->udev); 189 + 188 190 return 0; 189 191 } 190 192
include/staging/altera.h drivers/staging/altera-stapl/altera.h