From: Greg Kroah-Hartman Date: Thu, 5 Aug 2010 21:18:03 +0000 (-0700) Subject: Staging: Merge staging-next into Linus's tree X-Git-Tag: v2.6.36-rc1~520^2~1 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=commitdiff_plain;h=e9563355ac1175dd3440dc2ea5c28b27ed51a283 Staging: Merge staging-next into Linus's tree Conflicts: drivers/staging/Kconfig drivers/staging/batman-adv/bat_sysfs.c drivers/staging/batman-adv/device.c drivers/staging/batman-adv/hard-interface.c drivers/staging/cx25821/cx25821-audups11.c Signed-off-by: Greg Kroah-Hartman --- e9563355ac1175dd3440dc2ea5c28b27ed51a283 diff --cc drivers/staging/Kconfig index 0e4122ed1b36,a5e097461c62..4a7a7a7f11b6 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig @@@ -145,7 -147,13 +145,15 @@@ source "drivers/staging/mrst-touchscree source "drivers/staging/msm/Kconfig" +source "drivers/staging/lirc/Kconfig" + + source "drivers/staging/easycap/Kconfig" + + source "drivers/staging/solo6x10/Kconfig" + + source "drivers/staging/tidspbridge/Kconfig" + + source "drivers/staging/quickstart/Kconfig" + endif # !STAGING_EXCLUDE_BUILD endif # STAGING diff --cc drivers/staging/batman-adv/bat_sysfs.c index 212bc21e6d68,05ca15a6c9f8..b4a8d5eb64fa --- a/drivers/staging/batman-adv/bat_sysfs.c +++ b/drivers/staging/batman-adv/bat_sysfs.c @@@ -241,40 -247,53 +247,49 @@@ static ssize_t store_log_level(struct k { struct device *dev = to_dev(kobj->parent); struct net_device *net_dev = to_net_dev(dev); + struct bat_priv *bat_priv = netdev_priv(net_dev); + unsigned long log_level_tmp; + int ret; - return hna_global_fill_buffer_text(net_dev, buff, count, off); - } - - static ssize_t originators_read(struct file *filp, struct kobject *kobj, - struct bin_attribute *bin_attr, - char *buff, loff_t off, size_t count) - { - struct device *dev = to_dev(kobj->parent); - struct net_device *net_dev = to_net_dev(dev); + ret = strict_strtoul(buff, 10, &log_level_tmp); + if (ret) { + bat_info(net_dev, "Invalid parameter for 'log_level' " + "setting received: %s\n", buff); + return -EINVAL; + } - return orig_fill_buffer_text(net_dev, buff, count, off); - } + if (log_level_tmp > 3) { + bat_info(net_dev, "New log level too big: %li " + "(max: %i)\n", log_level_tmp, 3); + return -EINVAL; + } - static ssize_t vis_data_read(struct file *filp, struct kobject *kobj, - struct bin_attribute *bin_attr, - char *buff, loff_t off, size_t count) - { - struct device *dev = to_dev(kobj->parent); - struct net_device *net_dev = to_net_dev(dev); + if (atomic_read(&bat_priv->log_level) == log_level_tmp) + return count; - return vis_fill_buffer_text(net_dev, buff, count, off); - bat_info(net_dev, "Changing log level from: %i to: %li\n", - atomic_read(&bat_priv->log_level), - log_level_tmp); - + atomic_set(&bat_priv->log_level, (unsigned)log_level_tmp); + return count; } + #endif - static BAT_BIN_ATTR(transtable_local, S_IRUGO, transtable_local_read, NULL); - static BAT_BIN_ATTR(transtable_global, S_IRUGO, transtable_global_read, NULL); - static BAT_BIN_ATTR(originators, S_IRUGO, originators_read, NULL); - static BAT_BIN_ATTR(vis_data, S_IRUGO, vis_data_read, NULL); + static BAT_ATTR(aggregated_ogms, S_IRUGO | S_IWUSR, + show_aggr_ogms, store_aggr_ogms); + static BAT_ATTR(bonding, S_IRUGO | S_IWUSR, show_bond, store_bond); + static BAT_ATTR(vis_mode, S_IRUGO | S_IWUSR, show_vis_mode, store_vis_mode); + static BAT_ATTR(orig_interval, S_IRUGO | S_IWUSR, + show_orig_interval, store_orig_interval); + #ifdef CONFIG_BATMAN_ADV_DEBUG + static BAT_ATTR(log_level, S_IRUGO | S_IWUSR, show_log_level, store_log_level); + #endif - static struct bin_attribute *mesh_bin_attrs[] = { - &bat_attr_transtable_local, - &bat_attr_transtable_global, - &bat_attr_originators, - &bat_attr_vis_data, + static struct bat_attribute *mesh_attrs[] = { + &bat_attr_aggregated_ogms, + &bat_attr_bonding, + &bat_attr_vis_mode, + &bat_attr_orig_interval, + #ifdef CONFIG_BATMAN_ADV_DEBUG + &bat_attr_log_level, + #endif NULL, }; diff --cc drivers/staging/batman-adv/hard-interface.c index 96c86c873011,9bfd0365abbb..92c216a56885 --- a/drivers/staging/batman-adv/hard-interface.c +++ b/drivers/staging/batman-adv/hard-interface.c @@@ -437,10 -438,10 +438,12 @@@ static int batman_skb_recv_finish(struc int batman_skb_recv(struct sk_buff *skb, struct net_device *dev, struct packet_type *ptype, struct net_device *orig_dev) { + /* FIXME: each orig_node->batman_if will be attached to a softif */ + struct bat_priv *bat_priv = netdev_priv(soft_device); struct batman_packet *batman_packet; struct batman_if *batman_if; + struct net_device_stats *stats; + struct rtnl_link_stats64 temp; int ret; skb = skb_share_check(skb, GFP_ATOMIC); diff --cc drivers/staging/hv/channel_mgmt.c index 12db555a3a5d,994abd229737..6ccf505e802d --- a/drivers/staging/hv/channel_mgmt.c +++ b/drivers/staging/hv/channel_mgmt.c @@@ -393,24 -366,24 +386,23 @@@ static void VmbusChannelProcessOffer(vo * can cleanup properly */ newChannel->State = CHANNEL_OPEN_STATE; - cnt = 0; - while (cnt != MAX_MSG_TYPES) { + /* Open IC channels */ + for (cnt = 0; cnt < MAX_MSG_TYPES; cnt++) { if (memcmp(&newChannel->OfferMsg.Offer.InterfaceType, &hv_cb_utils[cnt].data, - sizeof(struct hv_guid)) == 0) { + sizeof(struct hv_guid)) == 0 && + VmbusChannelOpen(newChannel, 2 * PAGE_SIZE, + 2 * PAGE_SIZE, NULL, 0, + hv_cb_utils[cnt].callback, + newChannel) == 0) { + hv_cb_utils[cnt].channel = newChannel; DPRINT_INFO(VMBUS, "%s", - hv_cb_utils[cnt].log_msg); - - if (VmbusChannelOpen(newChannel, 2 * PAGE_SIZE, - 2 * PAGE_SIZE, NULL, 0, - hv_cb_utils[cnt].callback, - newChannel) == 0) - hv_cb_utils[cnt].channel = newChannel; + hv_cb_utils[cnt].log_msg); + count_hv_channel(); } - cnt++; } } - DPRINT_EXIT(VMBUS); } /* diff --cc drivers/staging/hv/hv_utils.c index 2adc9b48ca9c,d8c76b1fc1bd..6eb79febef9b --- a/drivers/staging/hv/hv_utils.c +++ b/drivers/staging/hv/hv_utils.c @@@ -249,33 -237,8 +239,31 @@@ static void heartbeat_onchannelcallback } kfree(buf); - - DPRINT_EXIT(VMBUS); } +static const struct pci_device_id __initconst +hv_utils_pci_table[] __maybe_unused = { + { PCI_DEVICE(0x1414, 0x5353) }, /* Hyper-V emulated VGA controller */ + { 0 } +}; +MODULE_DEVICE_TABLE(pci, hv_utils_pci_table); + + +static const struct dmi_system_id __initconst +hv_utils_dmi_table[] __maybe_unused = { + { + .ident = "Hyper-V", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "Virtual Machine"), + DMI_MATCH(DMI_BOARD_NAME, "Virtual Machine"), + }, + }, + { }, +}; +MODULE_DEVICE_TABLE(dmi, hv_utils_dmi_table); + + static int __init init_hyperv_utils(void) { printk(KERN_INFO "Registering HyperV Utility Driver\n"); diff --cc drivers/staging/hv/vmbus_drv.c index 22c80ece6388,63c9168504ed..092f02ed6be1 --- a/drivers/staging/hv/vmbus_drv.c +++ b/drivers/staging/hv/vmbus_drv.c @@@ -357,11 -354,7 +355,9 @@@ static int vmbus_bus_init(int (*drv_ini vmbus_drv_obj->GetChannelOffers(); + wait_for_completion(&hv_channel_ready); + cleanup: - DPRINT_EXIT(VMBUS_DRV); - return ret; }