drivers/media/pci/mantis/mantis_vp2033.c

Source file repositories/reference/linux-study-clean/drivers/media/pci/mantis/mantis_vp2033.c

File Facts

System
Linux kernel
Corpus path
drivers/media/pci/mantis/mantis_vp2033.c
Extension
.c
Size
3947 bytes
Lines
177
Domain
Driver Families
Bucket
drivers/media
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

if (fe) {
			dprintk(MANTIS_ERROR, 1,
				"found Philips CU1216 DVB-C frontend (TDA10021) @ 0x%02x",
				vp2033_tda1002x_cu1216_config.demod_address);
		} else {
			fe = dvb_attach(tda10023_attach, &vp2033_tda10023_cu1216_config,
					     adapter,
					     read_pwm(mantis));

			if (fe) {
				dprintk(MANTIS_ERROR, 1,
					"found Philips CU1216 DVB-C frontend (TDA10023) @ 0x%02x",
					vp2033_tda1002x_cu1216_config.demod_address);
			}
		}

		if (fe) {
			fe->ops.tuner_ops.set_params = tda1002x_cu1216_tuner_set;
			dprintk(MANTIS_ERROR, 1, "Mantis DVB-C Philips CU1216 frontend attach success");
		} else {
			return -1;
		}
	} else {
		dprintk(MANTIS_ERROR, 1, "Frontend on <%s> POWER ON failed! <%d>",
			adapter->name,
			err);

		return -EIO;
	}

	mantis->fe = fe;
	dprintk(MANTIS_DEBUG, 1, "Done!");

	return 0;
}

struct mantis_hwconfig vp2033_config = {
	.model_name	= MANTIS_MODEL_NAME,
	.dev_type	= MANTIS_DEV_TYPE,
	.ts_size	= MANTIS_TS_204,

	.baud_rate	= MANTIS_BAUD_9600,
	.parity		= MANTIS_PARITY_NONE,
	.bytes		= 0,

	.frontend_init	= vp2033_frontend_init,
	.power		= GPIF_A12,
	.reset		= GPIF_A13,
};

Annotation

Implementation Notes