V4L/DVB: tm6000: README - add vbi
[safe/jmp/linux-2.6] / drivers / block / ps3vram.c
index c8753a9..b3bdb8a 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/delay.h>
 #include <linux/proc_fs.h>
 #include <linux/seq_file.h>
+#include <linux/slab.h>
 
 #include <asm/cell-regs.h>
 #include <asm/firmware.h>
@@ -88,7 +89,7 @@ struct ps3vram_priv {
 static int ps3vram_major;
 
 
-static struct block_device_operations ps3vram_fops = {
+static const struct block_device_operations ps3vram_fops = {
        .owner          = THIS_MODULE,
 };
 
@@ -123,7 +124,15 @@ static int ps3vram_notifier_wait(struct ps3_system_bus_device *dev,
 {
        struct ps3vram_priv *priv = ps3_system_bus_get_drvdata(dev);
        u32 *notify = ps3vram_get_notifier(priv->reports, NOTIFIER);
-       unsigned long timeout = jiffies + msecs_to_jiffies(timeout_ms);
+       unsigned long timeout;
+
+       for (timeout = 20; timeout; timeout--) {
+               if (!notify[3])
+                       return 0;
+               udelay(10);
+       }
+
+       timeout = jiffies + msecs_to_jiffies(timeout_ms);
 
        do {
                if (!notify[3])
@@ -743,10 +752,9 @@ static int __devinit ps3vram_probe(struct ps3_system_bus_device *dev)
        priv->queue = queue;
        queue->queuedata = dev;
        blk_queue_make_request(queue, ps3vram_make_request);
-       blk_queue_max_phys_segments(queue, MAX_PHYS_SEGMENTS);
-       blk_queue_max_hw_segments(queue, MAX_HW_SEGMENTS);
-       blk_queue_max_segment_size(queue, MAX_SEGMENT_SIZE);
-       blk_queue_max_sectors(queue, SAFE_MAX_SECTORS);
+       blk_queue_max_segments(queue, BLK_MAX_SEGMENTS);
+       blk_queue_max_segment_size(queue, BLK_MAX_SEGMENT_SIZE);
+       blk_queue_max_hw_sectors(queue, BLK_SAFE_MAX_SECTORS);
 
        gendisk = alloc_disk(1);
        if (!gendisk) {