1 From 22bdcec1c140689c6fce71ca04d7afcaa44d52f0 Mon Sep 17 00:00:00 2001
2 From: Andy Green <andy@openmoko.com>
3 Date: Fri, 25 Jul 2008 23:06:15 +0100
4 Subject: [PATCH] fix-pcf50633-use-pcf-not-data-in-probe-for-context.patch
6 Everywhere in the sources except the probe function the context
7 pointer is called "pcf"... in there it's called "data" for some
8 reason. This stops confusion by changing it to be "pcf" in there
11 Signed-off-by: Andy Green <andy@openmoko.com>
13 drivers/i2c/chips/pcf50633.c | 117 +++++++++++++++++++++--------------------
14 1 files changed, 60 insertions(+), 57 deletions(-)
16 diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c
17 index 850bf93..4cb333c 100644
18 --- a/drivers/i2c/chips/pcf50633.c
19 +++ b/drivers/i2c/chips/pcf50633.c
20 @@ -2063,7 +2063,7 @@ static void populate_sysfs_group(struct pcf50633_data *pcf)
21 static int pcf50633_detect(struct i2c_adapter *adapter, int address, int kind)
23 struct i2c_client *new_client;
24 - struct pcf50633_data *data;
25 + struct pcf50633_data *pcf;
29 @@ -2086,23 +2086,24 @@ static int pcf50633_detect(struct i2c_adapter *adapter, int address, int kind)
33 - if (!(data = kzalloc(sizeof(*data), GFP_KERNEL)))
34 + pcf = kzalloc(sizeof(*pcf), GFP_KERNEL);
38 - mutex_init(&data->lock);
39 - mutex_init(&data->working_lock);
40 - mutex_init(&data->working_lock_nobat);
41 - mutex_init(&data->working_lock_usb_curlimit);
42 - INIT_WORK(&data->work, pcf50633_work);
43 - INIT_WORK(&data->work_nobat, pcf50633_work_nobat);
44 - INIT_WORK(&data->work_usb_curlimit, pcf50633_work_usbcurlim);
47 - data->onkey_seconds = -1;
48 - data->pdata = pcf50633_pdev->dev.platform_data;
50 - new_client = &data->client;
51 - i2c_set_clientdata(new_client, data);
52 + mutex_init(&pcf->lock);
53 + mutex_init(&pcf->working_lock);
54 + mutex_init(&pcf->working_lock_nobat);
55 + mutex_init(&pcf->working_lock_usb_curlimit);
56 + INIT_WORK(&pcf->work, pcf50633_work);
57 + INIT_WORK(&pcf->work_nobat, pcf50633_work_nobat);
58 + INIT_WORK(&pcf->work_usb_curlimit, pcf50633_work_usbcurlim);
61 + pcf->onkey_seconds = -1;
62 + pcf->pdata = pcf50633_pdev->dev.platform_data;
64 + new_client = &pcf->client;
65 + i2c_set_clientdata(new_client, pcf);
66 new_client->addr = address;
67 new_client->adapter = adapter;
68 new_client->driver = &pcf50633_driver;
69 @@ -2118,11 +2119,11 @@ static int pcf50633_detect(struct i2c_adapter *adapter, int address, int kind)
73 - pcf50633_global = data;
74 + pcf50633_global = pcf;
76 - init_resume_dependency_list(&data->resume_dependency);
77 + init_resume_dependency_list(&pcf->resume_dependency);
79 - populate_sysfs_group(data);
80 + populate_sysfs_group(pcf);
82 err = sysfs_create_group(&new_client->dev.kobj, &pcf_attr_group);
84 @@ -2135,32 +2136,35 @@ static int pcf50633_detect(struct i2c_adapter *adapter, int address, int kind)
85 /* register power off handler with core power management */
86 pm_power_off = &pcf50633_go_standby;
88 - data->input_dev = input_allocate_device();
89 - if (!data->input_dev)
90 + pcf->input_dev = input_allocate_device();
91 + if (!pcf->input_dev)
94 - data->input_dev->name = "GTA02 PMU events";
95 - data->input_dev->phys = "FIXME";
96 - data->input_dev->id.bustype = BUS_I2C;
97 + pcf->input_dev->name = "GTA02 PMU events";
98 + pcf->input_dev->phys = "FIXME";
99 + pcf->input_dev->id.bustype = BUS_I2C;
100 + pcf->input_dev->cdev.dev = &new_client->dev;
102 - data->input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_PWR);
103 - set_bit(KEY_POWER, data->input_dev->keybit);
104 - set_bit(KEY_POWER2, data->input_dev->keybit);
105 - set_bit(KEY_BATTERY, data->input_dev->keybit);
106 + pcf->input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_PWR);
107 + set_bit(KEY_POWER, pcf->input_dev->keybit);
108 + set_bit(KEY_POWER2, pcf->input_dev->keybit);
109 + set_bit(KEY_BATTERY, pcf->input_dev->keybit);
111 - err = input_register_device(data->input_dev);
112 + err = input_register_device(pcf->input_dev);
116 /* configure interrupt mask */
117 - reg_write(data, PCF50633_REG_INT1M, 0x00); /* we want SECOND to kick */
118 - reg_write(data, PCF50633_REG_INT2M, 0x00);
119 - reg_write(data, PCF50633_REG_INT3M, 0x00);
120 - reg_write(data, PCF50633_REG_INT4M, 0x00);
121 - reg_write(data, PCF50633_REG_INT5M, 0x00);
123 + /* we want SECOND to kick for the coldplug initialisation */
124 + reg_write(pcf, PCF50633_REG_INT1M, 0x00);
125 + reg_write(pcf, PCF50633_REG_INT2M, 0x00);
126 + reg_write(pcf, PCF50633_REG_INT3M, 0x00);
127 + reg_write(pcf, PCF50633_REG_INT4M, 0x00);
128 + reg_write(pcf, PCF50633_REG_INT5M, 0x00);
130 err = request_irq(irq, pcf50633_irq, IRQF_TRIGGER_FALLING,
136 @@ -2168,59 +2172,58 @@ static int pcf50633_detect(struct i2c_adapter *adapter, int address, int kind)
137 dev_err(&new_client->dev, "IRQ %u cannot be enabled as wake-up"
138 "source in this hardware revision!", irq);
140 - if (data->pdata->used_features & PCF50633_FEAT_RTC) {
141 - data->rtc = rtc_device_register("pcf50633", &new_client->dev,
142 + if (pcf->pdata->used_features & PCF50633_FEAT_RTC) {
143 + pcf->rtc = rtc_device_register("pcf50633", &new_client->dev,
144 &pcf50633_rtc_ops, THIS_MODULE);
145 - if (IS_ERR(data->rtc)) {
146 - err = PTR_ERR(data->rtc);
147 + if (IS_ERR(pcf->rtc)) {
148 + err = PTR_ERR(pcf->rtc);
153 - if (data->pdata->used_features & PCF50633_FEAT_PWM_BL) {
154 - data->backlight = backlight_device_register("pcf50633-bl",
155 + if (pcf->pdata->used_features & PCF50633_FEAT_PWM_BL) {
156 + pcf->backlight = backlight_device_register("pcf50633-bl",
161 - if (!data->backlight)
162 + if (!pcf->backlight)
164 /* FIXME: are we sure we want default == off? */
165 - data->backlight->props.max_brightness = 0x3f;
166 - data->backlight->props.power = FB_BLANK_UNBLANK;
167 - data->backlight->props.fb_blank = FB_BLANK_UNBLANK;
168 - data->backlight->props.brightness =
169 - data->backlight->props.max_brightness;
170 - backlight_update_status(data->backlight);
171 + pcf->backlight->props.max_brightness = 0x3f;
172 + pcf->backlight->props.power = FB_BLANK_UNBLANK;
173 + pcf->backlight->props.fb_blank = FB_BLANK_UNBLANK;
174 + pcf->backlight->props.brightness =
175 + pcf->backlight->props.max_brightness;
176 + backlight_update_status(pcf->backlight);
179 - apm_get_power_status = pcf50633_get_power_status;
180 - data->probe_completed = 1;
181 + pcf->probe_completed = 1;
183 - if (data->pdata->flag_use_apm_emulation)
184 + if (pcf->pdata->flag_use_apm_emulation)
185 apm_get_power_status = pcf50633_get_power_status;
187 /* if platform was interested, give him a chance to register
188 * platform devices that switch power with us as the parent
189 * at registration time -- ensures suspend / resume ordering
191 - if (data->pdata->attach_child_devices)
192 - (data->pdata->attach_child_devices)(&new_client->dev);
193 + if (pcf->pdata->attach_child_devices)
194 + (pcf->pdata->attach_child_devices)(&new_client->dev);
198 - if (data->pdata->used_features & PCF50633_FEAT_RTC)
199 + if (pcf->pdata->used_features & PCF50633_FEAT_RTC)
200 rtc_device_unregister(pcf50633_global->rtc);
202 free_irq(pcf50633_global->irq, pcf50633_global);
204 - input_unregister_device(data->input_dev);
205 + input_unregister_device(pcf->input_dev);
208 sysfs_remove_group(&new_client->dev.kobj, &pcf_attr_group);
210 i2c_detach_client(new_client);
214 pcf50633_global = NULL;