I think I've found the problem: ------------------------------------------------------------------------ static int cinergyt2_fe_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_parameters *fep) { struct cinergyt2_fe_state *state = fe->demodulator_priv; struct dvbt_set_parameters_msg param; char result[2]; int err; param.cmd = CINERGYT2_EP1_SET_TUNER_PARAMETERS; param.tps = cpu_to_le16(compute_tps(fep)); param.freq = cpu_to_le32(fep->frequency / 1000); param.bandwidth = 8 - fep->u.ofdm.bandwidth - BANDWIDTH_8_MHZ; err = dvb_usb_generic_rw(state->d, (char *)¶m, sizeof(param), result, sizeof(result), 0); ------------------------------------------------------------------------ As dvbt_set_parameters_msg is declared with __attribute__((packed)), its alignment is 8 bits. In fact, cinergyt2_fe_set_frontend()'s param variable is not aligned on a 32-bit boundary. Note that param is passed to usb_bulk_msg(). This seems to cause DMA problems on my hardware (Atom N270 + 945GSE + ICH7M). I hope that I'm not talking to a black hole. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html