View | Details | Raw Unified | Return to bug 199495 | Differences between
and this patch

Collapse All | Expand All

(-)sys/dev/ahci/ahci.c (+6 lines)
Lines 175-180 ahci_attach(device_t dev) Link Here
175
	resource_int_value(device_get_name(dev),
175
	resource_int_value(device_get_name(dev),
176
	    device_get_unit(dev), "ccc", &ctlr->ccc);
176
	    device_get_unit(dev), "ccc", &ctlr->ccc);
177
177
178
device_printf(dev, "quirks1=0x%b\n", ctlr->quirks, AHCI_Q_BIT_STRING);
178
	/* Setup our own memory management for channels. */
179
	/* Setup our own memory management for channels. */
179
	ctlr->sc_iomem.rm_start = rman_get_start(ctlr->r_mem);
180
	ctlr->sc_iomem.rm_start = rman_get_start(ctlr->r_mem);
180
	ctlr->sc_iomem.rm_end = rman_get_end(ctlr->r_mem);
181
	ctlr->sc_iomem.rm_end = rman_get_end(ctlr->r_mem);
Lines 190-195 ahci_attach(device_t dev) Link Here
190
		rman_fini(&ctlr->sc_iomem);
191
		rman_fini(&ctlr->sc_iomem);
191
		return (error);
192
		return (error);
192
	}
193
	}
194
device_printf(dev, "quirks2=0x%b\n", ctlr->quirks, AHCI_Q_BIT_STRING);
193
	/* Get the HW capabilities */
195
	/* Get the HW capabilities */
194
	version = ATA_INL(ctlr->r_mem, AHCI_VS);
196
	version = ATA_INL(ctlr->r_mem, AHCI_VS);
195
	ctlr->caps = ATA_INL(ctlr->r_mem, AHCI_CAP);
197
	ctlr->caps = ATA_INL(ctlr->r_mem, AHCI_CAP);
Lines 212-217 ahci_attach(device_t dev) Link Here
212
		device_printf(dev, "Forcing PI to %d ports (mask = %x)\n",
214
		device_printf(dev, "Forcing PI to %d ports (mask = %x)\n",
213
		    nports, nmask);
215
		    nports, nmask);
214
	}
216
	}
217
device_printf(dev, "quirks3=0x%b\n", ctlr->quirks, AHCI_Q_BIT_STRING);
215
218
216
	ctlr->ichannels = ATA_INL(ctlr->r_mem, AHCI_PI);
219
	ctlr->ichannels = ATA_INL(ctlr->r_mem, AHCI_PI);
217
220
Lines 234-239 ahci_attach(device_t dev) Link Here
234
		ctlr->caps |= 3;
237
		ctlr->caps |= 3;
235
		ctlr->ichannels &= 0x0f;
238
		ctlr->ichannels &= 0x0f;
236
	}
239
	}
240
device_printf(dev, "quirks4=0x%b\n", ctlr->quirks, AHCI_Q_BIT_STRING);
237
	ctlr->channels = MAX(flsl(ctlr->ichannels),
241
	ctlr->channels = MAX(flsl(ctlr->ichannels),
238
	    (ctlr->caps & AHCI_CAP_NPMASK) + 1);
242
	    (ctlr->caps & AHCI_CAP_NPMASK) + 1);
239
	if (ctlr->quirks & AHCI_Q_NOPMP)
243
	if (ctlr->quirks & AHCI_Q_NOPMP)
Lines 255-260 ahci_attach(device_t dev) Link Here
255
		rman_fini(&ctlr->sc_iomem);
259
		rman_fini(&ctlr->sc_iomem);
256
		return (ENXIO);
260
		return (ENXIO);
257
	}
261
	}
262
device_printf(dev, "quirks5=0x%b\n", ctlr->quirks, AHCI_Q_BIT_STRING);
258
263
259
	ahci_ctlr_setup(dev);
264
	ahci_ctlr_setup(dev);
260
265
Lines 266-271 ahci_attach(device_t dev) Link Here
266
		rman_fini(&ctlr->sc_iomem);
271
		rman_fini(&ctlr->sc_iomem);
267
		return (error);
272
		return (error);
268
	}
273
	}
274
device_printf(dev, "quirks6=0x%b\n", ctlr->quirks, AHCI_Q_BIT_STRING);
269
275
270
	i = 0;
276
	i = 0;
271
	for (u = ctlr->ichannels; u != 0; u >>= 1)
277
	for (u = ctlr->ichannels; u != 0; u >>= 1)

Return to bug 199495