Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 277923 | Differences between
and this patch

Collapse All | Expand All

(-)fritz/src/fcpcmcia_cs.c.orig (-15 / +14 lines)
Lines 26-32 Link Here
26
#include <asm/io.h>
26
#include <asm/io.h>
27
#include <asm/system.h>
27
#include <asm/system.h>
28
28
29
#include <pcmcia/version.h>
30
#include <pcmcia/cs_types.h>
29
#include <pcmcia/cs_types.h>
31
#include <pcmcia/cs.h>
30
#include <pcmcia/cs.h>
32
#include <pcmcia/cistpl.h>
31
#include <pcmcia/cistpl.h>
Lines 177-191 Link Here
177
static int get_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
176
static int get_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *parse)
178
{
177
{
179
    int i = pcmcia_get_tuple_data(handle, tuple);
178
    int i = pcmcia_get_tuple_data(handle, tuple);
180
    if (i != CS_SUCCESS) return i;
179
    if (i != 0) return i;
181
    return pcmcia_parse_tuple(handle, tuple, parse);
180
    return pcmcia_parse_tuple(tuple, parse);
182
}
181
}
183
182
184
static int first_tuple(struct pcmcia_device *handle, tuple_t *tuple,
183
static int first_tuple(struct pcmcia_device *handle, tuple_t *tuple,
185
		     cisparse_t *parse)
184
		     cisparse_t *parse)
186
{
185
{
187
    int i = pcmcia_get_first_tuple(handle, tuple);
186
    int i = pcmcia_get_first_tuple(handle, tuple);
188
    if (i != CS_SUCCESS) return i;
187
    if (i != 0) return i;
189
    return get_tuple(handle, tuple, parse);
188
    return get_tuple(handle, tuple, parse);
190
}
189
}
191
190
Lines 193-199 Link Here
193
		     cisparse_t *parse)
192
		     cisparse_t *parse)
194
{
193
{
195
    int i = pcmcia_get_next_tuple(handle, tuple);
194
    int i = pcmcia_get_next_tuple(handle, tuple);
196
    if (i != CS_SUCCESS) return i;
195
    if (i != 0) return i;
197
    return get_tuple(handle, tuple, parse);
196
    return get_tuple(handle, tuple, parse);
198
}
197
}
199
198
Lines 216-232 Link Here
216
    do {
215
    do {
217
	tuple.DesiredTuple = CISTPL_CONFIG;
216
	tuple.DesiredTuple = CISTPL_CONFIG;
218
	i = pcmcia_get_first_tuple(link, &tuple);
217
	i = pcmcia_get_first_tuple(link, &tuple);
219
	if (i != CS_SUCCESS) break;
218
	if (i != 0) break;
220
	tuple.TupleData = buf;
219
	tuple.TupleData = buf;
221
	tuple.TupleDataMax = 64;
220
	tuple.TupleDataMax = 64;
222
	tuple.TupleOffset = 0;
221
	tuple.TupleOffset = 0;
223
	i = pcmcia_get_tuple_data(link, &tuple);
222
	i = pcmcia_get_tuple_data(link, &tuple);
224
	if (i != CS_SUCCESS) break;
223
	if (i != 0) break;
225
	i = pcmcia_parse_tuple(link, &tuple, &parse);
224
	i = pcmcia_parse_tuple(&tuple, &parse);
226
	if (i != CS_SUCCESS) break;
225
	if (i != 0) break;
227
	link->conf.ConfigBase = parse.config.base;
226
	link->conf.ConfigBase = parse.config.base;
228
    } while (0);
227
    } while (0);
229
    if (i != CS_SUCCESS) {
228
    if (i != 0) {
230
	cs_error(link, ParseTuple, i);
229
	cs_error(link, ParseTuple, i);
231
	return -ENODEV;
230
	return -ENODEV;
232
    }
231
    }
Lines 251-257 Link Here
251
	tuple.Attributes = 0;
250
	tuple.Attributes = 0;
252
	tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
251
	tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
253
	i = first_tuple(link, &tuple, &parse);
252
	i = first_tuple(link, &tuple, &parse);
254
	while (i == CS_SUCCESS) {
253
	while (i == 0) {
255
	    if (cf->io.nwin > 0) {
254
	    if (cf->io.nwin > 0) {
256
		link->conf.ConfigIndex = cf->index;
255
		link->conf.ConfigIndex = cf->index;
257
		link->io.BasePort1 = cf->io.win[0].base;
256
		link->io.BasePort1 = cf->io.win[0].base;
Lines 261-273 Link Here
261
			link->io.BasePort1,
260
			link->io.BasePort1,
262
		        link->io.BasePort1+link->io.NumPorts1-1);
261
		        link->io.BasePort1+link->io.NumPorts1-1);
263
		i = pcmcia_request_io(link, &link->io);
262
		i = pcmcia_request_io(link, &link->io);
264
		if (i == CS_SUCCESS) goto found_port;
263
		if (i == 0) goto found_port;
265
	    }
264
	    }
266
	    i = next_tuple(link, &tuple, &parse);
265
	    i = next_tuple(link, &tuple, &parse);
267
	}
266
	}
268
267
269
found_port:
268
found_port:
270
	if (i != CS_SUCCESS) {
269
	if (i != 0) {
271
	    cs_error(link, RequestIO, i);
270
	    cs_error(link, RequestIO, i);
272
	    break;
271
	    break;
273
	}
272
	}
Lines 276-282 Link Here
276
	 * allocate an interrupt line
275
	 * allocate an interrupt line
277
	 */
276
	 */
278
	i = pcmcia_request_irq(link, &link->irq);
277
	i = pcmcia_request_irq(link, &link->irq);
279
	if (i != CS_SUCCESS) {
278
	if (i != 0) {
280
	    cs_error(link, RequestIRQ, i);
279
	    cs_error(link, RequestIRQ, i);
281
	    /* undo */
280
	    /* undo */
282
	    pcmcia_disable_device(link);
281
	    pcmcia_disable_device(link);
Lines 287-293 Link Here
287
         * configure the PCMCIA socket
286
         * configure the PCMCIA socket
288
	  */
287
	  */
289
	i = pcmcia_request_configuration(link, &link->conf);
288
	i = pcmcia_request_configuration(link, &link->conf);
290
	if (i != CS_SUCCESS) {
289
	if (i != 0) {
291
	    cs_error(link, RequestConfiguration, i);
290
	    cs_error(link, RequestConfiguration, i);
292
	    pcmcia_disable_device(link);
291
	    pcmcia_disable_device(link);
293
	    break;
292
	    break;

Return to bug 277923