[PATCH] move drivers/macintosh variables to BSS

Benjamin Herrenschmidt benh at kernel.crashing.org
Wed Sep 27 08:45:19 EST 2006


On Tue, 2006-09-26 at 22:15 +0200, Olaf Hering wrote:
> Move all the initialized variables to bss and init them at runtime if needed.
> Mark a version string as const.

What is the point of that ?

> Signed-off-by: Olaf Hering <olaf at aepfle.de>
> 
> ---
>  drivers/macintosh/adbhid.c                |    4 ++--
>  drivers/macintosh/ans-lcd.c               |    6 ++++--
>  drivers/macintosh/apm_emu.c               |    2 +-
>  drivers/macintosh/mac_hid.c               |   10 ++++++----
>  drivers/macintosh/therm_adt746x.c         |    6 +++---
>  drivers/macintosh/via-cuda.c              |    2 +-
>  drivers/macintosh/via-macii.c             |   10 +++++-----
>  drivers/macintosh/via-maciisi.c           |    6 +++---
>  drivers/macintosh/via-pmu.c               |   22 ++++++++++++----------
>  drivers/macintosh/via-pmu68k.c            |    7 ++++---
>  drivers/macintosh/windfarm_pm112.c        |    3 ++-
>  drivers/macintosh/windfarm_smu_controls.c |    3 ++-
>  12 files changed, 45 insertions(+), 36 deletions(-)
> 
> Index: linux-2.6.18/drivers/macintosh/adbhid.c
> ===================================================================
> --- linux-2.6.18.orig/drivers/macintosh/adbhid.c
> +++ linux-2.6.18/drivers/macintosh/adbhid.c
> @@ -580,8 +580,8 @@ static struct adb_request led_request;
>  static int leds_pending[16];
>  static int leds_req_pending;
>  static int pending_devs[16];
> -static int pending_led_start=0;
> -static int pending_led_end=0;
> +static int pending_led_start;
> +static int pending_led_end;
>  static DEFINE_SPINLOCK(leds_lock);
>  
>  static void leds_done(struct adb_request *req)
> Index: linux-2.6.18/drivers/macintosh/ans-lcd.c
> ===================================================================
> --- linux-2.6.18.orig/drivers/macintosh/ans-lcd.c
> +++ linux-2.6.18/drivers/macintosh/ans-lcd.c
> @@ -21,8 +21,8 @@
>  #define ANSLCD_CTRL_IX 0x00
>  #define ANSLCD_DATA_IX 0x10
>  
> -static unsigned long anslcd_short_delay = 80;
> -static unsigned long anslcd_long_delay = 3280;
> +static unsigned long anslcd_short_delay;
> +static unsigned long anslcd_long_delay;
>  static volatile unsigned char __iomem *anslcd_ptr;
>  
>  #undef DEBUG
> @@ -164,6 +164,8 @@ anslcd_init(void)
>  	printk(KERN_DEBUG "LCD: init\n");
>  #endif
>  
> +	anslcd_short_delay = 80;
> +	anslcd_long_delay = 3280;
>  	anslcd_write_byte_ctrl ( 0x38 );
>  	anslcd_write_byte_ctrl ( 0x0c );
>  	anslcd_write_byte_ctrl ( 0x06 );
> Index: linux-2.6.18/drivers/macintosh/apm_emu.c
> ===================================================================
> --- linux-2.6.18.orig/drivers/macintosh/apm_emu.c
> +++ linux-2.6.18/drivers/macintosh/apm_emu.c
> @@ -102,7 +102,7 @@ static struct pmu_sleep_notifier apm_sle
>  	SLEEP_LEVEL_USERLAND,
>  };
>  
> -static char			driver_version[] = "0.5";	/* no spaces */
> +static const char driver_version[] = "0.5";	/* no spaces */
>  
>  #ifdef DEBUG
>  static char *	apm_event_name[] = {
> Index: linux-2.6.18/drivers/macintosh/mac_hid.c
> ===================================================================
> --- linux-2.6.18.orig/drivers/macintosh/mac_hid.c
> +++ linux-2.6.18/drivers/macintosh/mac_hid.c
> @@ -17,10 +17,10 @@
>  
>  static struct input_dev *emumousebtn;
>  static int emumousebtn_input_register(void);
> -static int mouse_emulate_buttons = 0;
> -static int mouse_button2_keycode = KEY_RIGHTCTRL;	/* right control key */
> -static int mouse_button3_keycode = KEY_RIGHTALT;	/* right option key */
> -static int mouse_last_keycode = 0;
> +static int mouse_emulate_buttons;
> +static int mouse_button2_keycode;
> +static int mouse_button3_keycode;
> +static int mouse_last_keycode;
>  
>  #if defined(CONFIG_SYSCTL)
>  /* file(s) in /proc/sys/dev/mac_hid */
> @@ -133,6 +133,8 @@ int __init mac_hid_init(void)
>  	if (err)
>  		return err;
>  
> +	mouse_button2_keycode = KEY_RIGHTCTRL;	/* right control key */
> +	mouse_button3_keycode = KEY_RIGHTALT;	/* right option key */
>  #if defined(CONFIG_SYSCTL)
>  	mac_hid_sysctl_header = register_sysctl_table(mac_hid_root_dir, 1);
>  #endif /* CONFIG_SYSCTL */
> Index: linux-2.6.18/drivers/macintosh/therm_adt746x.c
> ===================================================================
> --- linux-2.6.18.orig/drivers/macintosh/therm_adt746x.c
> +++ linux-2.6.18/drivers/macintosh/therm_adt746x.c
> @@ -47,11 +47,11 @@ static u8 FAN_SPD_SET[2] = {0x30, 0x31};
>  
>  static u8 default_limits_local[3] = {70, 50, 70};    /* local, sensor1, sensor2 */
>  static u8 default_limits_chip[3] = {80, 65, 80};    /* local, sensor1, sensor2 */
> -static char *sensor_location[3] = {NULL, NULL, NULL};
> +static char *sensor_location[3];
>  
> -static int limit_adjust = 0;
> +static int limit_adjust;
>  static int fan_speed = -1;
> -static int verbose = 0;
> +static int verbose;
>  
>  MODULE_AUTHOR("Colin Leroy <colin at colino.net>");
>  MODULE_DESCRIPTION("Driver for ADT746x thermostat in iBook G4 and "
> Index: linux-2.6.18/drivers/macintosh/via-cuda.c
> ===================================================================
> --- linux-2.6.18.orig/drivers/macintosh/via-cuda.c
> +++ linux-2.6.18/drivers/macintosh/via-cuda.c
> @@ -86,7 +86,7 @@ static int data_index;
>  #ifdef CONFIG_PPC
>  static struct device_node *vias;
>  #endif
> -static int cuda_fully_inited = 0;
> +static int cuda_fully_inited;
>  
>  #ifdef CONFIG_ADB
>  static int cuda_probe(void);
> Index: linux-2.6.18/drivers/macintosh/via-macii.c
> ===================================================================
> --- linux-2.6.18.orig/drivers/macintosh/via-macii.c
> +++ linux-2.6.18/drivers/macintosh/via-macii.c
> @@ -107,10 +107,10 @@ static enum macii_state {
>  	awaiting_reply
>  } macii_state;
>  
> -static int need_poll    = 0;
> -static int command_byte = 0;
> -static int last_reply   = 0;
> -static int last_active  = 0;
> +static int need_poll;
> +static int command_byte;
> +static int last_reply;
> +static int last_active;
>  
>  static struct adb_request *current_req;
>  static struct adb_request *last_req;
> @@ -124,7 +124,7 @@ static int first_byte;
>  static int prefix_len;
>  static int status = ST_IDLE|TREQ;
>  static int last_status;
> -static int driver_running = 0;
> +static int driver_running;
>  
>  /* debug level 10 required for ADB logging (should be && debug_adb, ideally) */
>  
> Index: linux-2.6.18/drivers/macintosh/via-maciisi.c
> ===================================================================
> --- linux-2.6.18.orig/drivers/macintosh/via-maciisi.c
> +++ linux-2.6.18/drivers/macintosh/via-maciisi.c
> @@ -63,10 +63,10 @@ static volatile unsigned char *via;
>  
>  #undef DEBUG_MACIISI_ADB
>  
> -static struct adb_request* current_req = NULL;
> -static struct adb_request* last_req = NULL;
> +static struct adb_request* current_req;
> +static struct adb_request* last_req;
>  static unsigned char maciisi_rbuf[16];
> -static unsigned char *reply_ptr = NULL;
> +static unsigned char *reply_ptr;
>  static int data_index;
>  static int reading_reply;
>  static int reply_len;
> Index: linux-2.6.18/drivers/macintosh/via-pmu.c
> ===================================================================
> --- linux-2.6.18.orig/drivers/macintosh/via-pmu.c
> +++ linux-2.6.18/drivers/macintosh/via-pmu.c
> @@ -139,14 +139,14 @@ static int data_len;
>  static volatile int adb_int_pending;
>  static volatile int disable_poll;
>  static struct device_node *vias;
> -static int pmu_kind = PMU_UNKNOWN;
> -static int pmu_fully_inited = 0;
> +static int pmu_kind;
> +static int pmu_fully_inited;
>  static int pmu_has_adb;
>  static struct device_node *gpio_node;
> -static unsigned char __iomem *gpio_reg = NULL;
> -static int gpio_irq = NO_IRQ;
> -static int gpio_irq_enabled = -1;
> -static volatile int pmu_suspended = 0;
> +static unsigned char __iomem *gpio_reg;
> +static int gpio_irq;
> +static int gpio_irq_enabled;
> +static volatile int pmu_suspended;
>  static spinlock_t pmu_lock;
>  static u8 pmu_intr_mask;
>  static int pmu_version;
> @@ -170,7 +170,7 @@ int pmu_battery_count;
>  int pmu_cur_battery;
>  unsigned int pmu_power_flags;
>  struct pmu_battery_info pmu_batteries[PMU_MAX_BATTERIES];
> -static int query_batt_timer = BATTERY_POLLING_COUNT;
> +static int query_batt_timer;
>  static struct adb_request batt_req;
>  static struct proc_dir_entry *proc_pmu_batt[PMU_MAX_BATTERIES];
>  
> @@ -179,7 +179,7 @@ int asleep;
>  BLOCKING_NOTIFIER_HEAD(sleep_notifier_list);
>  
>  #ifdef CONFIG_ADB
> -static int adb_dev_map = 0;
> +static int adb_dev_map;
>  static int pmu_adb_flags;
>  
>  static int pmu_probe(void);
> @@ -361,6 +361,7 @@ int __init find_via_pmu(void)
>  	       PMU_DRIVER_VERSION, pbook_type[pmu_kind], pmu_version);
>  	       
>  	sys_ctrler = SYS_CTRLER_PMU;
> +	query_batt_timer = BATTERY_POLLING_COUNT;
>  	
>  	return 1;
>   fail:
> @@ -414,10 +415,12 @@ static int __init via_pmu_start(void)
>  		if (gpio_node == NULL)
>  			gpio_node = of_find_node_by_name(NULL,
>  							 "pmu-interrupt");
> +		gpio_irq = NO_IRQ;
>  		if (gpio_node)
>  			gpio_irq = irq_of_parse_and_map(gpio_node, 0);
>  
>  		if (gpio_irq != NO_IRQ) {
> +			gpio_irq_enabled = -1;
>  			if (request_irq(gpio_irq, gpio1_interrupt, 0,
>  					"GPIO1 ADB", (void *)0))
>  				printk(KERN_ERR "pmu: can't get irq %d"
> @@ -2767,7 +2770,7 @@ pmu_polled_request(struct adb_request *r
>  
>  #if defined(CONFIG_PM) && defined(CONFIG_PPC32)
>  
> -static int pmu_sys_suspended = 0;
> +static int pmu_sys_suspended;
>  
>  static int pmu_sys_suspend(struct sys_device *sysdev, pm_message_t state)
>  {
> @@ -2807,7 +2810,6 @@ static struct sysdev_class pmu_sysclass 
>  };
>  
>  static struct sys_device device_pmu = {
> -	.id		= 0,
>  	.cls		= &pmu_sysclass,
>  };
>  
> Index: linux-2.6.18/drivers/macintosh/via-pmu68k.c
> ===================================================================
> --- linux-2.6.18.orig/drivers/macintosh/via-pmu68k.c
> +++ linux-2.6.18/drivers/macintosh/via-pmu68k.c
> @@ -96,10 +96,10 @@ static int data_index;
>  static int data_len;
>  static int adb_int_pending;
>  static int pmu_adb_flags;
> -static int adb_dev_map = 0;
> +static int adb_dev_map;
>  static struct adb_request bright_req_1, bright_req_2, bright_req_3;
> -static int pmu_kind = PMU_UNKNOWN;
> -static int pmu_fully_inited = 0;
> +static int pmu_kind;
> +static int pmu_fully_inited;
>  
>  int asleep;
>  BLOCKING_NOTIFIER_HEAD(sleep_notifier_list);
> @@ -184,6 +184,7 @@ int pmu_probe(void)
>  	} else if (macintosh_config->adb_type == MAC_ADB_PB2) {
>  		pmu_kind = PMU_68K_V2;
>  	} else {
> +		pmu_kind = PMU_UNKNOWN;
>  		return -ENODEV;
>  	}
>  
> Index: linux-2.6.18/drivers/macintosh/windfarm_pm112.c
> ===================================================================
> --- linux-2.6.18.orig/drivers/macintosh/windfarm_pm112.c
> +++ linux-2.6.18/drivers/macintosh/windfarm_pm112.c
> @@ -91,7 +91,7 @@ static struct wf_cpu_pid_state cpu_pid[N
>  static u32 cpu_thist[CPU_TEMP_HIST_SIZE];
>  static int cpu_thist_pt;
>  static s64 cpu_thist_total;
> -static s32 cpu_all_tmax = 100 << 16;
> +static s32 cpu_all_tmax;
>  static int cpu_last_target;
>  static struct wf_pid_state backside_pid;
>  static int backside_tick;
> @@ -683,6 +683,7 @@ static int __init wf_pm112_init(void)
>  		++nr_cores;
>  
>  	printk(KERN_INFO "windfarm: initializing for dual-core desktop G5\n");
> +	cpu_all_tmax = 100 << 16;
>  	driver_register(&wf_pm112_driver);
>  	return 0;
>  }
> Index: linux-2.6.18/drivers/macintosh/windfarm_smu_controls.c
> ===================================================================
> --- linux-2.6.18.orig/drivers/macintosh/windfarm_smu_controls.c
> +++ linux-2.6.18/drivers/macintosh/windfarm_smu_controls.c
> @@ -34,7 +34,7 @@
>  #define DBG(args...)	do { } while(0)
>  #endif
>  
> -static int smu_supports_new_fans_ops = 1;
> +static int smu_supports_new_fans_ops;
>  
>  /*
>   * SMU fans control object
> @@ -259,6 +259,7 @@ static int __init smu_controls_init(void
>  	if (smu == NULL)
>  		return -ENODEV;
>  
> +	smu_supports_new_fans_ops = 1;
>  	/* Look for RPM fans */
>  	for (fans = NULL; (fans = of_get_next_child(smu, fans)) != NULL;)
>  		if (!strcmp(fans->name, "rpm-fans") ||




More information about the Linuxppc-dev mailing list