changed Makefile and profiles, added patches for kernel 2.6.24
[openwrt.git] / target / linux / s3c24xx / patches-2.6.24 / 1204-fix-pcf50633-use-pcf-not-data-in-probe-for-context.p.patch
1 From d67dac178e8f4badacb161ad9505a3fbd6a2246e Mon Sep 17 00:00:00 2001
2 From: Andy Green <andy@openmoko.com>
3 Date: Wed, 2 Jul 2008 22:42:48 +0100
4 Subject: [PATCH] fix-pcf50633-use-pcf-not-data-in-probe-for-context.patch
5
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
9 as well.
10
11 Signed-off-by: Andy Green <andy@openmoko.com>
12 ---
13  drivers/i2c/chips/pcf50633.c |  115 +++++++++++++++++++++---------------------
14  1 files changed, 58 insertions(+), 57 deletions(-)
15
16 diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c
17 index 0f40f3f..4d19dae 100644
18 --- a/drivers/i2c/chips/pcf50633.c
19 +++ b/drivers/i2c/chips/pcf50633.c
20 @@ -2070,7 +2070,7 @@ static void populate_sysfs_group(struct pcf50633_data *pcf)
21  static int pcf50633_detect(struct i2c_adapter *adapter, int address, int kind)
22  {
23         struct i2c_client *new_client;
24 -       struct pcf50633_data *data;
25 +       struct pcf50633_data *pcf;
26         int err = 0;
27         int irq;
28  
29 @@ -2093,23 +2093,24 @@ static int pcf50633_detect(struct i2c_adapter *adapter, int address, int kind)
30                 return -EBUSY;
31         }
32  
33 -       if (!(data = kzalloc(sizeof(*data), GFP_KERNEL)))
34 +       pcf = kzalloc(sizeof(*pcf), GFP_KERNEL);
35 +       if (!pcf)
36                 return -ENOMEM;
37  
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);
45 -       data->irq = irq;
46 -       data->working = 0;
47 -       data->onkey_seconds = -1;
48 -       data->pdata = pcf50633_pdev->dev.platform_data;
49 -
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);
59 +       pcf->irq = irq;
60 +       pcf->working = 0;
61 +       pcf->onkey_seconds = -1;
62 +       pcf->pdata = pcf50633_pdev->dev.platform_data;
63 +
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 @@ -2125,11 +2126,11 @@ static int pcf50633_detect(struct i2c_adapter *adapter, int address, int kind)
70                 goto exit_free;
71         }
72  
73 -       pcf50633_global = data;
74 +       pcf50633_global = pcf;
75  
76 -       init_resume_dependency_list(&data->resume_dependency);
77 +       init_resume_dependency_list(&pcf->resume_dependency);
78  
79 -       populate_sysfs_group(data);
80 +       populate_sysfs_group(pcf);
81  
82         err = sysfs_create_group(&new_client->dev.kobj, &pcf_attr_group);
83         if (err) {
84 @@ -2142,34 +2143,34 @@ 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;
87  
88 -       data->input_dev = input_allocate_device();
89 -       if (!data->input_dev)
90 +       pcf->input_dev = input_allocate_device();
91 +       if (!pcf->input_dev)
92                 goto exit_sysfs;
93  
94 -       data->input_dev->name = "GTA02 PMU events";
95 -       data->input_dev->phys = "FIXME";
96 -       data->input_dev->id.bustype = BUS_I2C;
97 -       data->input_dev->cdev.dev = &new_client->dev;
98 +       pcf->input_dev->name = "GTA02 PMU events";
99 +       pcf->input_dev->phys = "FIXME";
100 +       pcf->input_dev->id.bustype = BUS_I2C;
101 +       pcf->input_dev->cdev.dev = &new_client->dev;
102  
103 -       data->input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_PWR);
104 -       set_bit(KEY_POWER, data->input_dev->keybit);
105 -       set_bit(KEY_POWER2, data->input_dev->keybit);
106 -       set_bit(KEY_BATTERY, data->input_dev->keybit);
107 +       pcf->input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_PWR);
108 +       set_bit(KEY_POWER, pcf->input_dev->keybit);
109 +       set_bit(KEY_POWER2, pcf->input_dev->keybit);
110 +       set_bit(KEY_BATTERY, pcf->input_dev->keybit);
111  
112 -       err = input_register_device(data->input_dev);
113 +       err = input_register_device(pcf->input_dev);
114         if (err)
115                 goto exit_sysfs;
116  
117         /* configure interrupt mask */
118         /* we want SECOND to kick for the coldplug initialisation */
119 -       reg_write(data, PCF50633_REG_INT1M, 0x00);
120 -       reg_write(data, PCF50633_REG_INT2M, 0x00);
121 -       reg_write(data, PCF50633_REG_INT3M, 0x00);
122 -       reg_write(data, PCF50633_REG_INT4M, 0x00);
123 -       reg_write(data, PCF50633_REG_INT5M, 0x00);
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);
129  
130         err = request_irq(irq, pcf50633_irq, IRQF_TRIGGER_FALLING,
131 -                         "pcf50633", data);
132 +                         "pcf50633", pcf);
133         if (err < 0)
134                 goto exit_input;
135  
136 @@ -2177,58 +2178,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);
139  
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);
149                         goto exit_irq;
150                 }
151         }
152  
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",
157                                                             &new_client->dev,
158 -                                                           data,
159 +                                                           pcf,
160                                                             &pcf50633bl_ops);
161 -               if (!data->backlight)
162 +               if (!pcf->backlight)
163                         goto exit_rtc;
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);
177         }
178  
179 -       data->probe_completed = 1;
180 +       pcf->probe_completed = 1;
181  
182 -       if (data->pdata->flag_use_apm_emulation)
183 +       if (pcf->pdata->flag_use_apm_emulation)
184                 apm_get_power_status = pcf50633_get_power_status;
185  
186         /* if platform was interested, give him a chance to register
187          * platform devices that switch power with us as the parent
188          * at registration time -- ensures suspend / resume ordering
189          */
190 -       if (data->pdata->attach_child_devices)
191 -               (data->pdata->attach_child_devices)(&new_client->dev);
192 +       if (pcf->pdata->attach_child_devices)
193 +               (pcf->pdata->attach_child_devices)(&new_client->dev);
194  
195         return 0;
196  exit_rtc:
197 -       if (data->pdata->used_features & PCF50633_FEAT_RTC)
198 +       if (pcf->pdata->used_features & PCF50633_FEAT_RTC)
199                 rtc_device_unregister(pcf50633_global->rtc);
200  exit_irq:
201         free_irq(pcf50633_global->irq, pcf50633_global);
202  exit_input:
203 -       input_unregister_device(data->input_dev);
204 +       input_unregister_device(pcf->input_dev);
205  exit_sysfs:
206         pm_power_off = NULL;
207         sysfs_remove_group(&new_client->dev.kobj, &pcf_attr_group);
208  exit_detach:
209         i2c_detach_client(new_client);
210  exit_free:
211 -       kfree(data);
212 +       kfree(pcf);
213         pcf50633_global = NULL;
214         return err;
215  }
216 -- 
217 1.5.6.5
218