diff options
| author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-04-19 08:23:28 -0400 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-04-19 08:23:28 -0400 |
| commit | d5aeee8cb28317ef608ecac421abc4d986d585d2 (patch) | |
| tree | 70ec8ed8891f26e5c58152ffca9924ea1c58fe3a /drivers/staging | |
| parent | 32898a145404acbebe3256709e012c2830a2043b (diff) | |
| parent | e816b57a337ea3b755de72bec38c10c864f23015 (diff) | |
Merge tag 'v3.4-rc3' into staging/for_v3.5
* tag 'v3.4-rc3': (3755 commits)
Linux 3.4-rc3
x86-32: fix up strncpy_from_user() sign error
ARM: 7386/1: jump_label: fixup for rename to static_key
ARM: 7384/1: ThumbEE: Disable userspace TEEHBR access for !CONFIG_ARM_THUMBEE
ARM: 7382/1: mm: truncate memory banks to fit in 4GB space for classic MMU
ARM: 7359/2: smp_twd: Only wait for reprogramming on active cpus
PCI: Fix regression in pci_restore_state(), v3
SCSI: Fix error handling when no ULD is attached
ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors
ARM: dts: remove blank interrupt-parent properties
ARM: EXYNOS: Fix Kconfig dependencies for device tree enabled machine files
do not export kernel's NULL #define to userspace
ARM: EXYNOS: Remove broken config values for touchscren for NURI board
ARM: EXYNOS: set fix xusbxti clock for NURI and Universal210 boards
ARM: EXYNOS: fix regulator name for NURI board
ARM: SAMSUNG: make SAMSUNG_PM_DEBUG select DEBUG_LL
cpufreq: OMAP: fix build errors: depends on ARCH_OMAP2PLUS
sparc64: Eliminate obsolete __handle_softirq() function
sparc64: Fix bootup crash on sun4v.
ARM: msm: Fix section mismatches in proc_comm.c
...
Diffstat (limited to 'drivers/staging')
54 files changed, 129 insertions, 135 deletions
diff --git a/drivers/staging/android/Kconfig b/drivers/staging/android/Kconfig index 08a3b1133d29..eb1dee26bda3 100644 --- a/drivers/staging/android/Kconfig +++ b/drivers/staging/android/Kconfig | |||
| @@ -27,13 +27,14 @@ config ANDROID_LOGGER | |||
| 27 | 27 | ||
| 28 | config ANDROID_PERSISTENT_RAM | 28 | config ANDROID_PERSISTENT_RAM |
| 29 | bool | 29 | bool |
| 30 | depends on HAVE_MEMBLOCK | ||
| 30 | select REED_SOLOMON | 31 | select REED_SOLOMON |
| 31 | select REED_SOLOMON_ENC8 | 32 | select REED_SOLOMON_ENC8 |
| 32 | select REED_SOLOMON_DEC8 | 33 | select REED_SOLOMON_DEC8 |
| 33 | 34 | ||
| 34 | config ANDROID_RAM_CONSOLE | 35 | config ANDROID_RAM_CONSOLE |
| 35 | bool "Android RAM buffer console" | 36 | bool "Android RAM buffer console" |
| 36 | depends on !S390 && !UML | 37 | depends on !S390 && !UML && HAVE_MEMBLOCK |
| 37 | select ANDROID_PERSISTENT_RAM | 38 | select ANDROID_PERSISTENT_RAM |
| 38 | default n | 39 | default n |
| 39 | 40 | ||
diff --git a/drivers/staging/android/binder.c b/drivers/staging/android/binder.c index 59e095362c81..c2832124bb3e 100644 --- a/drivers/staging/android/binder.c +++ b/drivers/staging/android/binder.c | |||
| @@ -381,8 +381,7 @@ int task_get_unused_fd_flags(struct binder_proc *proc, int flags) | |||
| 381 | 381 | ||
| 382 | repeat: | 382 | repeat: |
| 383 | fdt = files_fdtable(files); | 383 | fdt = files_fdtable(files); |
| 384 | fd = find_next_zero_bit(fdt->open_fds->fds_bits, fdt->max_fds, | 384 | fd = find_next_zero_bit(fdt->open_fds, fdt->max_fds, files->next_fd); |
| 385 | files->next_fd); | ||
| 386 | 385 | ||
| 387 | /* | 386 | /* |
| 388 | * N.B. For clone tasks sharing a files structure, this test | 387 | * N.B. For clone tasks sharing a files structure, this test |
| @@ -410,11 +409,11 @@ repeat: | |||
| 410 | goto repeat; | 409 | goto repeat; |
| 411 | } | 410 | } |
| 412 | 411 | ||
| 413 | FD_SET(fd, fdt->open_fds); | 412 | __set_open_fd(fd, fdt); |
| 414 | if (flags & O_CLOEXEC) | 413 | if (flags & O_CLOEXEC) |
| 415 | FD_SET(fd, fdt->close_on_exec); | 414 | __set_close_on_exec(fd, fdt); |
| 416 | else | 415 | else |
| 417 | FD_CLR(fd, fdt->close_on_exec); | 416 | __clear_close_on_exec(fd, fdt); |
| 418 | files->next_fd = fd + 1; | 417 | files->next_fd = fd + 1; |
| 419 | #if 1 | 418 | #if 1 |
| 420 | /* Sanity check */ | 419 | /* Sanity check */ |
| @@ -455,7 +454,7 @@ static void task_fd_install( | |||
| 455 | static void __put_unused_fd(struct files_struct *files, unsigned int fd) | 454 | static void __put_unused_fd(struct files_struct *files, unsigned int fd) |
| 456 | { | 455 | { |
| 457 | struct fdtable *fdt = files_fdtable(files); | 456 | struct fdtable *fdt = files_fdtable(files); |
| 458 | __FD_CLR(fd, fdt->open_fds); | 457 | __clear_open_fd(fd, fdt); |
| 459 | if (fd < files->next_fd) | 458 | if (fd < files->next_fd) |
| 460 | files->next_fd = fd; | 459 | files->next_fd = fd; |
| 461 | } | 460 | } |
| @@ -481,7 +480,7 @@ static long task_close_fd(struct binder_proc *proc, unsigned int fd) | |||
| 481 | if (!filp) | 480 | if (!filp) |
| 482 | goto out_unlock; | 481 | goto out_unlock; |
| 483 | rcu_assign_pointer(fdt->fd[fd], NULL); | 482 | rcu_assign_pointer(fdt->fd[fd], NULL); |
| 484 | FD_CLR(fd, fdt->close_on_exec); | 483 | __clear_close_on_exec(fd, fdt); |
| 485 | __put_unused_fd(files, fd); | 484 | __put_unused_fd(files, fd); |
| 486 | spin_unlock(&files->file_lock); | 485 | spin_unlock(&files->file_lock); |
| 487 | retval = filp_close(filp, files); | 486 | retval = filp_close(filp, files); |
diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c index 052b43e4e505..b91e4bc332a7 100644 --- a/drivers/staging/android/lowmemorykiller.c +++ b/drivers/staging/android/lowmemorykiller.c | |||
| @@ -55,7 +55,6 @@ static int lowmem_minfree[6] = { | |||
| 55 | }; | 55 | }; |
| 56 | static int lowmem_minfree_size = 4; | 56 | static int lowmem_minfree_size = 4; |
| 57 | 57 | ||
| 58 | static struct task_struct *lowmem_deathpending; | ||
| 59 | static unsigned long lowmem_deathpending_timeout; | 58 | static unsigned long lowmem_deathpending_timeout; |
| 60 | 59 | ||
| 61 | #define lowmem_print(level, x...) \ | 60 | #define lowmem_print(level, x...) \ |
| @@ -64,24 +63,6 @@ static unsigned long lowmem_deathpending_timeout; | |||
| 64 | printk(x); \ | 63 | printk(x); \ |
| 65 | } while (0) | 64 | } while (0) |
| 66 | 65 | ||
| 67 | static int | ||
| 68 | task_notify_func(struct notifier_block *self, unsigned long val, void *data); | ||
| 69 | |||
| 70 | static struct notifier_block task_nb = { | ||
| 71 | .notifier_call = task_notify_func, | ||
| 72 | }; | ||
| 73 | |||
| 74 | static int | ||
| 75 | task_notify_func(struct notifier_block *self, unsigned long val, void *data) | ||
| 76 | { | ||
| 77 | struct task_struct *task = data; | ||
| 78 | |||
| 79 | if (task == lowmem_deathpending) | ||
| 80 | lowmem_deathpending = NULL; | ||
| 81 | |||
| 82 | return NOTIFY_OK; | ||
| 83 | } | ||
| 84 | |||
| 85 | static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) | 66 | static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) |
| 86 | { | 67 | { |
| 87 | struct task_struct *tsk; | 68 | struct task_struct *tsk; |
| @@ -97,19 +78,6 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) | |||
| 97 | int other_file = global_page_state(NR_FILE_PAGES) - | 78 | int other_file = global_page_state(NR_FILE_PAGES) - |
| 98 | global_page_state(NR_SHMEM); | 79 | global_page_state(NR_SHMEM); |
| 99 | 80 | ||
| 100 | /* | ||
| 101 | * If we already have a death outstanding, then | ||
| 102 | * bail out right away; indicating to vmscan | ||
| 103 | * that we have nothing further to offer on | ||
| 104 | * this pass. | ||
| 105 | * | ||
| 106 | * Note: Currently you need CONFIG_PROFILING | ||
| 107 | * for this to work correctly. | ||
| 108 | */ | ||
| 109 | if (lowmem_deathpending && | ||
| 110 | time_before_eq(jiffies, lowmem_deathpending_timeout)) | ||
| 111 | return 0; | ||
| 112 | |||
| 113 | if (lowmem_adj_size < array_size) | 81 | if (lowmem_adj_size < array_size) |
| 114 | array_size = lowmem_adj_size; | 82 | array_size = lowmem_adj_size; |
| 115 | if (lowmem_minfree_size < array_size) | 83 | if (lowmem_minfree_size < array_size) |
| @@ -148,6 +116,12 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) | |||
| 148 | if (!p) | 116 | if (!p) |
| 149 | continue; | 117 | continue; |
| 150 | 118 | ||
| 119 | if (test_tsk_thread_flag(p, TIF_MEMDIE) && | ||
| 120 | time_before_eq(jiffies, lowmem_deathpending_timeout)) { | ||
| 121 | task_unlock(p); | ||
| 122 | rcu_read_unlock(); | ||
| 123 | return 0; | ||
| 124 | } | ||
| 151 | oom_score_adj = p->signal->oom_score_adj; | 125 | oom_score_adj = p->signal->oom_score_adj; |
| 152 | if (oom_score_adj < min_score_adj) { | 126 | if (oom_score_adj < min_score_adj) { |
| 153 | task_unlock(p); | 127 | task_unlock(p); |
| @@ -174,15 +148,9 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) | |||
| 174 | lowmem_print(1, "send sigkill to %d (%s), adj %d, size %d\n", | 148 | lowmem_print(1, "send sigkill to %d (%s), adj %d, size %d\n", |
| 175 | selected->pid, selected->comm, | 149 | selected->pid, selected->comm, |
| 176 | selected_oom_score_adj, selected_tasksize); | 150 | selected_oom_score_adj, selected_tasksize); |
| 177 | /* | ||
| 178 | * If CONFIG_PROFILING is off, then we don't want to stall | ||
| 179 | * the killer by setting lowmem_deathpending. | ||
| 180 | */ | ||
| 181 | #ifdef CONFIG_PROFILING | ||
| 182 | lowmem_deathpending = selected; | ||
| 183 | lowmem_deathpending_timeout = jiffies + HZ; | 151 | lowmem_deathpending_timeout = jiffies + HZ; |
| 184 | #endif | ||
| 185 | send_sig(SIGKILL, selected, 0); | 152 | send_sig(SIGKILL, selected, 0); |
| 153 | set_tsk_thread_flag(selected, TIF_MEMDIE); | ||
| 186 | rem -= selected_tasksize; | 154 | rem -= selected_tasksize; |
| 187 | } | 155 | } |
| 188 | lowmem_print(4, "lowmem_shrink %lu, %x, return %d\n", | 156 | lowmem_print(4, "lowmem_shrink %lu, %x, return %d\n", |
| @@ -198,7 +166,6 @@ static struct shrinker lowmem_shrinker = { | |||
| 198 | 166 | ||
| 199 | static int __init lowmem_init(void) | 167 | static int __init lowmem_init(void) |
| 200 | { | 168 | { |
| 201 | task_handoff_register(&task_nb); | ||
| 202 | register_shrinker(&lowmem_shrinker); | 169 | register_shrinker(&lowmem_shrinker); |
| 203 | return 0; | 170 | return 0; |
| 204 | } | 171 | } |
| @@ -206,7 +173,6 @@ static int __init lowmem_init(void) | |||
| 206 | static void __exit lowmem_exit(void) | 173 | static void __exit lowmem_exit(void) |
| 207 | { | 174 | { |
| 208 | unregister_shrinker(&lowmem_shrinker); | 175 | unregister_shrinker(&lowmem_shrinker); |
| 209 | task_handoff_unregister(&task_nb); | ||
| 210 | } | 176 | } |
| 211 | 177 | ||
| 212 | module_param_named(cost, lowmem_shrinker.seeks, int, S_IRUGO | S_IWUSR); | 178 | module_param_named(cost, lowmem_shrinker.seeks, int, S_IRUGO | S_IWUSR); |
diff --git a/drivers/staging/android/persistent_ram.c b/drivers/staging/android/persistent_ram.c index e08f2574e30a..8d8c1e33e0ff 100644 --- a/drivers/staging/android/persistent_ram.c +++ b/drivers/staging/android/persistent_ram.c | |||
| @@ -399,12 +399,12 @@ static __init | |||
| 399 | struct persistent_ram_zone *__persistent_ram_init(struct device *dev, bool ecc) | 399 | struct persistent_ram_zone *__persistent_ram_init(struct device *dev, bool ecc) |
| 400 | { | 400 | { |
| 401 | struct persistent_ram_zone *prz; | 401 | struct persistent_ram_zone *prz; |
| 402 | int ret; | 402 | int ret = -ENOMEM; |
| 403 | 403 | ||
| 404 | prz = kzalloc(sizeof(struct persistent_ram_zone), GFP_KERNEL); | 404 | prz = kzalloc(sizeof(struct persistent_ram_zone), GFP_KERNEL); |
| 405 | if (!prz) { | 405 | if (!prz) { |
| 406 | pr_err("persistent_ram: failed to allocate persistent ram zone\n"); | 406 | pr_err("persistent_ram: failed to allocate persistent ram zone\n"); |
| 407 | return ERR_PTR(-ENOMEM); | 407 | goto err; |
| 408 | } | 408 | } |
| 409 | 409 | ||
| 410 | INIT_LIST_HEAD(&prz->node); | 410 | INIT_LIST_HEAD(&prz->node); |
| @@ -412,13 +412,13 @@ struct persistent_ram_zone *__persistent_ram_init(struct device *dev, bool ecc) | |||
| 412 | ret = persistent_ram_buffer_init(dev_name(dev), prz); | 412 | ret = persistent_ram_buffer_init(dev_name(dev), prz); |
| 413 | if (ret) { | 413 | if (ret) { |
| 414 | pr_err("persistent_ram: failed to initialize buffer\n"); | 414 | pr_err("persistent_ram: failed to initialize buffer\n"); |
| 415 | return ERR_PTR(ret); | 415 | goto err; |
| 416 | } | 416 | } |
| 417 | 417 | ||
| 418 | prz->ecc = ecc; | 418 | prz->ecc = ecc; |
| 419 | ret = persistent_ram_init_ecc(prz, prz->buffer_size); | 419 | ret = persistent_ram_init_ecc(prz, prz->buffer_size); |
| 420 | if (ret) | 420 | if (ret) |
| 421 | return ERR_PTR(ret); | 421 | goto err; |
| 422 | 422 | ||
| 423 | if (prz->buffer->sig == PERSISTENT_RAM_SIG) { | 423 | if (prz->buffer->sig == PERSISTENT_RAM_SIG) { |
| 424 | if (buffer_size(prz) > prz->buffer_size || | 424 | if (buffer_size(prz) > prz->buffer_size || |
| @@ -442,6 +442,9 @@ struct persistent_ram_zone *__persistent_ram_init(struct device *dev, bool ecc) | |||
| 442 | atomic_set(&prz->buffer->size, 0); | 442 | atomic_set(&prz->buffer->size, 0); |
| 443 | 443 | ||
| 444 | return prz; | 444 | return prz; |
| 445 | err: | ||
| 446 | kfree(prz); | ||
| 447 | return ERR_PTR(ret); | ||
| 445 | } | 448 | } |
| 446 | 449 | ||
| 447 | struct persistent_ram_zone * __init | 450 | struct persistent_ram_zone * __init |
diff --git a/drivers/staging/android/timed_gpio.c b/drivers/staging/android/timed_gpio.c index bc723eff11af..45c522cbe784 100644 --- a/drivers/staging/android/timed_gpio.c +++ b/drivers/staging/android/timed_gpio.c | |||
| @@ -85,7 +85,7 @@ static int timed_gpio_probe(struct platform_device *pdev) | |||
| 85 | struct timed_gpio_platform_data *pdata = pdev->dev.platform_data; | 85 | struct timed_gpio_platform_data *pdata = pdev->dev.platform_data; |
| 86 | struct timed_gpio *cur_gpio; | 86 | struct timed_gpio *cur_gpio; |
| 87 | struct timed_gpio_data *gpio_data, *gpio_dat; | 87 | struct timed_gpio_data *gpio_data, *gpio_dat; |
| 88 | int i, j, ret = 0; | 88 | int i, ret; |
| 89 | 89 | ||
| 90 | if (!pdata) | 90 | if (!pdata) |
| 91 | return -EBUSY; | 91 | return -EBUSY; |
| @@ -108,18 +108,12 @@ static int timed_gpio_probe(struct platform_device *pdev) | |||
| 108 | gpio_dat->dev.get_time = gpio_get_time; | 108 | gpio_dat->dev.get_time = gpio_get_time; |
| 109 | gpio_dat->dev.enable = gpio_enable; | 109 | gpio_dat->dev.enable = gpio_enable; |
| 110 | ret = gpio_request(cur_gpio->gpio, cur_gpio->name); | 110 | ret = gpio_request(cur_gpio->gpio, cur_gpio->name); |
| 111 | if (ret >= 0) { | 111 | if (ret < 0) |
| 112 | ret = timed_output_dev_register(&gpio_dat->dev); | 112 | goto err_out; |
| 113 | if (ret < 0) | 113 | ret = timed_output_dev_register(&gpio_dat->dev); |
| 114 | gpio_free(cur_gpio->gpio); | ||
| 115 | } | ||
| 116 | if (ret < 0) { | 114 | if (ret < 0) { |
| 117 | for (j = 0; j < i; j++) { | 115 | gpio_free(cur_gpio->gpio); |
| 118 | timed_output_dev_unregister(&gpio_data[i].dev); | 116 | goto err_out; |
| 119 | gpio_free(gpio_data[i].gpio); | ||
| 120 | } | ||
| 121 | kfree(gpio_data); | ||
| 122 | return ret; | ||
| 123 | } | 117 | } |
| 124 | 118 | ||
| 125 | gpio_dat->gpio = cur_gpio->gpio; | 119 | gpio_dat->gpio = cur_gpio->gpio; |
| @@ -131,6 +125,15 @@ static int timed_gpio_probe(struct platform_device *pdev) | |||
| 131 | platform_set_drvdata(pdev, gpio_data); | 125 | platform_set_drvdata(pdev, gpio_data); |
| 132 | 126 | ||
| 133 | return 0; | 127 | return 0; |
| 128 | |||
| 129 | err_out: | ||
| 130 | while (--i >= 0) { | ||
| 131 | timed_output_dev_unregister(&gpio_data[i].dev); | ||
| 132 | gpio_free(gpio_data[i].gpio); | ||
| 133 | } | ||
| 134 | kfree(gpio_data); | ||
| 135 | |||
| 136 | return ret; | ||
| 134 | } | 137 | } |
| 135 | 138 | ||
| 136 | static int timed_gpio_remove(struct platform_device *pdev) | 139 | static int timed_gpio_remove(struct platform_device *pdev) |
diff --git a/drivers/staging/asus_oled/README b/drivers/staging/asus_oled/README index 0d82a6d5fa58..2d721232467a 100644 --- a/drivers/staging/asus_oled/README +++ b/drivers/staging/asus_oled/README | |||
| @@ -52,7 +52,7 @@ Configuration | |||
| 52 | 52 | ||
| 53 | There is only one option: start_off. | 53 | There is only one option: start_off. |
| 54 | You can use it by: 'modprobe asus_oled start_off=1', or by adding this | 54 | You can use it by: 'modprobe asus_oled start_off=1', or by adding this |
| 55 | line to /etc/modprobe.conf: | 55 | line to /etc/modprobe.d/asus_oled.conf: |
| 56 | options asus_oled start_off=1 | 56 | options asus_oled start_off=1 |
| 57 | 57 | ||
| 58 | With this option provided, asus_oled driver will switch off the display | 58 | With this option provided, asus_oled driver will switch off the display |
diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index db1fd63aaab3..bf185e2807d1 100644 --- a/drivers/staging/comedi/drivers.c +++ b/drivers/staging/comedi/drivers.c | |||
| @@ -42,7 +42,6 @@ | |||
| 42 | #include <linux/cdev.h> | 42 | #include <linux/cdev.h> |
| 43 | #include <linux/dma-mapping.h> | 43 | #include <linux/dma-mapping.h> |
| 44 | #include <linux/io.h> | 44 | #include <linux/io.h> |
| 45 | #include <asm/system.h> | ||
| 46 | 45 | ||
| 47 | #include "comedidev.h" | 46 | #include "comedidev.h" |
| 48 | #include "internal.h" | 47 | #include "internal.h" |
diff --git a/drivers/staging/comedi/drivers/cb_pcidas64.c b/drivers/staging/comedi/drivers/cb_pcidas64.c index c9e8c4785768..915157d47805 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas64.c +++ b/drivers/staging/comedi/drivers/cb_pcidas64.c | |||
| @@ -86,7 +86,6 @@ TODO: | |||
| 86 | #include "../comedidev.h" | 86 | #include "../comedidev.h" |
| 87 | #include <linux/delay.h> | 87 | #include <linux/delay.h> |
| 88 | #include <linux/interrupt.h> | 88 | #include <linux/interrupt.h> |
| 89 | #include <asm/system.h> | ||
| 90 | 89 | ||
| 91 | #include "comedi_pci.h" | 90 | #include "comedi_pci.h" |
| 92 | #include "8253.h" | 91 | #include "8253.h" |
diff --git a/drivers/staging/comedi/drivers/mite.c b/drivers/staging/comedi/drivers/mite.c index fd274e9c7b78..13e9c8071696 100644 --- a/drivers/staging/comedi/drivers/mite.c +++ b/drivers/staging/comedi/drivers/mite.c | |||
| @@ -55,7 +55,6 @@ | |||
| 55 | #include "comedi_pci.h" | 55 | #include "comedi_pci.h" |
| 56 | #include "../comedidev.h" | 56 | #include "../comedidev.h" |
| 57 | 57 | ||
| 58 | #include <asm/system.h> | ||
| 59 | 58 | ||
| 60 | #define PCI_MITE_SIZE 4096 | 59 | #define PCI_MITE_SIZE 4096 |
| 61 | #define PCI_DAQ_SIZE 4096 | 60 | #define PCI_DAQ_SIZE 4096 |
diff --git a/drivers/staging/crystalhd/bc_dts_defs.h b/drivers/staging/crystalhd/bc_dts_defs.h index 8cd51a7aad8e..647e116e10de 100644 --- a/drivers/staging/crystalhd/bc_dts_defs.h +++ b/drivers/staging/crystalhd/bc_dts_defs.h | |||
| @@ -26,6 +26,8 @@ | |||
| 26 | #ifndef _BC_DTS_DEFS_H_ | 26 | #ifndef _BC_DTS_DEFS_H_ |
| 27 | #define _BC_DTS_DEFS_H_ | 27 | #define _BC_DTS_DEFS_H_ |
| 28 | 28 | ||
| 29 | #include <linux/types.h> | ||
| 30 | |||
| 29 | /* BIT Mask */ | 31 | /* BIT Mask */ |
| 30 | #define BC_BIT(_x) (1 << (_x)) | 32 | #define BC_BIT(_x) (1 << (_x)) |
| 31 | 33 | ||
diff --git a/drivers/staging/crystalhd/crystalhd.h b/drivers/staging/crystalhd/crystalhd.h index 3f4d79515026..b3a550bd5b06 100644 --- a/drivers/staging/crystalhd/crystalhd.h +++ b/drivers/staging/crystalhd/crystalhd.h | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | #ifndef _CRYSTALHD_H_ | 1 | #ifndef _CRYSTALHD_H_ |
| 2 | #define _CRYSTALHD_H_ | 2 | #define _CRYSTALHD_H_ |
| 3 | 3 | ||
| 4 | #include <asm/system.h> | ||
| 5 | #include "bc_dts_defs.h" | 4 | #include "bc_dts_defs.h" |
| 6 | #include "crystalhd_misc.h" | 5 | #include "crystalhd_misc.h" |
| 7 | #include "bc_dts_glob_lnx.h" | 6 | #include "bc_dts_glob_lnx.h" |
diff --git a/drivers/staging/crystalhd/crystalhd_lnx.h b/drivers/staging/crystalhd/crystalhd_lnx.h index a81f9298b0a1..a9e36336d097 100644 --- a/drivers/staging/crystalhd/crystalhd_lnx.h +++ b/drivers/staging/crystalhd/crystalhd_lnx.h | |||
| @@ -45,7 +45,6 @@ | |||
| 45 | #include <linux/io.h> | 45 | #include <linux/io.h> |
| 46 | #include <asm/irq.h> | 46 | #include <asm/irq.h> |
| 47 | #include <asm/pgtable.h> | 47 | #include <asm/pgtable.h> |
| 48 | #include <asm/system.h> | ||
| 49 | #include <linux/uaccess.h> | 48 | #include <linux/uaccess.h> |
| 50 | 49 | ||
| 51 | #include "crystalhd.h" | 50 | #include "crystalhd.h" |
diff --git a/drivers/staging/crystalhd/crystalhd_misc.h b/drivers/staging/crystalhd/crystalhd_misc.h index 84c87938a831..8cdaa7a34814 100644 --- a/drivers/staging/crystalhd/crystalhd_misc.h +++ b/drivers/staging/crystalhd/crystalhd_misc.h | |||
| @@ -37,6 +37,7 @@ | |||
| 37 | #include <linux/ioctl.h> | 37 | #include <linux/ioctl.h> |
| 38 | #include <linux/dma-mapping.h> | 38 | #include <linux/dma-mapping.h> |
| 39 | #include <linux/sched.h> | 39 | #include <linux/sched.h> |
| 40 | #include "bc_dts_glob_lnx.h" | ||
| 40 | 41 | ||
| 41 | /* Global log level variable defined in crystal_misc.c file */ | 42 | /* Global log level variable defined in crystal_misc.c file */ |
| 42 | extern uint32_t g_linklog_level; | 43 | extern uint32_t g_linklog_level; |
diff --git a/drivers/staging/et131x/et131x.c b/drivers/staging/et131x/et131x.c index 3f919babe79b..886f5650444e 100644 --- a/drivers/staging/et131x/et131x.c +++ b/drivers/staging/et131x/et131x.c | |||
| @@ -70,7 +70,6 @@ | |||
| 70 | #include <linux/delay.h> | 70 | #include <linux/delay.h> |
| 71 | #include <linux/bitops.h> | 71 | #include <linux/bitops.h> |
| 72 | #include <linux/io.h> | 72 | #include <linux/io.h> |
| 73 | #include <asm/system.h> | ||
| 74 | 73 | ||
| 75 | #include <linux/netdevice.h> | 74 | #include <linux/netdevice.h> |
| 76 | #include <linux/etherdevice.h> | 75 | #include <linux/etherdevice.h> |
diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c index 7569aa0f24d1..c4a8a0a26eb5 100644 --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c +++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c | |||
| @@ -29,7 +29,6 @@ | |||
| 29 | #include <linux/interrupt.h> | 29 | #include <linux/interrupt.h> |
| 30 | #include <linux/in.h> | 30 | #include <linux/in.h> |
| 31 | #include <asm/io.h> | 31 | #include <asm/io.h> |
| 32 | #include <asm/system.h> | ||
| 33 | #include <asm/bitops.h> | 32 | #include <asm/bitops.h> |
| 34 | 33 | ||
| 35 | #include <linux/netdevice.h> | 34 | #include <linux/netdevice.h> |
diff --git a/drivers/staging/iio/gyro/adis16060_core.c b/drivers/staging/iio/gyro/adis16060_core.c index c0ca7093e0ed..02cc23420b90 100644 --- a/drivers/staging/iio/gyro/adis16060_core.c +++ b/drivers/staging/iio/gyro/adis16060_core.c | |||
| @@ -14,7 +14,6 @@ | |||
| 14 | #include <linux/spi/spi.h> | 14 | #include <linux/spi/spi.h> |
| 15 | #include <linux/slab.h> | 15 | #include <linux/slab.h> |
| 16 | #include <linux/sysfs.h> | 16 | #include <linux/sysfs.h> |
| 17 | #include <linux/module.h> | ||
| 18 | 17 | ||
| 19 | #include "../iio.h" | 18 | #include "../iio.h" |
| 20 | #include "../sysfs.h" | 19 | #include "../sysfs.h" |
diff --git a/drivers/staging/iio/inkern.c b/drivers/staging/iio/inkern.c index de2c8ea64965..ef07a02bf542 100644 --- a/drivers/staging/iio/inkern.c +++ b/drivers/staging/iio/inkern.c | |||
| @@ -82,6 +82,7 @@ int iio_map_array_unregister(struct iio_dev *indio_dev, | |||
| 82 | ret = -ENODEV; | 82 | ret = -ENODEV; |
| 83 | goto error_ret; | 83 | goto error_ret; |
| 84 | } | 84 | } |
| 85 | i++; | ||
| 85 | } | 86 | } |
| 86 | error_ret: | 87 | error_ret: |
| 87 | mutex_unlock(&iio_map_list_lock); | 88 | mutex_unlock(&iio_map_list_lock); |
diff --git a/drivers/staging/iio/magnetometer/ak8975.c b/drivers/staging/iio/magnetometer/ak8975.c index d5ddac3d8831..ebc2d0840caf 100644 --- a/drivers/staging/iio/magnetometer/ak8975.c +++ b/drivers/staging/iio/magnetometer/ak8975.c | |||
| @@ -108,7 +108,8 @@ static const int ak8975_index_to_reg[] = { | |||
| 108 | static int ak8975_write_data(struct i2c_client *client, | 108 | static int ak8975_write_data(struct i2c_client *client, |
| 109 | u8 reg, u8 val, u8 mask, u8 shift) | 109 | u8 reg, u8 val, u8 mask, u8 shift) |
| 110 | { | 110 | { |
| 111 | struct ak8975_data *data = i2c_get_clientdata(client); | 111 | struct iio_dev *indio_dev = i2c_get_clientdata(client); |
| 112 | struct ak8975_data *data = iio_priv(indio_dev); | ||
| 112 | u8 regval; | 113 | u8 regval; |
| 113 | int ret; | 114 | int ret; |
| 114 | 115 | ||
| @@ -159,7 +160,8 @@ static int ak8975_read_data(struct i2c_client *client, | |||
| 159 | */ | 160 | */ |
| 160 | static int ak8975_setup(struct i2c_client *client) | 161 | static int ak8975_setup(struct i2c_client *client) |
| 161 | { | 162 | { |
| 162 | struct ak8975_data *data = i2c_get_clientdata(client); | 163 | struct iio_dev *indio_dev = i2c_get_clientdata(client); |
| 164 | struct ak8975_data *data = iio_priv(indio_dev); | ||
| 163 | u8 device_id; | 165 | u8 device_id; |
| 164 | int ret; | 166 | int ret; |
| 165 | 167 | ||
| @@ -509,6 +511,7 @@ static int ak8975_probe(struct i2c_client *client, | |||
| 509 | goto exit_gpio; | 511 | goto exit_gpio; |
| 510 | } | 512 | } |
| 511 | data = iio_priv(indio_dev); | 513 | data = iio_priv(indio_dev); |
| 514 | i2c_set_clientdata(client, indio_dev); | ||
| 512 | /* Perform some basic start-of-day setup of the device. */ | 515 | /* Perform some basic start-of-day setup of the device. */ |
| 513 | err = ak8975_setup(client); | 516 | err = ak8975_setup(client); |
| 514 | if (err < 0) { | 517 | if (err < 0) { |
| @@ -516,7 +519,6 @@ static int ak8975_probe(struct i2c_client *client, | |||
| 516 | goto exit_free_iio; | 519 | goto exit_free_iio; |
| 517 | } | 520 | } |
| 518 | 521 | ||
| 519 | i2c_set_clientdata(client, indio_dev); | ||
| 520 | data->client = client; | 522 | data->client = client; |
| 521 | mutex_init(&data->lock); | 523 | mutex_init(&data->lock); |
| 522 | data->eoc_irq = client->irq; | 524 | data->eoc_irq = client->irq; |
diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c index 91dd3da70cb4..e00b416c4d33 100644 --- a/drivers/staging/iio/magnetometer/hmc5843.c +++ b/drivers/staging/iio/magnetometer/hmc5843.c | |||
| @@ -521,7 +521,9 @@ static int hmc5843_detect(struct i2c_client *client, | |||
| 521 | /* Called when we have found a new HMC5843. */ | 521 | /* Called when we have found a new HMC5843. */ |
| 522 | static void hmc5843_init_client(struct i2c_client *client) | 522 | static void hmc5843_init_client(struct i2c_client *client) |
| 523 | { | 523 | { |
| 524 | struct hmc5843_data *data = i2c_get_clientdata(client); | 524 | struct iio_dev *indio_dev = i2c_get_clientdata(client); |
| 525 | struct hmc5843_data *data = iio_priv(indio_dev); | ||
| 526 | |||
| 525 | hmc5843_set_meas_conf(client, data->meas_conf); | 527 | hmc5843_set_meas_conf(client, data->meas_conf); |
| 526 | hmc5843_set_rate(client, data->rate); | 528 | hmc5843_set_rate(client, data->rate); |
| 527 | hmc5843_configure(client, data->operating_mode); | 529 | hmc5843_configure(client, data->operating_mode); |
diff --git a/drivers/staging/media/go7007/go7007-driver.c b/drivers/staging/media/go7007/go7007-driver.c index 6c9279a6d606..ece2dd146487 100644 --- a/drivers/staging/media/go7007/go7007-driver.c +++ b/drivers/staging/media/go7007/go7007-driver.c | |||
| @@ -30,7 +30,6 @@ | |||
| 30 | #include <linux/mutex.h> | 30 | #include <linux/mutex.h> |
| 31 | #include <linux/uaccess.h> | 31 | #include <linux/uaccess.h> |
| 32 | #include <linux/slab.h> | 32 | #include <linux/slab.h> |
| 33 | #include <asm/system.h> | ||
| 34 | #include <linux/videodev2.h> | 33 | #include <linux/videodev2.h> |
| 35 | #include <media/tuner.h> | 34 | #include <media/tuner.h> |
| 36 | #include <media/v4l2-common.h> | 35 | #include <media/v4l2-common.h> |
diff --git a/drivers/staging/media/go7007/go7007-i2c.c b/drivers/staging/media/go7007/go7007-i2c.c index b8cfa1a6eaeb..6bc82aaeef11 100644 --- a/drivers/staging/media/go7007/go7007-i2c.c +++ b/drivers/staging/media/go7007/go7007-i2c.c | |||
| @@ -26,7 +26,6 @@ | |||
| 26 | #include <linux/i2c.h> | 26 | #include <linux/i2c.h> |
| 27 | #include <linux/mutex.h> | 27 | #include <linux/mutex.h> |
| 28 | #include <linux/uaccess.h> | 28 | #include <linux/uaccess.h> |
| 29 | #include <asm/system.h> | ||
| 30 | 29 | ||
| 31 | #include "go7007-priv.h" | 30 | #include "go7007-priv.h" |
| 32 | #include "wis-i2c.h" | 31 | #include "wis-i2c.h" |
diff --git a/drivers/staging/media/go7007/go7007-v4l2.c b/drivers/staging/media/go7007/go7007-v4l2.c index f91658670e34..3ef4cd8b4de3 100644 --- a/drivers/staging/media/go7007/go7007-v4l2.c +++ b/drivers/staging/media/go7007/go7007-v4l2.c | |||
| @@ -34,7 +34,6 @@ | |||
| 34 | #include <linux/i2c.h> | 34 | #include <linux/i2c.h> |
| 35 | #include <linux/mutex.h> | 35 | #include <linux/mutex.h> |
| 36 | #include <linux/uaccess.h> | 36 | #include <linux/uaccess.h> |
| 37 | #include <asm/system.h> | ||
| 38 | 37 | ||
| 39 | #include "go7007.h" | 38 | #include "go7007.h" |
| 40 | #include "go7007-priv.h" | 39 | #include "go7007-priv.h" |
diff --git a/drivers/staging/media/go7007/snd-go7007.c b/drivers/staging/media/go7007/snd-go7007.c index d071c838ac2a..5af29ff68bfd 100644 --- a/drivers/staging/media/go7007/snd-go7007.c +++ b/drivers/staging/media/go7007/snd-go7007.c | |||
| @@ -29,7 +29,6 @@ | |||
| 29 | #include <linux/mutex.h> | 29 | #include <linux/mutex.h> |
| 30 | #include <linux/uaccess.h> | 30 | #include <linux/uaccess.h> |
| 31 | #include <linux/slab.h> | 31 | #include <linux/slab.h> |
| 32 | #include <asm/system.h> | ||
| 33 | #include <sound/core.h> | 32 | #include <sound/core.h> |
| 34 | #include <sound/pcm.h> | 33 | #include <sound/pcm.h> |
| 35 | #include <sound/initval.h> | 34 | #include <sound/initval.h> |
diff --git a/drivers/staging/media/lirc/lirc_serial.c b/drivers/staging/media/lirc/lirc_serial.c index 97352cf6bd98..3295ea63f3eb 100644 --- a/drivers/staging/media/lirc/lirc_serial.c +++ b/drivers/staging/media/lirc/lirc_serial.c | |||
| @@ -66,7 +66,6 @@ | |||
| 66 | #include <linux/poll.h> | 66 | #include <linux/poll.h> |
| 67 | #include <linux/platform_device.h> | 67 | #include <linux/platform_device.h> |
| 68 | 68 | ||
| 69 | #include <asm/system.h> | ||
| 70 | #include <linux/io.h> | 69 | #include <linux/io.h> |
| 71 | #include <linux/irq.h> | 70 | #include <linux/irq.h> |
| 72 | #include <linux/fcntl.h> | 71 | #include <linux/fcntl.h> |
diff --git a/drivers/staging/media/lirc/lirc_sir.c b/drivers/staging/media/lirc/lirc_sir.c index c94382b917ac..945d9623550b 100644 --- a/drivers/staging/media/lirc/lirc_sir.c +++ b/drivers/staging/media/lirc/lirc_sir.c | |||
| @@ -49,7 +49,6 @@ | |||
| 49 | #include <linux/mm.h> | 49 | #include <linux/mm.h> |
| 50 | #include <linux/delay.h> | 50 | #include <linux/delay.h> |
| 51 | #include <linux/poll.h> | 51 | #include <linux/poll.h> |
| 52 | #include <asm/system.h> | ||
| 53 | #include <linux/io.h> | 52 | #include <linux/io.h> |
| 54 | #include <asm/irq.h> | 53 | #include <asm/irq.h> |
| 55 | #include <linux/fcntl.h> | 54 | #include <linux/fcntl.h> |
diff --git a/drivers/staging/mei/wd.c b/drivers/staging/mei/wd.c index a6910da78a64..cf4c29d10e7f 100644 --- a/drivers/staging/mei/wd.c +++ b/drivers/staging/mei/wd.c | |||
| @@ -323,6 +323,7 @@ static int mei_wd_ops_set_timeout(struct watchdog_device *wd_dev, unsigned int t | |||
| 323 | mutex_lock(&dev->device_lock); | 323 | mutex_lock(&dev->device_lock); |
| 324 | 324 | ||
| 325 | dev->wd_timeout = timeout; | 325 | dev->wd_timeout = timeout; |
| 326 | wd_dev->timeout = timeout; | ||
| 326 | mei_wd_set_start_timeout(dev, dev->wd_timeout); | 327 | mei_wd_set_start_timeout(dev, dev->wd_timeout); |
| 327 | 328 | ||
| 328 | mutex_unlock(&dev->device_lock); | 329 | mutex_unlock(&dev->device_lock); |
diff --git a/drivers/staging/omapdrm/omap_drv.c b/drivers/staging/omapdrm/omap_drv.c index 3df5b4c58ecd..620b8d54223d 100644 --- a/drivers/staging/omapdrm/omap_drv.c +++ b/drivers/staging/omapdrm/omap_drv.c | |||
| @@ -803,9 +803,6 @@ static void pdev_shutdown(struct platform_device *device) | |||
| 803 | static int pdev_probe(struct platform_device *device) | 803 | static int pdev_probe(struct platform_device *device) |
| 804 | { | 804 | { |
| 805 | DBG("%s", device->name); | 805 | DBG("%s", device->name); |
| 806 | if (platform_driver_register(&omap_dmm_driver)) | ||
| 807 | dev_err(&device->dev, "DMM registration failed\n"); | ||
| 808 | |||
| 809 | return drm_platform_init(&omap_drm_driver, device); | 806 | return drm_platform_init(&omap_drm_driver, device); |
| 810 | } | 807 | } |
| 811 | 808 | ||
| @@ -833,6 +830,10 @@ struct platform_driver pdev = { | |||
| 833 | static int __init omap_drm_init(void) | 830 | static int __init omap_drm_init(void) |
| 834 | { | 831 | { |
| 835 | DBG("init"); | 832 | DBG("init"); |
| 833 | if (platform_driver_register(&omap_dmm_driver)) { | ||
| 834 | /* we can continue on without DMM.. so not fatal */ | ||
| 835 | dev_err(NULL, "DMM registration failed\n"); | ||
| 836 | } | ||
| 836 | return platform_driver_register(&pdev); | 837 | return platform_driver_register(&pdev); |
| 837 | } | 838 | } |
| 838 | 839 | ||
diff --git a/drivers/staging/ozwpan/TODO b/drivers/staging/ozwpan/TODO index f7a9c122f596..c2d30a7112f3 100644 --- a/drivers/staging/ozwpan/TODO +++ b/drivers/staging/ozwpan/TODO | |||
| @@ -8,5 +8,7 @@ TODO: | |||
| 8 | - code review by USB developer community. | 8 | - code review by USB developer community. |
| 9 | - testing with as many devices as possible. | 9 | - testing with as many devices as possible. |
| 10 | 10 | ||
| 11 | Please send any patches for this driver to Chris Kelly <ckelly@ozmodevices.com> | 11 | Please send any patches for this driver to |
| 12 | Rupesh Gujare <rgujare@ozmodevices.com> | ||
| 13 | Chris Kelly <ckelly@ozmodevices.com> | ||
| 12 | and Greg Kroah-Hartman <gregkh@linuxfoundation.org>. | 14 | and Greg Kroah-Hartman <gregkh@linuxfoundation.org>. |
diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c index 4683d5f355c0..6183573f112f 100644 --- a/drivers/staging/panel/panel.c +++ b/drivers/staging/panel/panel.c | |||
| @@ -58,7 +58,6 @@ | |||
| 58 | 58 | ||
| 59 | #include <linux/io.h> | 59 | #include <linux/io.h> |
| 60 | #include <linux/uaccess.h> | 60 | #include <linux/uaccess.h> |
| 61 | #include <asm/system.h> | ||
| 62 | 61 | ||
| 63 | #define LCD_MINOR 156 | 62 | #define LCD_MINOR 156 |
| 64 | #define KEYPAD_MINOR 185 | 63 | #define KEYPAD_MINOR 185 |
diff --git a/drivers/staging/ramster/Kconfig b/drivers/staging/ramster/Kconfig index 8b57b87edda4..4af1f8d4b953 100644 --- a/drivers/staging/ramster/Kconfig +++ b/drivers/staging/ramster/Kconfig | |||
| @@ -1,10 +1,6 @@ | |||
| 1 | # Dependency on CONFIG_BROKEN is because there is a commit dependency | ||
| 2 | # on a cleancache naming change to be submitted by Konrad Wilk | ||
| 3 | # a39c00ded70339603ffe1b0ffdf3ade85bcf009a "Merge branch 'stable/cleancache.v13' | ||
| 4 | # into linux-next. Once this commit is present, BROKEN can be removed | ||
| 5 | config RAMSTER | 1 | config RAMSTER |
| 6 | bool "Cross-machine RAM capacity sharing, aka peer-to-peer tmem" | 2 | bool "Cross-machine RAM capacity sharing, aka peer-to-peer tmem" |
| 7 | depends on (CLEANCACHE || FRONTSWAP) && CONFIGFS_FS=y && !ZCACHE && !XVMALLOC && !HIGHMEM && BROKEN | 3 | depends on (CLEANCACHE || FRONTSWAP) && CONFIGFS_FS=y && !ZCACHE && !XVMALLOC && !HIGHMEM |
| 8 | select LZO_COMPRESS | 4 | select LZO_COMPRESS |
| 9 | select LZO_DECOMPRESS | 5 | select LZO_DECOMPRESS |
| 10 | default n | 6 | default n |
diff --git a/drivers/staging/rtl8187se/r8180_core.c b/drivers/staging/rtl8187se/r8180_core.c index e4ade550cfe5..4fe52f6b0034 100644 --- a/drivers/staging/rtl8187se/r8180_core.c +++ b/drivers/staging/rtl8187se/r8180_core.c | |||
| @@ -4159,7 +4159,7 @@ void GPIOChangeRFWorkItemCallBack(struct work_struct *work) | |||
| 4159 | argv[0] = RadioPowerPath; | 4159 | argv[0] = RadioPowerPath; |
| 4160 | argv[2] = NULL; | 4160 | argv[2] = NULL; |
| 4161 | 4161 | ||
| 4162 | call_usermodehelper(RadioPowerPath, argv, envp, 1); | 4162 | call_usermodehelper(RadioPowerPath, argv, envp, UMH_WAIT_PROC); |
| 4163 | } | 4163 | } |
| 4164 | } | 4164 | } |
| 4165 | 4165 | ||
diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index a7fa9aad6f2d..f026b7171f62 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | |||
| @@ -208,7 +208,7 @@ static void dm_check_ac_dc_power(struct net_device *dev) | |||
| 208 | 208 | ||
| 209 | if (priv->rtllib->state != RTLLIB_LINKED) | 209 | if (priv->rtllib->state != RTLLIB_LINKED) |
| 210 | return; | 210 | return; |
| 211 | call_usermodehelper(ac_dc_check_script_path, argv, envp, 1); | 211 | call_usermodehelper(ac_dc_check_script_path, argv, envp, UMH_WAIT_PROC); |
| 212 | 212 | ||
| 213 | return; | 213 | return; |
| 214 | }; | 214 | }; |
| @@ -2296,7 +2296,7 @@ void dm_CheckRfCtrlGPIO(void *data) | |||
| 2296 | 2296 | ||
| 2297 | argv[0] = RadioPowerPath; | 2297 | argv[0] = RadioPowerPath; |
| 2298 | argv[2] = NULL; | 2298 | argv[2] = NULL; |
| 2299 | call_usermodehelper(RadioPowerPath, argv, envp, 1); | 2299 | call_usermodehelper(RadioPowerPath, argv, envp, UMH_WAIT_PROC); |
| 2300 | } | 2300 | } |
| 2301 | } | 2301 | } |
| 2302 | 2302 | ||
diff --git a/drivers/staging/rts_pstor/ms.c b/drivers/staging/rts_pstor/ms.c index 66341dff8c99..f9a4498984cc 100644 --- a/drivers/staging/rts_pstor/ms.c +++ b/drivers/staging/rts_pstor/ms.c | |||
| @@ -3498,7 +3498,8 @@ static int ms_rw_multi_sector(struct scsi_cmnd *srb, struct rtsx_chip *chip, u32 | |||
| 3498 | 3498 | ||
| 3499 | log_blk++; | 3499 | log_blk++; |
| 3500 | 3500 | ||
| 3501 | for (seg_no = 0; seg_no < sizeof(ms_start_idx)/2; seg_no++) { | 3501 | for (seg_no = 0; seg_no < ARRAY_SIZE(ms_start_idx) - 1; |
| 3502 | seg_no++) { | ||
| 3502 | if (log_blk < ms_start_idx[seg_no+1]) | 3503 | if (log_blk < ms_start_idx[seg_no+1]) |
| 3503 | break; | 3504 | break; |
| 3504 | } | 3505 | } |
diff --git a/drivers/staging/rts_pstor/rtsx.c b/drivers/staging/rts_pstor/rtsx.c index a7feb3e328a0..1dccd933a7e4 100644 --- a/drivers/staging/rts_pstor/rtsx.c +++ b/drivers/staging/rts_pstor/rtsx.c | |||
| @@ -1000,6 +1000,11 @@ static int __devinit rtsx_probe(struct pci_dev *pci, | |||
| 1000 | 1000 | ||
| 1001 | rtsx_init_chip(dev->chip); | 1001 | rtsx_init_chip(dev->chip); |
| 1002 | 1002 | ||
| 1003 | /* set the supported max_lun and max_id for the scsi host | ||
| 1004 | * NOTE: the minimal value of max_id is 1 */ | ||
| 1005 | host->max_id = 1; | ||
| 1006 | host->max_lun = dev->chip->max_lun; | ||
| 1007 | |||
| 1003 | /* Start up our control thread */ | 1008 | /* Start up our control thread */ |
| 1004 | th = kthread_run(rtsx_control_thread, dev, CR_DRIVER_NAME); | 1009 | th = kthread_run(rtsx_control_thread, dev, CR_DRIVER_NAME); |
| 1005 | if (IS_ERR(th)) { | 1010 | if (IS_ERR(th)) { |
diff --git a/drivers/staging/rts_pstor/rtsx_transport.c b/drivers/staging/rts_pstor/rtsx_transport.c index 4e3d2c106af0..9b2e5c99870f 100644 --- a/drivers/staging/rts_pstor/rtsx_transport.c +++ b/drivers/staging/rts_pstor/rtsx_transport.c | |||
| @@ -335,6 +335,7 @@ static int rtsx_transfer_sglist_adma_partial(struct rtsx_chip *chip, u8 card, | |||
| 335 | int sg_cnt, i, resid; | 335 | int sg_cnt, i, resid; |
| 336 | int err = 0; | 336 | int err = 0; |
| 337 | long timeleft; | 337 | long timeleft; |
| 338 | struct scatterlist *sg_ptr; | ||
| 338 | u32 val = TRIG_DMA; | 339 | u32 val = TRIG_DMA; |
| 339 | 340 | ||
| 340 | if ((sg == NULL) || (num_sg <= 0) || !offset || !index) | 341 | if ((sg == NULL) || (num_sg <= 0) || !offset || !index) |
| @@ -371,7 +372,7 @@ static int rtsx_transfer_sglist_adma_partial(struct rtsx_chip *chip, u8 card, | |||
| 371 | sg_cnt = dma_map_sg(&(rtsx->pci->dev), sg, num_sg, dma_dir); | 372 | sg_cnt = dma_map_sg(&(rtsx->pci->dev), sg, num_sg, dma_dir); |
| 372 | 373 | ||
| 373 | resid = size; | 374 | resid = size; |
| 374 | 375 | sg_ptr = sg; | |
| 375 | chip->sgi = 0; | 376 | chip->sgi = 0; |
| 376 | /* Usually the next entry will be @sg@ + 1, but if this sg element | 377 | /* Usually the next entry will be @sg@ + 1, but if this sg element |
| 377 | * is part of a chained scatterlist, it could jump to the start of | 378 | * is part of a chained scatterlist, it could jump to the start of |
| @@ -379,14 +380,14 @@ static int rtsx_transfer_sglist_adma_partial(struct rtsx_chip *chip, u8 card, | |||
| 379 | * the proper sg | 380 | * the proper sg |
| 380 | */ | 381 | */ |
| 381 | for (i = 0; i < *index; i++) | 382 | for (i = 0; i < *index; i++) |
| 382 | sg = sg_next(sg); | 383 | sg_ptr = sg_next(sg_ptr); |
| 383 | for (i = *index; i < sg_cnt; i++) { | 384 | for (i = *index; i < sg_cnt; i++) { |
| 384 | dma_addr_t addr; | 385 | dma_addr_t addr; |
| 385 | unsigned int len; | 386 | unsigned int len; |
| 386 | u8 option; | 387 | u8 option; |
| 387 | 388 | ||
| 388 | addr = sg_dma_address(sg); | 389 | addr = sg_dma_address(sg_ptr); |
| 389 | len = sg_dma_len(sg); | 390 | len = sg_dma_len(sg_ptr); |
| 390 | 391 | ||
| 391 | RTSX_DEBUGP("DMA addr: 0x%x, Len: 0x%x\n", | 392 | RTSX_DEBUGP("DMA addr: 0x%x, Len: 0x%x\n", |
| 392 | (unsigned int)addr, len); | 393 | (unsigned int)addr, len); |
| @@ -415,7 +416,7 @@ static int rtsx_transfer_sglist_adma_partial(struct rtsx_chip *chip, u8 card, | |||
| 415 | if (!resid) | 416 | if (!resid) |
| 416 | break; | 417 | break; |
| 417 | 418 | ||
| 418 | sg = sg_next(sg); | 419 | sg_ptr = sg_next(sg_ptr); |
| 419 | } | 420 | } |
| 420 | 421 | ||
| 421 | RTSX_DEBUGP("SG table count = %d\n", chip->sgi); | 422 | RTSX_DEBUGP("SG table count = %d\n", chip->sgi); |
diff --git a/drivers/staging/sbe-2t3e3/io.c b/drivers/staging/sbe-2t3e3/io.c index b458ff034067..9a50bcc59594 100644 --- a/drivers/staging/sbe-2t3e3/io.c +++ b/drivers/staging/sbe-2t3e3/io.c | |||
| @@ -11,7 +11,6 @@ | |||
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <linux/ip.h> | 13 | #include <linux/ip.h> |
| 14 | #include <asm/system.h> | ||
| 15 | #include "2t3e3.h" | 14 | #include "2t3e3.h" |
| 16 | #include "ctrl.h" | 15 | #include "ctrl.h" |
| 17 | 16 | ||
diff --git a/drivers/staging/sep/sep_main.c b/drivers/staging/sep/sep_main.c index ad54c2e5c932..f1701bc6e312 100644 --- a/drivers/staging/sep/sep_main.c +++ b/drivers/staging/sep/sep_main.c | |||
| @@ -3114,7 +3114,7 @@ static long sep_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
| 3114 | current->pid); | 3114 | current->pid); |
| 3115 | if (1 == test_bit(SEP_LEGACY_SENDMSG_DONE_OFFSET, | 3115 | if (1 == test_bit(SEP_LEGACY_SENDMSG_DONE_OFFSET, |
| 3116 | &call_status->status)) { | 3116 | &call_status->status)) { |
| 3117 | dev_warn(&sep->pdev->dev, | 3117 | dev_dbg(&sep->pdev->dev, |
| 3118 | "[PID%d] dcb prep needed before send msg\n", | 3118 | "[PID%d] dcb prep needed before send msg\n", |
| 3119 | current->pid); | 3119 | current->pid); |
| 3120 | error = -EPROTO; | 3120 | error = -EPROTO; |
| @@ -3122,9 +3122,9 @@ static long sep_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
| 3122 | } | 3122 | } |
| 3123 | 3123 | ||
| 3124 | if (!arg) { | 3124 | if (!arg) { |
| 3125 | dev_warn(&sep->pdev->dev, | 3125 | dev_dbg(&sep->pdev->dev, |
| 3126 | "[PID%d] dcb null arg\n", current->pid); | 3126 | "[PID%d] dcb null arg\n", current->pid); |
| 3127 | error = EINVAL; | 3127 | error = -EINVAL; |
| 3128 | goto end_function; | 3128 | goto end_function; |
| 3129 | } | 3129 | } |
| 3130 | 3130 | ||
diff --git a/drivers/staging/ste_rmi4/Makefile b/drivers/staging/ste_rmi4/Makefile index 176f46900571..e4c03351420f 100644 --- a/drivers/staging/ste_rmi4/Makefile +++ b/drivers/staging/ste_rmi4/Makefile | |||
| @@ -2,4 +2,4 @@ | |||
| 2 | # Makefile for the RMI4 touchscreen driver. | 2 | # Makefile for the RMI4 touchscreen driver. |
| 3 | # | 3 | # |
| 4 | obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4) += synaptics_i2c_rmi4.o | 4 | obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4) += synaptics_i2c_rmi4.o |
| 5 | obj-$(CONFIG_MACH_U8500) += board-mop500-u8500uib-rmi4.o | 5 | obj-$(CONFIG_MACH_MOP500) += board-mop500-u8500uib-rmi4.o |
diff --git a/drivers/staging/telephony/phonedev.c b/drivers/staging/telephony/phonedev.c index 1915af201175..1dd0b6717ccc 100644 --- a/drivers/staging/telephony/phonedev.c +++ b/drivers/staging/telephony/phonedev.c | |||
| @@ -24,7 +24,6 @@ | |||
| 24 | #include <linux/phonedev.h> | 24 | #include <linux/phonedev.h> |
| 25 | #include <linux/init.h> | 25 | #include <linux/init.h> |
| 26 | #include <asm/uaccess.h> | 26 | #include <asm/uaccess.h> |
| 27 | #include <asm/system.h> | ||
| 28 | 27 | ||
| 29 | #include <linux/kmod.h> | 28 | #include <linux/kmod.h> |
| 30 | #include <linux/sem.h> | 29 | #include <linux/sem.h> |
diff --git a/drivers/staging/tidspbridge/include/dspbridge/host_os.h b/drivers/staging/tidspbridge/include/dspbridge/host_os.h index a2f31c69d12e..ed00d3da3205 100644 --- a/drivers/staging/tidspbridge/include/dspbridge/host_os.h +++ b/drivers/staging/tidspbridge/include/dspbridge/host_os.h | |||
| @@ -17,7 +17,6 @@ | |||
| 17 | #ifndef _HOST_OS_H_ | 17 | #ifndef _HOST_OS_H_ |
| 18 | #define _HOST_OS_H_ | 18 | #define _HOST_OS_H_ |
| 19 | 19 | ||
| 20 | #include <asm/system.h> | ||
| 21 | #include <linux/atomic.h> | 20 | #include <linux/atomic.h> |
| 22 | #include <linux/semaphore.h> | 21 | #include <linux/semaphore.h> |
| 23 | #include <linux/uaccess.h> | 22 | #include <linux/uaccess.h> |
diff --git a/drivers/staging/vme/devices/vme_pio2_core.c b/drivers/staging/vme/devices/vme_pio2_core.c index 9fedc442a779..573c80003f0c 100644 --- a/drivers/staging/vme/devices/vme_pio2_core.c +++ b/drivers/staging/vme/devices/vme_pio2_core.c | |||
| @@ -35,10 +35,10 @@ static int vector[PIO2_CARDS_MAX]; | |||
| 35 | static int vector_num; | 35 | static int vector_num; |
| 36 | static int level[PIO2_CARDS_MAX]; | 36 | static int level[PIO2_CARDS_MAX]; |
| 37 | static int level_num; | 37 | static int level_num; |
| 38 | static const char *variant[PIO2_CARDS_MAX]; | 38 | static char *variant[PIO2_CARDS_MAX]; |
| 39 | static int variant_num; | 39 | static int variant_num; |
| 40 | 40 | ||
| 41 | static int loopback; | 41 | static bool loopback; |
| 42 | 42 | ||
| 43 | static int pio2_match(struct vme_dev *); | 43 | static int pio2_match(struct vme_dev *); |
| 44 | static int __devinit pio2_probe(struct vme_dev *); | 44 | static int __devinit pio2_probe(struct vme_dev *); |
diff --git a/drivers/staging/vt6655/key.c b/drivers/staging/vt6655/key.c index 0ff8d7bbf2a7..774b0d4a7e06 100644 --- a/drivers/staging/vt6655/key.c +++ b/drivers/staging/vt6655/key.c | |||
| @@ -655,6 +655,9 @@ bool KeybSetDefaultKey ( | |||
| 655 | return (false); | 655 | return (false); |
| 656 | } | 656 | } |
| 657 | 657 | ||
| 658 | if (uKeyLength > MAX_KEY_LEN) | ||
| 659 | return false; | ||
| 660 | |||
| 658 | pTable->KeyTable[MAX_KEY_TABLE-1].bInUse = true; | 661 | pTable->KeyTable[MAX_KEY_TABLE-1].bInUse = true; |
| 659 | for(ii=0;ii<ETH_ALEN;ii++) | 662 | for(ii=0;ii<ETH_ALEN;ii++) |
| 660 | pTable->KeyTable[MAX_KEY_TABLE-1].abyBSSID[ii] = 0xFF; | 663 | pTable->KeyTable[MAX_KEY_TABLE-1].abyBSSID[ii] = 0xFF; |
diff --git a/drivers/staging/vt6656/ioctl.c b/drivers/staging/vt6656/ioctl.c index 1463d76895f0..d59456c29df1 100644 --- a/drivers/staging/vt6656/ioctl.c +++ b/drivers/staging/vt6656/ioctl.c | |||
| @@ -565,7 +565,7 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) | |||
| 565 | result = -ENOMEM; | 565 | result = -ENOMEM; |
| 566 | break; | 566 | break; |
| 567 | } | 567 | } |
| 568 | pNodeList = (PSNodeList)kmalloc(sizeof(SNodeList) + (sNodeList.uItem * sizeof(SNodeItem)), (int)GFP_ATOMIC); | 568 | pNodeList = kmalloc(sizeof(SNodeList) + (sNodeList.uItem * sizeof(SNodeItem)), (int)GFP_ATOMIC); |
| 569 | if (pNodeList == NULL) { | 569 | if (pNodeList == NULL) { |
| 570 | result = -ENOMEM; | 570 | result = -ENOMEM; |
| 571 | break; | 571 | break; |
| @@ -601,6 +601,7 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) | |||
| 601 | } | 601 | } |
| 602 | } | 602 | } |
| 603 | if (copy_to_user(pReq->data, pNodeList, sizeof(SNodeList) + (sNodeList.uItem * sizeof(SNodeItem)))) { | 603 | if (copy_to_user(pReq->data, pNodeList, sizeof(SNodeList) + (sNodeList.uItem * sizeof(SNodeItem)))) { |
| 604 | kfree(pNodeList); | ||
| 604 | result = -EFAULT; | 605 | result = -EFAULT; |
| 605 | break; | 606 | break; |
| 606 | } | 607 | } |
diff --git a/drivers/staging/vt6656/key.c b/drivers/staging/vt6656/key.c index 27bb523c8a97..ee62a06a75f4 100644 --- a/drivers/staging/vt6656/key.c +++ b/drivers/staging/vt6656/key.c | |||
| @@ -684,6 +684,9 @@ BOOL KeybSetDefaultKey( | |||
| 684 | return (FALSE); | 684 | return (FALSE); |
| 685 | } | 685 | } |
| 686 | 686 | ||
| 687 | if (uKeyLength > MAX_KEY_LEN) | ||
| 688 | return false; | ||
| 689 | |||
| 687 | pTable->KeyTable[MAX_KEY_TABLE-1].bInUse = TRUE; | 690 | pTable->KeyTable[MAX_KEY_TABLE-1].bInUse = TRUE; |
| 688 | for (ii = 0; ii < ETH_ALEN; ii++) | 691 | for (ii = 0; ii < ETH_ALEN; ii++) |
| 689 | pTable->KeyTable[MAX_KEY_TABLE-1].abyBSSID[ii] = 0xFF; | 692 | pTable->KeyTable[MAX_KEY_TABLE-1].abyBSSID[ii] = 0xFF; |
diff --git a/drivers/staging/wlags49_h2/hcf.c b/drivers/staging/wlags49_h2/hcf.c index b008773323b3..5957c3a439ac 100644 --- a/drivers/staging/wlags49_h2/hcf.c +++ b/drivers/staging/wlags49_h2/hcf.c | |||
| @@ -91,6 +91,7 @@ | |||
| 91 | #include "hcf.h" // HCF and MSF common include file | 91 | #include "hcf.h" // HCF and MSF common include file |
| 92 | #include "hcfdef.h" // HCF specific include file | 92 | #include "hcfdef.h" // HCF specific include file |
| 93 | #include "mmd.h" // MoreModularDriver common include file | 93 | #include "mmd.h" // MoreModularDriver common include file |
| 94 | #include <linux/bug.h> | ||
| 94 | #include <linux/kernel.h> | 95 | #include <linux/kernel.h> |
| 95 | 96 | ||
| 96 | #if ! defined offsetof | 97 | #if ! defined offsetof |
diff --git a/drivers/staging/wlags49_h2/wl_cs.c b/drivers/staging/wlags49_h2/wl_cs.c index a2cbb29c3f59..7084f414846e 100644 --- a/drivers/staging/wlags49_h2/wl_cs.c +++ b/drivers/staging/wlags49_h2/wl_cs.c | |||
| @@ -74,7 +74,6 @@ | |||
| 74 | #include <linux/in.h> | 74 | #include <linux/in.h> |
| 75 | #include <linux/delay.h> | 75 | #include <linux/delay.h> |
| 76 | #include <asm/io.h> | 76 | #include <asm/io.h> |
| 77 | #include <asm/system.h> | ||
| 78 | #include <asm/bitops.h> | 77 | #include <asm/bitops.h> |
| 79 | 78 | ||
| 80 | #include <linux/netdevice.h> | 79 | #include <linux/netdevice.h> |
diff --git a/drivers/staging/wlags49_h2/wl_main.c b/drivers/staging/wlags49_h2/wl_main.c index dab603e0f452..d5bf0a7012f2 100644 --- a/drivers/staging/wlags49_h2/wl_main.c +++ b/drivers/staging/wlags49_h2/wl_main.c | |||
| @@ -86,8 +86,7 @@ | |||
| 86 | // #include <linux/in.h> | 86 | // #include <linux/in.h> |
| 87 | // #include <linux/delay.h> | 87 | // #include <linux/delay.h> |
| 88 | // #include <asm/io.h> | 88 | // #include <asm/io.h> |
| 89 | // #include <asm/system.h> | 89 | // // #include <asm/bitops.h> |
| 90 | // #include <asm/bitops.h> | ||
| 91 | #include <linux/unistd.h> | 90 | #include <linux/unistd.h> |
| 92 | #include <asm/uaccess.h> | 91 | #include <asm/uaccess.h> |
| 93 | 92 | ||
diff --git a/drivers/staging/wlags49_h2/wl_netdev.c b/drivers/staging/wlags49_h2/wl_netdev.c index 9c16f5478a75..90820ff1aced 100644 --- a/drivers/staging/wlags49_h2/wl_netdev.c +++ b/drivers/staging/wlags49_h2/wl_netdev.c | |||
| @@ -79,8 +79,7 @@ | |||
| 79 | // #include <linux/delay.h> | 79 | // #include <linux/delay.h> |
| 80 | // #include <linux/skbuff.h> | 80 | // #include <linux/skbuff.h> |
| 81 | // #include <asm/io.h> | 81 | // #include <asm/io.h> |
| 82 | // #include <asm/system.h> | 82 | // // #include <asm/bitops.h> |
| 83 | // #include <asm/bitops.h> | ||
| 84 | 83 | ||
| 85 | #include <linux/netdevice.h> | 84 | #include <linux/netdevice.h> |
| 86 | #include <linux/ethtool.h> | 85 | #include <linux/ethtool.h> |
diff --git a/drivers/staging/wlags49_h2/wl_pci.c b/drivers/staging/wlags49_h2/wl_pci.c index 2bd9b84ace8e..3df990c7306a 100644 --- a/drivers/staging/wlags49_h2/wl_pci.c +++ b/drivers/staging/wlags49_h2/wl_pci.c | |||
| @@ -77,7 +77,6 @@ | |||
| 77 | #include <linux/interrupt.h> | 77 | #include <linux/interrupt.h> |
| 78 | #include <linux/in.h> | 78 | #include <linux/in.h> |
| 79 | #include <linux/delay.h> | 79 | #include <linux/delay.h> |
| 80 | #include <asm/system.h> | ||
| 81 | #include <asm/io.h> | 80 | #include <asm/io.h> |
| 82 | #include <asm/irq.h> | 81 | #include <asm/irq.h> |
| 83 | #include <asm/bitops.h> | 82 | #include <asm/bitops.h> |
diff --git a/drivers/staging/wlags49_h2/wl_util.c b/drivers/staging/wlags49_h2/wl_util.c index b748a3ff7954..f104e6f1e980 100644 --- a/drivers/staging/wlags49_h2/wl_util.c +++ b/drivers/staging/wlags49_h2/wl_util.c | |||
| @@ -73,8 +73,7 @@ | |||
| 73 | // #include <linux/in.h> | 73 | // #include <linux/in.h> |
| 74 | // #include <linux/delay.h> | 74 | // #include <linux/delay.h> |
| 75 | // #include <asm/io.h> | 75 | // #include <asm/io.h> |
| 76 | // #include <asm/system.h> | 76 | // // #include <asm/bitops.h> |
| 77 | // #include <asm/bitops.h> | ||
| 78 | 77 | ||
| 79 | #include <linux/netdevice.h> | 78 | #include <linux/netdevice.h> |
| 80 | #include <linux/etherdevice.h> | 79 | #include <linux/etherdevice.h> |
diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c index 94d5c35e22fb..3650bbff7686 100644 --- a/drivers/staging/xgifb/vb_init.c +++ b/drivers/staging/xgifb/vb_init.c | |||
| @@ -61,7 +61,7 @@ XGINew_GetXG20DRAMType(struct xgi_hw_device_info *HwDeviceExtension, | |||
| 61 | } | 61 | } |
| 62 | temp = xgifb_reg_get(pVBInfo->P3c4, 0x3B); | 62 | temp = xgifb_reg_get(pVBInfo->P3c4, 0x3B); |
| 63 | /* SR3B[7][3]MAA15 MAA11 (Power on Trapping) */ | 63 | /* SR3B[7][3]MAA15 MAA11 (Power on Trapping) */ |
| 64 | if ((temp & 0x88) == 0x80) | 64 | if (((temp & 0x88) == 0x80) || ((temp & 0x88) == 0x08)) |
| 65 | data = 0; /* DDR */ | 65 | data = 0; /* DDR */ |
| 66 | else | 66 | else |
| 67 | data = 1; /* DDRII */ | 67 | data = 1; /* DDRII */ |
diff --git a/drivers/staging/xgifb/vb_setmode.c b/drivers/staging/xgifb/vb_setmode.c index 2919924213c4..60d4adf99923 100644 --- a/drivers/staging/xgifb/vb_setmode.c +++ b/drivers/staging/xgifb/vb_setmode.c | |||
| @@ -152,6 +152,7 @@ void InitTo330Pointer(unsigned char ChipType, struct vb_device_info *pVBInfo) | |||
| 152 | pVBInfo->pXGINew_CR97 = &XG20_CR97; | 152 | pVBInfo->pXGINew_CR97 = &XG20_CR97; |
| 153 | 153 | ||
| 154 | if (ChipType == XG27) { | 154 | if (ChipType == XG27) { |
| 155 | unsigned char temp; | ||
| 155 | pVBInfo->MCLKData | 156 | pVBInfo->MCLKData |
| 156 | = (struct SiS_MCLKData *) XGI27New_MCLKData; | 157 | = (struct SiS_MCLKData *) XGI27New_MCLKData; |
| 157 | pVBInfo->CR40 = XGI27_cr41; | 158 | pVBInfo->CR40 = XGI27_cr41; |
| @@ -162,7 +163,13 @@ void InitTo330Pointer(unsigned char ChipType, struct vb_device_info *pVBInfo) | |||
| 162 | pVBInfo->pCRDE = XG27_CRDE; | 163 | pVBInfo->pCRDE = XG27_CRDE; |
| 163 | pVBInfo->pSR40 = &XG27_SR40; | 164 | pVBInfo->pSR40 = &XG27_SR40; |
| 164 | pVBInfo->pSR41 = &XG27_SR41; | 165 | pVBInfo->pSR41 = &XG27_SR41; |
| 166 | pVBInfo->SR15 = XG27_SR13; | ||
| 165 | 167 | ||
| 168 | /*Z11m DDR*/ | ||
| 169 | temp = xgifb_reg_get(pVBInfo->P3c4, 0x3B); | ||
| 170 | /* SR3B[7][3]MAA15 MAA11 (Power on Trapping) */ | ||
| 171 | if (((temp & 0x88) == 0x80) || ((temp & 0x88) == 0x08)) | ||
| 172 | pVBInfo->pXGINew_CR97 = &Z11m_CR97; | ||
| 166 | } | 173 | } |
| 167 | 174 | ||
| 168 | if (ChipType >= XG20) { | 175 | if (ChipType >= XG20) { |
diff --git a/drivers/staging/xgifb/vb_table.h b/drivers/staging/xgifb/vb_table.h index dddf261ed53d..e8d6f674b274 100644 --- a/drivers/staging/xgifb/vb_table.h +++ b/drivers/staging/xgifb/vb_table.h | |||
| @@ -33,6 +33,13 @@ static struct XGI_ECLKDataStruct XGI340_ECLKData[] = { | |||
| 33 | {0x5c, 0x23, 0x01, 166} | 33 | {0x5c, 0x23, 0x01, 166} |
| 34 | }; | 34 | }; |
| 35 | 35 | ||
| 36 | static unsigned char XG27_SR13[4][8] = { | ||
| 37 | {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */ | ||
| 38 | {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */ | ||
| 39 | {0x32, 0x32, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR18 */ | ||
| 40 | {0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00} /* SR1B */ | ||
| 41 | }; | ||
| 42 | |||
| 36 | static unsigned char XGI340_SR13[4][8] = { | 43 | static unsigned char XGI340_SR13[4][8] = { |
| 37 | {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */ | 44 | {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */ |
| 38 | {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */ | 45 | {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */ |
| @@ -71,7 +78,7 @@ static unsigned char XGI27_cr41[24][8] = { | |||
| 71 | {0x20, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */ | 78 | {0x20, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */ |
| 72 | {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */ | 79 | {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */ |
| 73 | {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */ | 80 | {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */ |
| 74 | {0xB5, 0x13, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 3 CR40[7], | 81 | {0xB3, 0x13, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 3 CR40[7], |
| 75 | CR99[2:0], | 82 | CR99[2:0], |
| 76 | CR45[3:0]*/ | 83 | CR45[3:0]*/ |
| 77 | {0xf0, 0xf5, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 4 CR59 */ | 84 | {0xf0, 0xf5, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 4 CR59 */ |
| @@ -2803,6 +2810,8 @@ static unsigned char XG27_CRDE[2]; | |||
| 2803 | static unsigned char XG27_SR40 = 0x04 ; | 2810 | static unsigned char XG27_SR40 = 0x04 ; |
| 2804 | static unsigned char XG27_SR41 = 0x00 ; | 2811 | static unsigned char XG27_SR41 = 0x00 ; |
| 2805 | 2812 | ||
| 2813 | static unsigned char Z11m_CR97 = 0x80 ; | ||
| 2814 | |||
| 2806 | static struct XGI330_VCLKDataStruct XGI_VCLKData[] = { | 2815 | static struct XGI330_VCLKDataStruct XGI_VCLKData[] = { |
| 2807 | /* SR2B,SR2C,SR2D */ | 2816 | /* SR2B,SR2C,SR2D */ |
| 2808 | {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */ | 2817 | {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */ |
diff --git a/drivers/staging/zsmalloc/zsmalloc-main.c b/drivers/staging/zsmalloc/zsmalloc-main.c index 09caa4f2687e..917461c66014 100644 --- a/drivers/staging/zsmalloc/zsmalloc-main.c +++ b/drivers/staging/zsmalloc/zsmalloc-main.c | |||
| @@ -267,33 +267,39 @@ static unsigned long obj_idx_to_offset(struct page *page, | |||
| 267 | return off + obj_idx * class_size; | 267 | return off + obj_idx * class_size; |
| 268 | } | 268 | } |
| 269 | 269 | ||
| 270 | static void reset_page(struct page *page) | ||
| 271 | { | ||
| 272 | clear_bit(PG_private, &page->flags); | ||
| 273 | clear_bit(PG_private_2, &page->flags); | ||
| 274 | set_page_private(page, 0); | ||
| 275 | page->mapping = NULL; | ||
| 276 | page->freelist = NULL; | ||
| 277 | reset_page_mapcount(page); | ||
| 278 | } | ||
| 279 | |||
| 270 | static void free_zspage(struct page *first_page) | 280 | static void free_zspage(struct page *first_page) |
| 271 | { | 281 | { |
| 272 | struct page *nextp, *tmp; | 282 | struct page *nextp, *tmp, *head_extra; |
| 273 | 283 | ||
| 274 | BUG_ON(!is_first_page(first_page)); | 284 | BUG_ON(!is_first_page(first_page)); |
| 275 | BUG_ON(first_page->inuse); | 285 | BUG_ON(first_page->inuse); |
| 276 | 286 | ||
| 277 | nextp = (struct page *)page_private(first_page); | 287 | head_extra = (struct page *)page_private(first_page); |
| 278 | 288 | ||
| 279 | clear_bit(PG_private, &first_page->flags); | 289 | reset_page(first_page); |
| 280 | clear_bit(PG_private_2, &first_page->flags); | ||
| 281 | set_page_private(first_page, 0); | ||
| 282 | first_page->mapping = NULL; | ||
| 283 | first_page->freelist = NULL; | ||
| 284 | reset_page_mapcount(first_page); | ||
| 285 | __free_page(first_page); | 290 | __free_page(first_page); |
| 286 | 291 | ||
| 287 | /* zspage with only 1 system page */ | 292 | /* zspage with only 1 system page */ |
| 288 | if (!nextp) | 293 | if (!head_extra) |
| 289 | return; | 294 | return; |
| 290 | 295 | ||
| 291 | list_for_each_entry_safe(nextp, tmp, &nextp->lru, lru) { | 296 | list_for_each_entry_safe(nextp, tmp, &head_extra->lru, lru) { |
| 292 | list_del(&nextp->lru); | 297 | list_del(&nextp->lru); |
| 293 | clear_bit(PG_private_2, &nextp->flags); | 298 | reset_page(nextp); |
| 294 | nextp->index = 0; | ||
| 295 | __free_page(nextp); | 299 | __free_page(nextp); |
| 296 | } | 300 | } |
| 301 | reset_page(head_extra); | ||
| 302 | __free_page(head_extra); | ||
| 297 | } | 303 | } |
| 298 | 304 | ||
| 299 | /* Initialize a newly allocated zspage */ | 305 | /* Initialize a newly allocated zspage */ |
