All pastes #111883 Raw Edit

Something

public c v1 · immutable
·published 2006-08-02 14:29 UTC
rendered paste body
diff -Naurp v4l-dvb.orig/linux/drivers/media/dvb/bt8xx/dst.c v4l-dvb/linux/drivers/media/dvb/bt8xx/dst.c--- v4l-dvb.orig/linux/drivers/media/dvb/bt8xx/dst.c	2006-08-02 00:12:33.000000000 +0400+++ v4l-dvb/linux/drivers/media/dvb/bt8xx/dst.c	2006-08-02 08:41:18.000000000 +0400@@ -1729,6 +1729,7 @@ static struct dvb_frontend_ops dst_atsc_  struct dst_state *dst_attach(struct dst_state *state, struct dvb_adapter *dvb_adapter) {+ 	/* check if the ASIC is there */ 	if (dst_probe(state) < 0) { 		kfree(state);@@ -1756,12 +1757,7 @@ struct dst_state *dst_attach(struct dst_ 	} 	state->frontend.demodulator_priv = state; -	/*	Attach other DST peripherals if any		*/-	/*	Conditional Access device			*/-	if (state->dst_hw_cap & DST_TYPE_HAS_CA)-		dst_ca_attach(state, dvb_adapter);--	return state;				/*	Manu (DST is a card not a frontend)	*/+	return state; }  EXPORT_SYMBOL(dst_attach);diff -Naurp v4l-dvb.orig/linux/drivers/media/dvb/bt8xx/dst_ca.c v4l-dvb/linux/drivers/media/dvb/bt8xx/dst_ca.c--- v4l-dvb.orig/linux/drivers/media/dvb/bt8xx/dst_ca.c	2006-08-02 00:12:33.000000000 +0400+++ v4l-dvb/linux/drivers/media/dvb/bt8xx/dst_ca.c	2006-08-02 08:41:22.000000000 +0400@@ -756,7 +756,10 @@ static int dst_ca_open(struct inode *ino  static int dst_ca_release(struct inode *inode, struct file *file) {+	struct dst_state *state = file->private_data;+ 	dprintk(verbose, DST_CA_DEBUG, 1, " Device closed.");+	dvb_unregister_device(state->dst_ca); 	module_put(THIS_MODULE);  	return 0;@@ -795,11 +798,13 @@ static struct dvb_device dvbdev_ca = { 	.fops = &dst_ca_fops }; -void dst_ca_attach(struct dst_state *dst, struct dvb_adapter *dvb_adapter)+int dst_ca_attach(struct dst_state *dst, struct dvb_adapter *dvb_adapter) {-	struct dvb_device *dvbdev; 	dprintk(verbose, DST_CA_ERROR, 1, "registering DST-CA device");-	dvb_register_device(dvb_adapter, &dvbdev, &dvbdev_ca, dst, DVB_DEVICE_CA);+	if (dvb_register_device(dvb_adapter, &dst->dst_ca, &dvbdev_ca, dst, DVB_DEVICE_CA))+		return -1;+	else+		return 0; }  EXPORT_SYMBOL(dst_ca_attach);diff -Naurp v4l-dvb.orig/linux/drivers/media/dvb/bt8xx/dst_common.h v4l-dvb/linux/drivers/media/dvb/bt8xx/dst_common.h--- v4l-dvb.orig/linux/drivers/media/dvb/bt8xx/dst_common.h	2006-08-02 00:12:33.000000000 +0400+++ v4l-dvb/linux/drivers/media/dvb/bt8xx/dst_common.h	2006-08-02 08:41:25.000000000 +0400@@ -147,6 +147,7 @@ struct dst_state { 	struct semaphore dst_mutex; #endif 	u8 fw_name[8];+	struct dvb_device *dst_ca; };  struct tuner_types {@@ -184,8 +185,8 @@ int dst_comm_init(struct dst_state* stat int write_dst(struct dst_state *state, u8 * data, u8 len); int read_dst(struct dst_state *state, u8 * ret, u8 len); u8 dst_check_sum(u8 * buf, u32 len);-struct dst_state* dst_attach(struct dst_state* state, struct dvb_adapter *dvb_adapter);-void dst_ca_attach(struct dst_state *state, struct dvb_adapter *dvb_adapter);+struct dst_state *dst_attach(struct dst_state* state, struct dvb_adapter *dvb_adapter);+int dst_ca_attach(struct dst_state *state, struct dvb_adapter *dvb_adapter); int dst_gpio_outb(struct dst_state* state, u32 mask, u32 enbb, u32 outhigh, int delay);  int dst_command(struct dst_state* state, u8 * data, u8 len);diff -Naurp v4l-dvb.orig/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c v4l-dvb/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c--- v4l-dvb.orig/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c	2006-08-02 00:12:33.000000000 +0400+++ v4l-dvb/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c	2006-08-02 08:41:31.000000000 +0400@@ -670,6 +670,7 @@ static void frontend_init(struct dvb_bt8 		state->config = &dst_config; 		state->i2c = card->i2c_adapter; 		state->bt = card->bt;+		state->dst_ca = NULL;  		/*	DST is not a frontend, attaching the ASIC	*/ 		if (dvb_attach(dst_attach, state, &card->dvb_adapter) == NULL) {@@ -677,6 +678,11 @@ static void frontend_init(struct dvb_bt8 			break; 		} 		card->fe = &state->frontend;+		if (state->dst_hw_cap & DST_TYPE_HAS_CA) {+			dvb_attach(dst_ca_attach, state, &card->dvb_adapter);+			if (state->dst_ca == NULL)+				dprintk("%s: dst_ca_attach: failed\n", __func__);+		} 		break;  	case BTTV_BOARD_PINNACLESAT: