*
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
  */
 
 static void free_command(struct kobject *kobj)
 {
        struct command *cmd = to_command(kobj);
- 
+
        list_del(&cmd->queue_node);
        atomic_dec(&command_count);
        dbg("command count: %d\n", atomic_read(&command_count));
                exec_next_command(sp);
        }
 }
-       
+
 /**
  * exec_command
  * send a command to a service processor
  * Commands are executed sequentially. One command (sp->current_command)
  * is sent to the service processor. Once the interrupt handler gets a
  * message of type command_response, the message is copied into
- * the current commands buffer, 
+ * the current commands buffer,
  */
 void ibmasm_exec_command(struct service_processor *sp, struct command *cmd)
 {
        }
 }
 
-/** 
+/**
  * Sleep until a command has failed or a response has been received
  * and the command status been updated by the interrupt handler.
  * (see receive_response).
 {
        struct command *cmd = sp->current_command;
 
-       if (!sp->current_command) 
-               return; 
+       if (!sp->current_command)
+               return;
 
        memcpy_fromio(cmd->buffer, response, min(size, cmd->buffer_size));
        cmd->status = IBMASM_CMD_COMPLETE;
 
  *
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
  */
 
                size = message_size;
 
        switch (header->type) {
-       case sp_event: 
+       case sp_event:
                ibmasm_receive_event(sp, message, size);
                break;
        case sp_command_response:
-               ibmasm_receive_command_response(sp, message, size); 
+               ibmasm_receive_command_response(sp, message, size);
                break;
        case sp_heartbeat:
                ibmasm_receive_heartbeat(sp, message, size);
        strcat(vpd_data, IBMASM_DRIVER_VPD);
        vpd_data[10] = 0;
        vpd_data[15] = 0;
-       
+
        ibmasm_exec_command(sp, command);
        ibmasm_wait_for_response(command, IBMASM_CMD_TIMEOUT_NORMAL);
 
  * During driver init this function is called with os state "up".
  * This causes the service processor to start sending heartbeats the
  * driver.
- * During driver exit the function is called with os state "down", 
+ * During driver exit the function is called with os state "down",
  * causing the service processor to stop the heartbeats.
  */
 int ibmasm_send_os_state(struct service_processor *sp, int os_state)
 
  *
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
  */
 
 
  *
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
  */
 
  * event readers.
  * There is no reader marker in the buffer, therefore readers are
  * responsible for keeping up with the writer, or they will loose events.
- */ 
+ */
 void ibmasm_receive_event(struct service_processor *sp, void *data, unsigned int data_size)
 {
        struct event_buffer *buffer = sp->event_buffer;
 
 static inline int event_available(struct event_buffer *b, struct event_reader *r)
 {
-       return  (r->next_serial_number < b->next_serial_number);
+       return (r->next_serial_number < b->next_serial_number);
 }
 
 /**
  * get_next_event
  * Called by event readers (initiated from user space through the file
- * system). 
+ * system).
  * Sleeps until a new event is available.
  */
 int ibmasm_get_next_event(struct service_processor *sp, struct event_reader *reader)
 
  *
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
  */
 
 
  *
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
  */
 
        u8      version;
        u8      message_flags;
        u16     message_size;
-       u8      target;           
+       u8      target;
        u8      initiator_and_target;
-       u8      initiator;        
+       u8      initiator;
        u8      function;
        u32     initiator_context;
 };
        size = sizeof(struct i2o_header) + data_size;
 
        i2o_size = size / sizeof(u32);
-       
+
        if (size % sizeof(u32))
               i2o_size++;
 
        return i2o_size;
-}      
+}
 
 static inline u32 incoming_data_size(struct i2o_message *i2o_message)
 {
 
  *
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
  */
 
        return buf;
 }
 
-#define IBMASM_CMD_PENDING     0       
-#define IBMASM_CMD_COMPLETE    1       
+#define IBMASM_CMD_PENDING     0
+#define IBMASM_CMD_COMPLETE    1
 #define IBMASM_CMD_FAILED      2
 
 #define IBMASM_CMD_TIMEOUT_NORMAL      45
 
  *
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
  */
 
 /*
- * Parts of this code are based on an article by Jonathan Corbet 
+ * Parts of this code are based on an article by Jonathan Corbet
  * that appeared in Linux Weekly News.
  */
 
  * For each service processor the following files are created:
  *
  * command: execute dot commands
- *     write: execute a dot command on the service processor
- *     read: return the result of a previously executed dot command
+ *     write: execute a dot command on the service processor
+ *     read: return the result of a previously executed dot command
  *
  * events: listen for service processor events
- *     read: sleep (interruptible) until an event occurs
+ *     read: sleep (interruptible) until an event occurs
  *      write: wakeup sleeping event listener
  *
  * reverse_heartbeat: send a heartbeat to the service processor
- *     read: sleep (interruptible) until the reverse heartbeat fails
+ *     read: sleep (interruptible) until the reverse heartbeat fails
  *      write: wakeup sleeping heartbeat listener
  *
  * remote_video/width
  * remote_video/height
  * remote_video/width: control remote display settings
- *     write: set value
- *     read: read value
+ *     write: set value
+ *     read: read value
  */
 
 #include <linux/fs.h>
 
 static struct dentry *ibmasmfs_create_file (struct super_block *sb,
                        struct dentry *parent,
-                       const char *name,
+                       const char *name,
                        const struct file_operations *fops,
                        void *data,
                        int mode)
        struct ibmasmfs_command_data *command_data = file->private_data;
 
        if (command_data->command)
-               command_put(command_data->command);     
+               command_put(command_data->command);
 
        kfree(command_data);
        return 0;
 static int event_file_open(struct inode *inode, struct file *file)
 {
        struct ibmasmfs_event_data *event_data;
-       struct service_processor *sp; 
+       struct service_processor *sp;
 
        if (!inode->i_private)
                return -ENODEV;
                kfree(buff);
                return -EFAULT;
        }
-       
+
        value = simple_strtoul(buff, NULL, 10);
        writel(value, address);
        kfree(buff);
 
  *
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
  */
 
 
  *
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
  */
 
 #define INTR_CONTROL_REGISTER  0x13A4
 
 #define SCOUT_COM_A_BASE         0x0000
-#define SCOUT_COM_B_BASE         0x0100   
-#define SCOUT_COM_C_BASE         0x0200   
-#define SCOUT_COM_D_BASE         0x0300   
+#define SCOUT_COM_B_BASE         0x0100
+#define SCOUT_COM_C_BASE         0x0200
+#define SCOUT_COM_D_BASE         0x0300
 
 static inline int sp_interrupt_pending(void __iomem *base_address)
 {
 
 static inline void enable_uart_interrupts(void __iomem *base_address)
 {
-       ibmasm_enable_interrupts(base_address, UART_INTR_MASK); 
+       ibmasm_enable_interrupts(base_address, UART_INTR_MASK);
 }
 
 static inline void disable_uart_interrupts(void __iomem *base_address)
 {
-       ibmasm_disable_interrupts(base_address, UART_INTR_MASK); 
+       ibmasm_disable_interrupts(base_address, UART_INTR_MASK);
 }
 
 #define valid_mfa(mfa) ( (mfa) != NO_MFAS_AVAILABLE )
 
 static inline void set_mfa_outbound(void __iomem *base_address, u32 mfa)
 {
-       writel(mfa, base_address + OUTBOUND_QUEUE_PORT);
+       writel(mfa, base_address + OUTBOUND_QUEUE_PORT);
 }
 
 static inline u32 get_mfa_inbound(void __iomem *base_address)
 
 static inline void set_mfa_inbound(void __iomem *base_address, u32 mfa)
 {
-       writel(mfa, base_address + INBOUND_QUEUE_PORT);
+       writel(mfa, base_address + INBOUND_QUEUE_PORT);
 }
 
 static inline struct i2o_message *get_i2o_message(void __iomem *base_address, u32 mfa)
 
  *
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
- * This driver is based on code originally written by Pete Reynolds 
+ * This driver is based on code originally written by Pete Reynolds
  * and others.
  *
  */
  *
  * 1) When loaded it sends a message to the service processor,
  * indicating that an OS is * running. This causes the service processor
