~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to arch/arm/mach-omap2/omap_l3_noc.c

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
63
63
        char *source_name;
64
64
 
65
65
        /* Get the Type of interrupt */
66
 
        if (irq == l3->app_irq)
67
 
                inttype = L3_APPLICATION_ERROR;
68
 
        else
69
 
                inttype = L3_DEBUG_ERROR;
 
66
        inttype = irq == l3->app_irq ? L3_APPLICATION_ERROR : L3_DEBUG_ERROR;
70
67
 
71
68
        for (i = 0; i < L3_MODULES; i++) {
72
69
                /*
84
81
 
85
82
                        err_src = j;
86
83
                        /* Read the stderrlog_main_source from clk domain */
87
 
                        std_err_main_addr = base + (*(l3_targ[i] + err_src));
88
 
                        std_err_main =  readl(std_err_main_addr);
 
84
                        std_err_main_addr = base + *(l3_targ[i] + err_src);
 
85
                        std_err_main = readl(std_err_main_addr);
89
86
 
90
 
                        switch ((std_err_main & CUSTOM_ERROR)) {
 
87
                        switch (std_err_main & CUSTOM_ERROR) {
91
88
                        case STANDARD_ERROR:
92
89
                                source_name =
93
90
                                l3_targ_stderrlog_main_name[i][err_src];
132
129
 
133
130
        l3 = kzalloc(sizeof(*l3), GFP_KERNEL);
134
131
        if (!l3)
135
 
                ret = -ENOMEM;
 
132
                return -ENOMEM;
136
133
 
137
134
        platform_set_drvdata(pdev, l3);
138
135
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
139
136
        if (!res) {
140
137
                dev_err(&pdev->dev, "couldn't find resource 0\n");
141
138
                ret = -ENODEV;
142
 
                goto err1;
 
139
                goto err0;
143
140
        }
144
141
 
145
142
        l3->l3_base[0] = ioremap(res->start, resource_size(res));
146
 
        if (!(l3->l3_base[0])) {
 
143
        if (!l3->l3_base[0]) {
147
144
                dev_err(&pdev->dev, "ioremap failed\n");
148
145
                ret = -ENOMEM;
149
 
                goto err2;
 
146
                goto err0;
150
147
        }
151
148
 
152
149
        res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
153
150
        if (!res) {
154
151
                dev_err(&pdev->dev, "couldn't find resource 1\n");
155
152
                ret = -ENODEV;
156
 
                goto err3;
 
153
                goto err1;
157
154
        }
158
155
 
159
156
        l3->l3_base[1] = ioremap(res->start, resource_size(res));
160
 
        if (!(l3->l3_base[1])) {
 
157
        if (!l3->l3_base[1]) {
161
158
                dev_err(&pdev->dev, "ioremap failed\n");
162
159
                ret = -ENOMEM;
163
 
                goto err4;
 
160
                goto err1;
164
161
        }
165
162
 
166
163
        res = platform_get_resource(pdev, IORESOURCE_MEM, 2);
167
164
        if (!res) {
168
165
                dev_err(&pdev->dev, "couldn't find resource 2\n");
169
166
                ret = -ENODEV;
170
 
                goto err5;
 
167
                goto err2;
171
168
        }
172
169
 
173
170
        l3->l3_base[2] = ioremap(res->start, resource_size(res));
174
 
        if (!(l3->l3_base[2])) {
 
171
        if (!l3->l3_base[2]) {
175
172
                dev_err(&pdev->dev, "ioremap failed\n");
176
173
                ret = -ENOMEM;
177
 
                goto err6;
 
174
                goto err2;
178
175
        }
179
176
 
180
177
        /*
187
184
        if (ret) {
188
185
                pr_crit("L3: request_irq failed to register for 0x%x\n",
189
186
                                         OMAP44XX_IRQ_L3_DBG);
190
 
                goto err7;
 
187
                goto err3;
191
188
        }
192
189
        l3->debug_irq = irq;
193
190
 
198
195
        if (ret) {
199
196
                pr_crit("L3: request_irq failed to register for 0x%x\n",
200
197
                                         OMAP44XX_IRQ_L3_APP);
201
 
                goto err8;
 
198
                goto err4;
202
199
        }
203
200
        l3->app_irq = irq;
204
201
 
205
 
        goto err0;
206
 
err8:
207
 
err7:
208
 
        iounmap(l3->l3_base[2]);
209
 
err6:
210
 
err5:
211
 
        iounmap(l3->l3_base[1]);
 
202
        return 0;
 
203
 
212
204
err4:
 
205
        free_irq(l3->debug_irq, l3);
213
206
err3:
214
 
        iounmap(l3->l3_base[0]);
 
207
        iounmap(l3->l3_base[2]);
215
208
err2:
 
209
        iounmap(l3->l3_base[1]);
216
210
err1:
217
 
        kfree(l3);
 
211
        iounmap(l3->l3_base[0]);
218
212
err0:
 
213
        kfree(l3);
219
214
        return ret;
220
215
}
221
216