- * to send periodic heartbeats to the OS. 
+ * to send periodic heartbeats to the OS.
  *
  * 2) Answers the periodic heartbeats sent by the service processor.
  * Failure to do so would result in system reboot.
  *
  * 3) Acts as a pass through for dot commands sent from user applications.
- * The interface for this is the ibmasmfs file system. 
+ * The interface for this is the ibmasmfs file system.
  *
  * 4) Allows user applications to register for event notification. Events
  * are sent to the driver through interrupts. They can be read from user
        }
 
        sp->irq = pdev->irq;
-       sp->base_address = ioremap(pci_resource_start(pdev, 0), 
+       sp->base_address = ioremap(pci_resource_start(pdev, 0),
                                        pci_resource_len(pdev, 0));
        if (sp->base_address == 0) {
                dev_err(sp->dev, "Failed to ioremap pci memory\n");
 
  *
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
  */
 
        unsigned char                   command[3];
 } rhb_dot_cmd = {
        .header = {
-               .type =         sp_read,
+               .type =         sp_read,
                .command_size = 3,
                .data_size =    0,
-               .status =       0
+               .status =       0
        },
        .command = { 4, 3, 6 }
 };
                if (cmd->status != IBMASM_CMD_COMPLETE)
                        times_failed++;
 
-               wait_event_interruptible_timeout(rhb->wait, 
+               wait_event_interruptible_timeout(rhb->wait,
                        rhb->stopped,
-                       REVERSE_HEARTBEAT_TIMEOUT * HZ);        
+                       REVERSE_HEARTBEAT_TIMEOUT * HZ);
 
                if (signal_pending(current) || rhb->stopped) {
                        result = -EINTR;
 
  *
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
  * Orignally written by Pete Reynolds
  */
 
 
 
-struct remote_input { 
+struct remote_input {
        union {
                struct mouse_input      mouse;
                struct keyboard_input   keyboard;
        unsigned char   pad3;
 };
 
-#define mouse_addr(sp)                 (sp->base_address + CONDOR_MOUSE_DATA)
+#define mouse_addr(sp)         (sp->base_address + CONDOR_MOUSE_DATA)
 #define display_width(sp)      (mouse_addr(sp) + CONDOR_INPUT_DISPLAY_RESX)
 #define display_height(sp)     (mouse_addr(sp) + CONDOR_INPUT_DISPLAY_RESY)
 #define display_depth(sp)      (mouse_addr(sp) + CONDOR_INPUT_DISPLAY_BITS)
 #define vnc_status(sp)         (mouse_addr(sp) + CONDOR_OUTPUT_VNC_STATUS)
 #define isr_control(sp)                (mouse_addr(sp) + CONDOR_MOUSE_ISR_CONTROL)
 
-#define mouse_interrupt_pending(sp)    readl(mouse_addr(sp) + CONDOR_MOUSE_ISR_STATUS)
+#define mouse_interrupt_pending(sp)    readl(mouse_addr(sp) + CONDOR_MOUSE_ISR_STATUS)
 #define clear_mouse_interrupt(sp)      writel(0, mouse_addr(sp) + CONDOR_MOUSE_ISR_STATUS)
 #define enable_mouse_interrupts(sp)    writel(1, mouse_addr(sp) + CONDOR_MOUSE_ISR_CONTROL)
 #define disable_mouse_interrupts(sp)   writel(0, mouse_addr(sp) + CONDOR_MOUSE_ISR_CONTROL)
 
  *
  * Copyright (C) IBM Corporation, 2004
  *
- * Author: Max Asböck <amax@us.ibm.com> 
+ * Author: Max Asböck <amax@us.ibm.com>
  *
  */