rpms/em8300-kmod/devel em8300-adv7170-wss.patch, NONE, 1.1 em8300-kmod-2617.patch, NONE, 1.1 em8300-kmod.spec, NONE, 1.1 kmodtool, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2

Ville Skytta (scop) fedora-extras-commits at redhat.com
Sat Jul 22 20:16:26 UTC 2006


Author: scop

Update of /cvs/extras/rpms/em8300-kmod/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv19818/devel

Modified Files:
	.cvsignore sources 
Added Files:
	em8300-adv7170-wss.patch em8300-kmod-2617.patch 
	em8300-kmod.spec kmodtool 
Log Message:
auto-import em8300-kmod-0.15.3-6.2.6.17_1.2145_FC5 on branch devel from em8300-kmod-0.15.3-6.2.6.17_1.2145_FC5.src.rpm
Initial import (#189400).

em8300-adv7170-wss.patch:

--- NEW FILE em8300-adv7170-wss.patch ---
http://sourceforge.net/mailarchive/forum.php?thread_id=6061108&forum_id=7173
Updated to apply as of 0.15.3+cvs20060626.

Index: em8300setup/em8300setup.c
===================================================================
RCS file: /cvsroot/dxr3/em8300/em8300setup/em8300setup.c,v
retrieving revision 1.5
diff -u -r1.5 em8300setup.c
--- em8300setup/em8300setup.c	19 Oct 2005 22:15:16 -0000	1.5
+++ em8300setup/em8300setup.c	26 Jun 2006 13:44:47 -0000
@@ -114,7 +114,7 @@
 	char ucode_file[200]; // bad hardcoded value ;-)
 
 	/* Vars to hold desired setings - init to -1 so we can see which were requested to be set explicitly by the user and which should be left alone */
-        int tvmode=-1, aspect=-1, audio=-1, spu=-1, upload=0, display_only=0;
+        int tvmode=-1, aspect=-1, audio=-1, spu=-1, upload=0, display_only=0, wssmode=-1;
 
 
 	char * devs[] = {"/dev/em8300-0","/dev/em8300-1","/dev/em8300-2","/dev/em8300-3"};
@@ -177,12 +177,45 @@
 							upload=1;
 							printf("Using microcode file %s\n",ucode_file);
 							break;
+					        case 'z':
+						        switch (opt[2]) {
+							case '0':
+							        wssmode = EM8300_WSS_OFF;
+								break;
+							case '1':
+							        wssmode = EM8300_WSS_4_3;
+								break;
+							case '2':
+							        wssmode = EM8300_WSS_14_9;
+								if (opt[3]=='l') wssmode = EM8300_WSS_14_9_LETTERBOX;
+								if (opt[3]=='t') wssmode = EM8300_WSS_14_9_LETTERBOX_TOP;
+								break;
+							case '3':
+							        wssmode = EM8300_WSS_16_9;
+								if (opt[3]=='l') wssmode = EM8300_WSS_16_9_LETTERBOX;
+								if (opt[3]=='t') wssmode = EM8300_WSS_16_9_LETTERBOX_TOP;
+								if (opt[3]=='p') wssmode = EM8300_WSS_16P_9_LETTERBOX;
+								break;
+							default:
+							        printf("Unknown option -z%c\n\n",opt[2]);;
+								exit(1);
+							}
+							break;
 						 default:
 							printf("Unknown option -%c \n\n",opt[1]);
 							printf("Usage: em8300setup [-q]|[all other options]\n\nWhere options are one of the following (latter options will override previously\nspecified options for the same control):\n\n");
 							printf("  -p, -p6, -n\tSet display mode to pal, pal60, ntsc\n");
 							printf("  -a, -d, -3\tSet audio mode to analog, digitalpcm, digital ac3\n");
 							printf("  -o, -w\tSet aspect ratio to normal[4:3], widescreen[16:9]\n");
+							printf("  -z0\t\tSet WSS to disabled\n");
+							printf("  -z1\t\tSet WSS to 4:3\n");
+							printf("  -z2\t\tSet WSS to 14:9\n");
+							printf("  -z2l\t\tSet WSS to 14:9 letterbox\n");
+							printf("  -z2t\t\tSet WSS to 14:9 letterbox top\n");
+							printf("  -z3\t\tSet WSS to 16:9\n");
+							printf("  -z3l\t\tSet WSS to 16:9 letterbox\n");
+							printf("  -z3t\t\tSet WSS to 16:9 letterbox top\n");
+							printf("  -z3p\t\tSet WSS to >16:9 letterbox\n");
 							printf("  -S, -s\tSet spu mode On(S), Off(s)\n");
 							printf("  -f <filename>\tSpecify alternate location of microcode\n\t\t(Defaults to " FIRMWARE_DIR "/em8300.bin)\n");
 							printf("  -q\t\tQuery the current settings for all of the above and\n\t\texit without making any changes\n");
@@ -272,6 +305,12 @@
 			if(ioctl(DEV, EM8300_IOCTL_SET_ASPECTRATIO, &aspect) == -1) 
 				check_errno("Unable to set aspect ratio");
 		}
+		if(wssmode!=-1) {
+			printf("Setting WSS = %i\n",wssmode);
+			if(ioctl(DEV, EM8300_IOCTL_SET_WSS, &wssmode) == -1) 
+				check_errno("Unable to set wss");
+		}
+
 		if(audio!=-1) {
 			printf("Setting audio = %i\n",audio);
 			if(ioctl(DEV, EM8300_IOCTL_SET_AUDIOMODE, &audio) == -1) 
Index: include/linux/em8300.h
===================================================================
RCS file: /cvsroot/dxr3/em8300/include/linux/em8300.h,v
retrieving revision 1.41
diff -u -r1.41 em8300.h
--- include/linux/em8300.h	10 Apr 2006 22:31:14 -0000	1.41
+++ include/linux/em8300.h	26 Jun 2006 13:44:48 -0000
@@ -80,6 +80,7 @@
 #define EM8300_IOCTL_SCR_SETSPEED _IOW('C',17,unsigned)
 #define EM8300_IOCTL_FLUSH _IOW('C',18,int)
 #define EM8300_IOCTL_VBI _IOW('C',19,struct timeval)
+#define EM8300_IOCTL_SET_WSS _IOW('C',20,int)
 
 #define EM8300_OVERLAY_SIGNAL_ONLY 1
 #define EM8300_OVERLAY_SIGNAL_WITH_VGA 2
@@ -97,6 +98,16 @@
 #define EM8300_ASPECTRATIO_16_9 1
 #define EM8300_ASPECTRATIO_LAST 1
 
+#define EM8300_WSS_OFF 0
+#define EM8300_WSS_4_3 8
+#define EM8300_WSS_14_9_LETTERBOX 1
+#define EM8300_WSS_14_9_LETTERBOX_TOP 2
+#define EM8300_WSS_16_9_LETTERBOX 11
+#define EM8300_WSS_16_9_LETTERBOX_TOP 4
+#define EM8300_WSS_16P_9_LETTERBOX 13
+#define EM8300_WSS_14_9 14
+#define EM8300_WSS_16_9 7
+
 #define EM8300_VIDEOMODE_PAL	0
 #define EM8300_VIDEOMODE_PAL60	1
 #define EM8300_VIDEOMODE_NTSC	2
@@ -467,6 +478,7 @@
 int em8300_control_ioctl(struct em8300_s *em, int cmd, unsigned long arg);
 int em8300_ioctl_setvideomode(struct em8300_s *em, int mode);
 int em8300_ioctl_setaspectratio(struct em8300_s *em, int ratio);
+int em8300_ioctl_setwss(struct em8300_s *em, int wsscode);
 int em8300_ioctl_getstatus(struct em8300_s *em, char *usermsg);
 int em8300_ioctl_init(struct em8300_s *em, em8300_microcode_t *useruc);
 void em8300_ioctl_enable_videoout(struct em8300_s *em, int mode);
Index: modules/adv717x.c
===================================================================
RCS file: /cvsroot/dxr3/em8300/modules/adv717x.c,v
retrieving revision 1.53
diff -u -r1.53 adv717x.c
--- modules/adv717x.c	12 May 2006 22:04:56 -0000	1.53
+++ modules/adv717x.c	26 Jun 2006 13:44:48 -0000
@@ -219,6 +219,7 @@
 	int pp_ntsc;
 	int pd_adj_pal;
 	int pd_adj_ntsc;
+	int wsscode;
 
 	unsigned char config[32];
 	int configlen;
@@ -431,6 +432,63 @@
 		/* ADV7170/1 RGB sync: MR42 (register 4, bit 2) */
 		SET_REG(tmpconfig[ADV7170_REG_MR4], 2,
 				mode_info[data->out_mode].conf.sync_all);
+
+		switch (data->wsscode) {
+		case 0x08:
+			/* 4:3 full */
+			tmpconfig[22] = 0x80;
+			tmpconfig[23] = 0x00;
+			tmpconfig[24] = 0x08;
+			break;
+		case 0x01:
+			/* 14:9 letterbox center */
+			tmpconfig[22] = 0x80;
+			tmpconfig[23] = 0x00;
+			tmpconfig[24] = 0x01;
+			break;
+		case 0x02:
+			/* 14:9 letterbox top */
+			tmpconfig[22] = 0x80;
+			tmpconfig[23] = 0x00;
+			tmpconfig[24] = 0x02;
+			break;
+		case 0x0b:
+			/* 16:9 letterbox center */
+			tmpconfig[22] = 0x80;
+			tmpconfig[23] = 0x00;
+			tmpconfig[24] = 0x0b;
+			break;
+		case 0x04:
+			/* 16:9 letterbox top */
+			tmpconfig[22] = 0x80;
+			tmpconfig[23] = 0x00;
+			tmpconfig[24] = 0x04;
+			break;
+		case 0x0d:
+			/* >16:9 letterbox center */
+			tmpconfig[22] = 0x80;
+			tmpconfig[23] = 0x00;
+			tmpconfig[24] = 0x0d;
+			break;
+		case 0x0e:
+			/* 14:9 full */
+			tmpconfig[22] = 0x80;
+			tmpconfig[23] = 0x00;
+			tmpconfig[24] = 0x0e;
+			break;
+		case 0x07:
+			/* 16:9 full */
+			tmpconfig[22] = 0x80;
+			tmpconfig[23] = 0x00;
+			tmpconfig[24] = 0x07;
+			break;
+		default:
+			tmpconfig[22] = 0x00;
+			tmpconfig[23] = 0x00;
+			tmpconfig[24] = 0x00;
+			break;
+		}
+
 		break;
 	}
 	/* ADV7170/1/5A/6A non-interlace: MR10 (register 1, bit 0) */
@@ -592,6 +650,7 @@
 	data->out_mode = output_mode_nr[em->card_nr];
 	if (data->out_mode < 0 || data->out_mode >= MODE_MAX)
 		data->out_mode = 0;
+	data->wsscode = 0;
 
 	adv717x_setmode(ENCODER_MODE_PAL60, client);
 
@@ -697,6 +756,42 @@
 		data->enableoutput = (long int) arg;
 		adv717x_update(client);
 		break;
+	case ENCODER_CMD_WSS_4_3:
+		data->wsscode = 8; 
+		adv717x_update(client);
+		break;
+	case ENCODER_CMD_WSS_14_9_LETTERBOX:
+		data->wsscode = 1; 
+		adv717x_update(client);
+		break;
+	case ENCODER_CMD_WSS_14_9_LETTERBOX_TOP:
+		data->wsscode = 2; 
+		adv717x_update(client);
+		break;
+	case ENCODER_CMD_WSS_16_9_LETTERBOX:
+		data->wsscode = 11; 
+		adv717x_update(client);
+		break;
+	case ENCODER_CMD_WSS_16_9_LETTERBOX_TOP:
+		data->wsscode = 4; 
+		adv717x_update(client);
+		break;
+	case ENCODER_CMD_WSS_16P_9_LETTERBOX:
+		data->wsscode = 13; 
+		adv717x_update(client);
+		break;
+	case ENCODER_CMD_WSS_14_9:
+		data->wsscode = 14; 
+		adv717x_update(client);
+		break;
+	case ENCODER_CMD_WSS_16_9:
+		data->wsscode = 7; 
+		adv717x_update(client);
+		break;
+	case ENCODER_CMD_WSS_OFF:
+		data->wsscode = 0; 
+		adv717x_update(client);
+		break;
 	default:
 		return -EINVAL;
 		break;
Index: modules/em8300_ioctl.c
===================================================================
RCS file: /cvsroot/dxr3/em8300/modules/em8300_ioctl.c,v
retrieving revision 1.50
diff -u -r1.50 em8300_ioctl.c
--- modules/em8300_ioctl.c	10 Apr 2006 22:31:14 -0000	1.50
+++ modules/em8300_ioctl.c	26 Jun 2006 13:44:48 -0000
@@ -203,4 +203,17 @@
 				return -EFAULT;
 		}
 		break;
+	case _IOC_NR(EM8300_IOCTL_SET_WSS):
+		em8300_require_ucode(em);
+
+		if (!em->ucodeloaded) {
+			return -ENOTTY;
+		}
+
+		if (_IOC_DIR(cmd) & _IOC_WRITE) {
+			get_user(val, (int *) arg);
+			em8300_ioctl_setwss(em, val);
+		}
+
+		break;
 
@@ -604,6 +619,52 @@
 	return 0;
 }
 
+int em8300_ioctl_setwss(struct em8300_s *em, int wsscode)
+{
+	int wsscmd;
+
+	switch (wsscode) {
+	case EM8300_WSS_OFF:
+		wsscmd = ENCODER_CMD_WSS_OFF;
+		break;
+	case EM8300_WSS_4_3:
+		wsscmd = ENCODER_CMD_WSS_4_3;
+		break;
+	case EM8300_WSS_14_9_LETTERBOX:
+		wsscmd = ENCODER_CMD_WSS_14_9_LETTERBOX;
+		break;
+	case EM8300_WSS_14_9_LETTERBOX_TOP:
+		wsscmd = ENCODER_CMD_WSS_14_9_LETTERBOX_TOP;
+		break;
+	case EM8300_WSS_16_9_LETTERBOX:
+		wsscmd = ENCODER_CMD_WSS_16_9_LETTERBOX;
+		break;
+	case EM8300_WSS_16_9_LETTERBOX_TOP:
+		wsscmd = ENCODER_CMD_WSS_16_9_LETTERBOX_TOP;
+		break;
+	case EM8300_WSS_16P_9_LETTERBOX:
+		wsscmd = ENCODER_CMD_WSS_16P_9_LETTERBOX;
+		break;
+	case EM8300_WSS_14_9:
+		wsscmd = ENCODER_CMD_WSS_14_9;
+		break;
+	case EM8300_WSS_16_9:
+		wsscmd = ENCODER_CMD_WSS_16_9;
+		break;
+	default:
+		return -1;
+	}
+
+	em8300_dicom_disable(em);
+	if (em->encoder) {
+		em->encoder->driver->command(em->encoder, wsscmd, (void *) 0 );
+	}
+
+	em8300_dicom_enable(em);
+	em8300_dicom_update(em);
+	return 0;
+}
+
 int em8300_ioctl_setplaymode(struct em8300_s *em, int mode)
 {
 	switch (mode) {
Index: modules/encoder.h
===================================================================
RCS file: /cvsroot/dxr3/em8300/modules/encoder.h,v
retrieving revision 1.8
diff -u -r1.8 encoder.h
--- modules/encoder.h	14 Jan 2002 21:41:31 -0000	1.8
+++ modules/encoder.h	26 Jun 2006 13:44:48 -0000
@@ -13,6 +13,15 @@
 
 #define ENCODER_CMD_SETMODE      1
 #define ENCODER_CMD_ENABLEOUTPUT 2
+#define ENCODER_CMD_WSS_4_3                3
+#define ENCODER_CMD_WSS_14_9_LETTERBOX     4
+#define ENCODER_CMD_WSS_14_9_LETTERBOX_TOP 5
+#define ENCODER_CMD_WSS_16_9_LETTERBOX     6
+#define ENCODER_CMD_WSS_16_9_LETTERBOX_TOP 7
+#define ENCODER_CMD_WSS_16P_9_LETTERBOX    8
+#define ENCODER_CMD_WSS_14_9               9
+#define ENCODER_CMD_WSS_16_9               10
+#define ENCODER_CMD_WSS_OFF                11
 
 #endif
 
Index: em8300setup/em8300setup.1
===================================================================
RCS file: /cvsroot/dxr3/em8300/em8300setup/em8300setup.1,v
retrieving revision 1.3
diff -u -r1.3 em8300setup.1
--- em8300setup/em8300setup.1	19 Oct 2005 22:15:16 -0000	1.3
+++ em8300setup/em8300setup.1	26 Jun 2006 13:44:47 -0000
@@ -26,6 +26,33 @@
 \fB-o\fR, \fB-w\fR
 Set aspect ratio to respectively normal (4:3) or wide-screen (16:9).
 .TP
+\fB-z0\fR
+Set WSS to disabled.
+.TP
+\fB-z1\fR
+Set WSS to 4:3.
+.TP
+\fB-z2\fR
+Set WSS to 14:9.
+.TP
+\fB-z2l\fR
+Set WSS to 14:9 letterbox.
+.TP
+\fB-z2t\fR
+Set WSS to 14:9 letterbox top.
+.TP
+\fB-z3\fR
+Set WSS to 16:9.
+.TP
+\fB-z3l\fR
+Set WSS to 16:9 letterbox.
+.TP
+\fB-z3t\fR
+Set WSS to 16:9 letterbox top.
+.TP
+\fB-z3p\fR
+Set WSS to >16:9 letterbox.
+.TP
 \fB-S\fR, \fB-s\fR
 Set sub-pictures respectively on or off.
 .TP

em8300-kmod-2617.patch:

--- NEW FILE em8300-kmod-2617.patch ---
---------------------
PatchSet 500 
Date: 2006/05/13 01:04:56
Author: nboullis
Branch: HEAD
Tag: (none) 
Log:
Convert the module arguments declarations from the old MODULE_PARM
interface to the (not so) new module_param one. The old interface should
not be supported anymore with 2.6.17 kernels.

Members: 
	ChangeLog:1.267->1.268 
	modules/adv717x.c:1.52->1.53 
	modules/bt865.c:1.42->1.43 
	modules/em8300_main.c:1.113->1.114 
	modules/encoder_output_mode.h:INITIAL->1.1 

Index: em8300/ChangeLog
diff -u em8300/ChangeLog:1.267 em8300/ChangeLog:1.268
--- em8300/ChangeLog:1.267	Mon Apr 24 10:27:55 2006
+++ em8300/ChangeLog	Fri May 12 15:04:56 2006
@@ -1,0 +1,9 @@
+2006-05-12  Nicolas Boullis  <nboullis at debian.org>
+	* modules/adv717x.c,
+	  modules/bt865.c,
+	  modules/em8300_main.c,
+	  modules/encoder_output_mode.h:
+	Convert the module arguments declarations from the old MODULE_PARM
+	interface to the (not so) new module_param one. The old interface
+	should not be supported anymore with 2.6.17 kernels.
+
Index: em8300/modules/adv717x.c
diff -u em8300/modules/adv717x.c:1.52 em8300/modules/adv717x.c:1.53
--- em8300/modules/adv717x.c:1.52	Tue Apr  4 15:30:32 2006
+++ em8300/modules/adv717x.c	Fri May 12 15:04:56 2006
@@ -18,7 +18,11 @@
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */
 #include <linux/config.h>
+#include <linux/version.h>
 #include <linux/module.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+#include <linux/moduleparam.h>
+#endif
 #include <linux/init.h>
 #include <linux/delay.h>
 #include <linux/errno.h>
@@ -36,7 +40,6 @@
 #include <linux/types.h>
 
 #include <linux/videodev.h>
-#include <linux/version.h>
 #include <asm/uaccess.h>
 
 #include <linux/i2c.h>
@@ -63,7 +66,11 @@
 #else
 int pixelport_16bit[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 0 };
 #endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(pixelport_16bit, "1-" __MODULE_STRING(EM8300_MAX) "i");
+#else
+module_param_array(pixelport_16bit, bool, NULL, 0444);
+#endif
 MODULE_PARM_DESC(pixelport_16bit, "Changes how the ADV717x expects its input data to be formatted. If the colours on the TV appear green, try changing this. Defaults to 1.");
 
 #ifdef CONFIG_ADV717X_PIXELPORTPAL
@@ -71,25 +78,71 @@
 #else
 int pixelport_other_pal[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 0 };
 #endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(pixelport_other_pal, "1-" __MODULE_STRING(EM8300_MAX) "i");
+#else
+module_param_array(pixelport_other_pal, bool, NULL, 0444);
+#endif
 MODULE_PARM_DESC(pixelport_other_pal, "If this is set to 1, then the pixelport setting is swapped for PAL from the setting given with pixelport_16bit. Defaults to 1.");
 
 int pixeldata_adjust_ntsc[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 1 };
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(pixeldata_adjust_ntsc, "1-" __MODULE_STRING(EM8300_MAX) "i");
+#else
+module_param_array(pixeldata_adjust_ntsc, int, NULL, 0444);
+#endif
 MODULE_PARM_DESC(pixeldata_adjust_ntsc, "If your red and blue colours are swapped in NTSC, try setting this to 0,1,2 or 3. Defaults to 1.");
 
 int pixeldata_adjust_pal[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 1 };
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(pixeldata_adjust_pal, "1-" __MODULE_STRING(EM8300_MAX) "i");
+#else
+module_param_array(pixeldata_adjust_pal, int, NULL, 0444);
+#endif
 MODULE_PARM_DESC(pixeldata_adjust_pal, "If your red and blue colours are swapped in PAL, try setting this to 0,1,2 or 3. Defaults to 1.");
 
-
 static int color_bars[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 0 };
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(color_bars, "1-" __MODULE_STRING(EM8300_MAX) "i");
+#else
+module_param_array(color_bars, bool, NULL, 0444);
+#endif
 MODULE_PARM_DESC(color_bars, "If you set this to 1 a set of color bars will be displayed on your screen (used for testing if the chip is working). Defaults to 0.");
 
-static int output_mode_nr[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 0 };
+typedef enum {
+	MODE_COMPOSITE_SVIDEO,
+	MODE_SVIDEO,
+	MODE_COMPOSITE,
+	MODE_COMPOSITE_PSEUDO_SVIDEO,
+	MODE_PSEUDO_SVIDEO,
+	MODE_COMPOSITE_OVER_SVIDEO,
+	MODE_YUV,
+	MODE_RGB,
+	MODE_RGB_NOSYNC,
+	MODE_MAX
+} output_mode_t;
+
+struct output_conf_s {
+	int component;
+	int yuv;
+	int euroscart;
+	int progressive;
+	int sync_all;
+	int dacA;
+	int dacB;
+	int dacC;
+	int dacD;
+};
+
+#include "encoder_output_mode.h"
+
+static output_mode_t output_mode_nr[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = MODE_COMPOSITE_SVIDEO };
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 static char *output_mode[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = NULL };
 MODULE_PARM(output_mode, "1-" __MODULE_STRING(EM8300_MAX) "s");
+#else
+module_param_array_named(output_mode, output_mode_nr, output_mode_t, NULL, 0444);
+#endif
 MODULE_PARM_DESC(output_mode, "Specifies the output mode to use for the ADV717x video encoder. See the README-modoptions file for the list of mode names to use. Default is SVideo + composite (\"comp+svideo\").");
 
 
@@ -141,42 +194,16 @@
 int adv717x_detach_client(struct i2c_client *client);
 int adv717x_command(struct i2c_client *client, unsigned int cmd, void *arg);
 
-typedef enum {
-	MODE_COMPOSITE_SVIDEO,
-	MODE_SVIDEO,
-	MODE_COMPOSITE,
-	MODE_COMPOSITE_PSEUDO_SVIDEO,
-	MODE_PSEUDO_SVIDEO,
-	MODE_COMPOSITE_OVER_SVIDEO,
-	MODE_YUV,
-	MODE_RGB,
-	MODE_RGB_NOSYNC,
-	MODE_MAX
-} OutputModes;
-
-typedef struct {
-	char const * name;
-	int component;
-	int yuv;
-	int euroscart;
-	int progressive;
-	int sync_all;
-	int dacA;
-	int dacB;
-	int dacC;
-	int dacD;
-} OutputModeInfo;
-
-OutputModeInfo ModeInfo[] = {
-	[ MODE_COMPOSITE_SVIDEO ] =		{ "comp+svideo" , 0, 0, 0, 0, 0, 1, 0, 0, 0 },
-	[ MODE_SVIDEO ] =			{ "svideo"      , 0, 0, 0, 0, 0, 1, 1, 0, 0 },
-	[ MODE_COMPOSITE ] =			{ "comp"        , 0, 0, 0, 0, 0, 1, 0, 1, 1 },
-	[ MODE_COMPOSITE_PSEUDO_SVIDEO ] =	{ "comp+psvideo", 0, 0, 1, 0, 0, 1, 0, 0, 0 },
-	[ MODE_PSEUDO_SVIDEO ] =		{ "psvideo"     , 0, 0, 1, 0, 0, 1, 1, 0, 0 },
-	[ MODE_COMPOSITE_OVER_SVIDEO ] =	{ "composvideo" , 0, 0, 1, 0, 0, 1, 1, 1, 0 },
-	[ MODE_YUV ] =				{ "yuv"         , 1, 1, 0, 0, 0, 1, 0, 0, 0 },
-	[ MODE_RGB ] =				{ "rgbs"        , 1, 0, 0, 0, 1, 0, 0, 0, 0 },
-	[ MODE_RGB_NOSYNC ] =			{ "rgb"         , 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+static const mode_info_t mode_info[] = {
+	[ MODE_COMPOSITE_SVIDEO ] =		{ "comp+svideo" , { 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+	[ MODE_SVIDEO ] =			{ "svideo"      , { 0, 0, 0, 0, 0, 1, 1, 0, 0 } },
+	[ MODE_COMPOSITE ] =			{ "comp"        , { 0, 0, 0, 0, 0, 1, 0, 1, 1 } },
+	[ MODE_COMPOSITE_PSEUDO_SVIDEO ] =	{ "comp+psvideo", { 0, 0, 1, 0, 0, 1, 0, 0, 0 } },
+	[ MODE_PSEUDO_SVIDEO ] =		{ "psvideo"     , { 0, 0, 1, 0, 0, 1, 1, 0, 0 } },
+	[ MODE_COMPOSITE_OVER_SVIDEO ] =	{ "composvideo" , { 0, 0, 1, 0, 0, 1, 1, 1, 0 } },
+	[ MODE_YUV ] =				{ "yuv"         , { 1, 1, 0, 0, 0, 1, 0, 0, 0 } },
+	[ MODE_RGB ] =				{ "rgbs"        , { 1, 0, 0, 0, 1, 0, 0, 0, 0 } },
+	[ MODE_RGB_NOSYNC ] =			{ "rgb"         , { 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
 };
 
 #define CHIP_ADV7175A 1
@@ -187,7 +214,7 @@
 	int mode;
 	int bars;
 	int enableoutput;
-	OutputModes out_mode;
+	output_mode_t out_mode;
 	int pp_pal;
 	int pp_ntsc;
 	int pd_adj_pal;
@@ -380,43 +407,43 @@
 	    case CHIP_ADV7175A:
 		/* ADV7175/6A component out: MR06 (register 0, bit 6) */
 		SET_REG(tmpconfig[ADV717X_REG_MR0], 6,
-				ModeInfo[data->out_mode].component);
+				mode_info[data->out_mode].conf.component);
 		/* ADV7175/6A YUV out: MR26 (register 13, bit 6) */
 		SET_REG(tmpconfig[ADV7175_REG_MR2], 6,
-				ModeInfo[data->out_mode].yuv);
+				mode_info[data->out_mode].conf.yuv);
 		/* ADV7175/6A EuroSCART: MR37 (register 18, bit 7) */
 		SET_REG(tmpconfig[ADV7175_REG_MR3], 7,
-			ModeInfo[data->out_mode].euroscart);
+			mode_info[data->out_mode].conf.euroscart);
 		/* ADV7175/6A RGB sync: MR05 (register 0, bit 5) */
 		SET_REG(tmpconfig[ADV717X_REG_MR0], 5,
-				ModeInfo[data->out_mode].sync_all);
+				mode_info[data->out_mode].conf.sync_all);
 		break;
 	    case CHIP_ADV7170:
 		/* ADV7170/1 component out: MR40 (register 4, bit 0) */
 		SET_REG(tmpconfig[ADV7170_REG_MR4], 0,
-				ModeInfo[data->out_mode].component);
+				mode_info[data->out_mode].conf.component);
 		/* ADV7170/1 YUV out: MR41 (register 4, bit 1) */
 		SET_REG(tmpconfig[ADV7170_REG_MR4], 1,
-				ModeInfo[data->out_mode].yuv);
+				mode_info[data->out_mode].conf.yuv);
 		/* ADV7170/1 EuroSCART: MR33 (register 3, bit 3) */
 		SET_REG(tmpconfig[ADV7170_REG_MR3], 3,
-			ModeInfo[data->out_mode].euroscart);
+			mode_info[data->out_mode].conf.euroscart);
 		/* ADV7170/1 RGB sync: MR42 (register 4, bit 2) */
 		SET_REG(tmpconfig[ADV7170_REG_MR4], 2,
-				ModeInfo[data->out_mode].sync_all);
+				mode_info[data->out_mode].conf.sync_all);
 		break;
 	}
 	/* ADV7170/1/5A/6A non-interlace: MR10 (register 1, bit 0) */
 	SET_REG(tmpconfig[ADV717X_REG_MR1], 0,
-			ModeInfo[data->out_mode].progressive);
+			mode_info[data->out_mode].conf.progressive);
 	/* ADV7170/1/5A/6A DAC A control: MR16 (register 1, bit 6) */
-	SET_REG(tmpconfig[ADV717X_REG_MR1], 6, ModeInfo[data->out_mode].dacA);
+	SET_REG(tmpconfig[ADV717X_REG_MR1], 6, mode_info[data->out_mode].conf.dacA);
 	/* ADV7170/1/5A/6A DAC B control: MR15 (register 1, bit 5) */
-	SET_REG(tmpconfig[ADV717X_REG_MR1], 5, ModeInfo[data->out_mode].dacB);
+	SET_REG(tmpconfig[ADV717X_REG_MR1], 5, mode_info[data->out_mode].conf.dacB);
 	/* ADV7170/1/5A/6A DAC C control: MR13 (register 1, bit 3) */
-	SET_REG(tmpconfig[ADV717X_REG_MR1], 3, ModeInfo[data->out_mode].dacC);
+	SET_REG(tmpconfig[ADV717X_REG_MR1], 3, mode_info[data->out_mode].conf.dacC);
 	/* ADV7170/1/5A/6A DAC D control: MR14 (register 1, bit 4) */
-	SET_REG(tmpconfig[ADV717X_REG_MR1], 4, ModeInfo[data->out_mode].dacD);
+	SET_REG(tmpconfig[ADV717X_REG_MR1], 4, mode_info[data->out_mode].conf.dacD);
 
 	if (!data->enableoutput) {
 		tmpconfig[ADV717X_REG_MR1] |= 0x7f;
@@ -683,18 +710,20 @@
 
 int __init adv717x_init(void)
 {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 	int i;
 	for (i=0; i < EM8300_MAX; i++)
 		if ((output_mode[i]) && (output_mode[i][0])) {
 			int j;
 			for (j=0; j < MODE_MAX; j++)
-				if (strcmp(output_mode[i], ModeInfo[j].name) == 0) {
+				if (strcmp(output_mode[i], mode_info[j].name) == 0) {
 					output_mode_nr[i] = j;
 					break;
 				}
 			if (j == MODE_MAX)
 				printk(KERN_WARNING "adv717x.o: Unknown output mode: %s\n", output_mode[i]);
 		}
+#endif /* ! CONFIG_MODULEPARAM */
 	//request_module("i2c-algo-bit");
 	return i2c_add_driver(&adv717x_driver);
 }
Index: em8300/modules/bt865.c
diff -u em8300/modules/bt865.c:1.42 em8300/modules/bt865.c:1.43
--- em8300/modules/bt865.c:1.42	Tue Apr  4 15:30:32 2006
+++ em8300/modules/bt865.c	Fri May 12 15:04:56 2006
@@ -22,7 +22,11 @@
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
+#include <linux/version.h>
 #include <linux/module.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+#include <linux/moduleparam.h>
+#endif
 #include <linux/init.h>
 #include <linux/delay.h>
 #include <linux/errno.h>
@@ -40,7 +44,6 @@
 #include <linux/types.h>
 
 #include <linux/videodev.h>
-#include <linux/version.h>
 #include <asm/uaccess.h>
 
 #include <linux/i2c.h>
@@ -60,23 +63,44 @@
 EXPORT_NO_SYMBOLS;
 
 static int color_bars[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 0 };
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(color_bars, "1-" __MODULE_STRING(EM8300_MAX) "i");
+#else
+module_param_array(color_bars, bool, NULL, 0444);
+#endif
 MODULE_PARM_DESC(color_bars, "If you set this to 1 a set of color bars will be displayed on your screen (used for testing if the chip is working). Defaults to 0.");
 
-static int rgb_mode[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 0 };
-MODULE_PARM(rgb_mode, "1-" __MODULE_STRING(EM8300_MAX) "i");
-MODULE_PARM_DESC(rgb_mode, "Deprecated, use output_mode instead.");
+typedef enum {
+	MODE_COMPOSITE_SVIDEO,
+	MODE_RGB,
+	MODE_MAX
+} output_mode_t;
+
+struct output_conf_s {
+};
+
+#include "encoder_output_mode.h"
+
+static output_mode_t output_mode_nr[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = MODE_COMPOSITE_SVIDEO };
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 static char *output_mode[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = NULL };
 MODULE_PARM(output_mode, "1-" __MODULE_STRING(EM8300_MAX) "s");
+#else
+module_param_array_named(output_mode, output_mode_nr, output_mode_t, NULL, 0444);
+#endif
 MODULE_PARM_DESC(output_mode, "Specifies the output mode to use for the BT865 video encoder. See the README-modoptions file for the list of mode names to use. Default is SVideo + composite (\"comp+svideo\").");
 
-
 static int bt865_attach_adapter(struct i2c_adapter *adapter);
 int bt865_detach_client(struct i2c_client *client);
 int bt865_command(struct i2c_client *client, unsigned int cmd, void *arg);
 static int bt865_setup(struct i2c_client *client);
 
+static const mode_info_t mode_info[] = {
+	[ MODE_COMPOSITE_SVIDEO ] =		{ "comp+svideo" , { } },
+	[ MODE_RGB ] =				{ "rgb"         , { } },
+};
+
 struct bt865_data_s {
 	int chiptype;
 	int mode;
@@ -853,7 +877,7 @@
 	}
 
 	data->bars = color_bars[em->card_nr];
-	data->rgbmode = rgb_mode[em->card_nr];
+	data->rgbmode = output_mode_nr[em->card_nr] == MODE_RGB;
 	data->enableoutput = 0;
 
 	if (EM8300_VIDEOMODE_DEFAULT == EM8300_VIDEOMODE_PAL) {
@@ -980,17 +1004,20 @@
 
 int __init bt865_init(void)
 {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 	int i;
 	for (i=0; i < EM8300_MAX; i++)
 		if ((output_mode[i]) && (output_mode[i][0])) {
-			if (strcmp(output_mode[i], "comp+svideo") == 0) {
-				rgb_mode[i] = 0;
-			} else if (strcmp(output_mode[i], "rgb") == 0) {
-				rgb_mode[i] = 1;
-			} else {
+			int j;
+			for (j=0; j < MODE_MAX; j++)
+				if (strcmp(output_mode[i], mode_info[j].name) == 0) {
+					output_mode_nr[i] = j;
+					break;
+				}
+			if (j == MODE_MAX)
 				printk(KERN_WARNING "bt865: Unknown output mode: %s\n", output_mode[i]);
-			}
 		}
+#endif /* ! CONFIG_MODULEPARAM */
 	//request_module("i2c-algo-bit");
 	return i2c_add_driver(&bt865_driver);
 }
Index: em8300/modules/em8300_main.c
diff -u em8300/modules/em8300_main.c:1.113 em8300/modules/em8300_main.c:1.114
--- em8300/modules/em8300_main.c:1.113	Mon Apr 10 15:31:14 2006
+++ em8300/modules/em8300_main.c	Fri May 12 15:04:56 2006
@@ -20,6 +20,9 @@
 #include <linux/config.h>
 #include <linux/version.h>
 #include <linux/module.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+#include <linux/moduleparam.h>
+#endif
 #include <linux/delay.h>
 #include <linux/init.h>
 #include <linux/errno.h>
@@ -78,8 +81,12 @@
 
 EXPORT_NO_SYMBOLS;
 
-static unsigned int use_bt865[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 0 };
+static int use_bt865[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 0 };
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(use_bt865, "1-" __MODULE_STRING(EM8300_MAX) "i");
+#else
+module_param_array(use_bt865, bool, NULL, 0444);
+#endif
 MODULE_PARM_DESC(use_bt865, "Set this to 1 if you have a bt865. It changes some internal register values. Defaults to 0.");
 
 /*
@@ -90,7 +97,11 @@
 #else
 int dicom_other_pal[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 0 };
 #endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(dicom_other_pal, "1-" __MODULE_STRING(EM8300_MAX) "i");
+#else
+module_param_array(dicom_other_pal, bool, NULL, 0444);
+#endif
 MODULE_PARM_DESC(dicom_other_pal, "If this is set, then some internal register values are swapped for PAL and NTSC. Defaults to 1.");
 
 #ifdef CONFIG_EM8300_DICOMFIX
@@ -98,7 +109,11 @@
 #else
 int dicom_fix[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 0 };
 #endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(dicom_fix, "1-" __MODULE_STRING(EM8300_MAX) "i");
+#else
+module_param_array(dicom_fix, bool, NULL, 0444);
+#endif
 MODULE_PARM_DESC(dicom_fix, "If this is set then some internal register values are changed. Fixes green screen problems for some. Defaults to 1.");
 
 #ifdef CONFIG_EM8300_DICOMCTRL
@@ -106,7 +121,11 @@
 #else
 int dicom_control[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 0 };
 #endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(dicom_control, "1-" __MODULE_STRING(EM8300_MAX) "i");
+#else
+module_param_array(dicom_control, bool, NULL, 0444);
+#endif
 MODULE_PARM_DESC(dicom_control, "If this is set then some internal register values are changed. Fixes green screen problems for some. Defaults to 1.");
 
 #ifdef CONFIG_EM8300_UCODETIMEOUT
@@ -114,7 +133,11 @@
 #else
 int bt865_ucode_timeout[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 0 };
 #endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(bt865_ucode_timeout, "1-" __MODULE_STRING(EM8300_MAX) "i");
+#else
+module_param_array(bt865_ucode_timeout, bool, NULL, 0444);
+#endif
 MODULE_PARM_DESC(bt865_ucode_timeout, "Set this to 1 if you have a bt865 and get timeouts when uploading the microcode. Defaults to 0.");
 
 #ifdef CONFIG_EM8300_LOOPBACK
@@ -122,11 +145,19 @@
 #else
 int activate_loopback[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = 0 };
 #endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(activate_loopback, "1-" __MODULE_STRING(EM8300_MAX) "i");
+#else
+module_param_array(activate_loopback, bool, NULL, 0444);
+#endif
 MODULE_PARM_DESC(activate_loopback, "If you lose video after loading the modules or uploading the microcode set this to 1. Defaults to 0.");
 
 int major = EM8300_MAJOR;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(major, "i");
+#else
+module_param(major, int, 0444);
+#endif
 MODULE_PARM_DESC(major, "Major number used for the devices. "
 		 "0 means automatically assigned. "
 		 "Defaults to " __MODULE_STRING(EM8300_MAJOR) ".");
@@ -137,7 +168,11 @@
 
 #ifdef CONFIG_EM8300_AUDIO_OSS
 int dsp_num[EM8300_MAX] = { [ 0 ... EM8300_MAX-1 ] = -1 };
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 MODULE_PARM(dsp_num, "1-" __MODULE_STRING(EM8300_MAX) "i");
+#else
+module_param_array(dsp_num, int, NULL, 0444);
+#endif
 MODULE_PARM_DESC(dsp_num, "The /dev/dsp number to assign to the card. -1 for automatic (this is the default).");
 
 static int dsp_num_table[16];
--- /dev/null	2006-06-26 16:01:27.644585500 +0300
+++ em8300/modules/encoder_output_mode.h	2006-06-26 16:26:19.279900000 +0300
@@ -0,0 +1,28 @@
+typedef struct {
+	char const * name;
+	struct output_conf_s conf;
+} mode_info_t;
+
+static const mode_info_t mode_info[];
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+static int param_set_output_mode_t(const char *val, struct kernel_param *kp)
+{
+	if (val) {
+		int i;
+		for (i=0; i < MODE_MAX; i++)
+			if (strcmp(val, mode_info[i].name) == 0) {
+				*(output_mode_t *)kp->arg = i;
+				return 0;
+			}
+	}
+	printk(KERN_ERR "%s: output_mode parameter expected\n",
+	       kp->name);
+	return -EINVAL;
+}
+
+static int param_get_output_mode_t(char *buffer, struct kernel_param *kp)
+{
+	return sprintf(buffer, "%s", mode_info[*(output_mode_t *)kp->arg].name);
+}
+#endif


--- NEW FILE em8300-kmod.spec ---
# stuff to be implemented externally:
Source10: kmodtool
%define   kmodtool bash %{SOURCE10}
# end stuff to be ...

# hardcode for now:
%{!?kversion: %define kversion 2.6.17-1.2145_FC5}

%define kmod_name em8300
%define kverrel %(%{kmodtool} verrel %{?kversion} 2>/dev/null)

%define upvar ""
%ifarch i686 ppc
%define smpvar smp
%endif
%ifarch i686 x86_64
%define xenvar xen0
%define kdumpvar kdump
%endif
%{!?kvariants: %define kvariants %{?upvar} %{?smpvar} %{?xenvar} %{?kdumpvar}}


Name:           %{kmod_name}-kmod
Summary:        Kernel modules for DXR3/Hollywood Plus MPEG decoder cards
Version:        0.15.3
Release:        6.%(echo %{kverrel} | tr - _)

Group:          System Environment/Kernel
License:        GPL
URL:            http://dxr3.sourceforge.net/
Source0:        http://dl.sf.net/dxr3/%{kmod_name}-nofirmware-%{version}.tar.gz
Patch0:         http://cachalot.mine.nu/src/dxr3/em8300-adv7170-wss.patch
Patch1:         %{name}-2617.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  sed >= 3.95

ExclusiveArch:  i586 i686 x86_64 ppc

%description
%{summary}.

%{expand:%(%{kmodtool} rpmtemplate %{kmod_name} %{kverrel} %{kvariants} 2>/dev/null)}

%prep
%setup -q -c
cd %{kmod_name}-%{version}
%patch1 -p1
%patch0 -p0
sed -i -e s/2,6,16/2,6,15/ modules/*.c # FC5 pre-2.6.16 marked as 2.6.15 hack
cd ..
for kvariant in %{kvariants} ; do
    cp -a %{kmod_name}-%{version} _kmod_build_$kvariant
done


%build
for kvariant in %{kvariants} ; do
    ks=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu}
    cd _kmod_build_$kvariant/modules && \
    make %{?_smp_mflags} V=1 KERNEL_LOCATION=$ks && \
    cd ../..
done
    

%install
rm -rf $RPM_BUILD_ROOT
for kvariant in %{kvariants} ; do
    ks=%{_usrsrc}/kernels/%{kverrel}${kvariant:+-$kvariant}-%{_target_cpu}
    make -C _kmod_build_$kvariant/modules install DESTDIR=$RPM_BUILD_ROOT \
        KERNEL_LOCATION=$ks MODINST=extra/%{kmod_name}
done


%clean
rm -rf $RPM_BUILD_ROOT


%changelog
* Tue Jul 11 2006 Ville Skyttä <ville.skytta at iki.fi> - 0.15.3-6
- Enable PPC SMP builds (#189400).
- Use firmwareless tarball (#189400).
- Untabify specfile (#189400).

* Mon Jun 26 2006 Ville Skyttä <ville.skytta at iki.fi> - 0.15.3-5
- Apply upstream patch to fix build with kernel 2.6.17, rediff WSS patch.

* Sun Jun 11 2006 Ville Skyttä <ville.skytta at iki.fi> - 0.15.3-4
- Invoke kmodtool with bash instead of sh.

* Sun May 14 2006 Ville Skyttä <ville.skytta at iki.fi> - 0.15.3-3
- Require version >= of em8300-kmod-common.
- Provide em8300-kmod instead of kmod-em8300 to fix upgrade woes (#970).

* Thu Apr 27 2006 Ville Skyttä <ville.skytta at iki.fi> - 0.15.3-2
- Provide "kernel-modules" instead of "kernel-module" to match yum's config.

* Mon Apr 10 2006 Ville Skyttä <ville.skytta at iki.fi> - 0.15.3-1
- 0.15.3.

* Sun Mar 26 2006 Ville Skyttä <ville.skytta at iki.fi> - 0.15.3-0.1.rc1
- 0.15.3-rc1.

* Sat Mar 25 2006 Ville Skyttä <ville.skytta at iki.fi> - 0.15.2-6.cvs20060325
- CVS snapshot from today, I2C patches no longer needed, should fix #839.
- Allow passing --define kversion and --define kvariants to the build again.
- Update kmodtool to 0.10.6.

* Sat Mar 18 2006 <fedora[AT]leemhuis.info> - 0.15.2-5
- xenU does not build and was probably a bad idea idea in any case

* Sat Mar 18 2006 <fedora[AT]leemhuis.info> - 0.15.2-4
- drop 0.lvn
- hardcode kernel and variants
- add ExclusiveArch until we have something better

* Sun Jan 29 2006 Ville Skyttä <ville.skytta at iki.fi> - 0.15.2-0.lvn.4
- Adapt to FE kernel module packaging conventions.
- Add upstream patch to fix build with 2.6.16-rc1+ kernels.

* Sat Jan 21 2006 Ville Skyttä <ville.skytta at iki.fi> - 0.15.2-0.lvn.3
- Don't run autoreconf in modules-only builds (#736).

* Fri Jan 13 2006 Ville Skyttä <ville.skytta at iki.fi> - 0.15.2-0.lvn.2
- Split GUI utilities into -utils subpackage, build them with GTK2.
- Drop no longer needed -fPIC tweak on x86_64.
- Fix Group tag of main package.

* Thu Nov 24 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.2-0.lvn.1
- 0.15.2.
- Make the actual microcode to load a symlink; additional local microcodes
  can now be installed in /lib/firmware, and /lib/firmware/em8300.bin
  symlinked to the one to actually use.

* Sat Nov 19 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.2-0.lvn.0.1.rc2
- 0.15.2-rc2, most desktop entry fixups applied upstream.
- Add icon for DXR3view menu entry.

* Sat Nov  5 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.2-0.lvn.0.1.rc1
- 0.15.2-rc1, includes microcode autoload capabilities.
- Include icon for dhc, remove invalid desktop entry categories.
- Update README-modprobe.conf.

* Tue Sep  6 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.1-0.lvn.1
- 0.15.1.

* Wed Aug 31 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.1-0.lvn.0.1.rc1
- 0.15.1-rc1, drop udev patch.

* Mon Jul 25 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.5
- Drop libdxr3, nothing uses it and it'll be removed in next upstream release.

* Fri Jul  8 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.4
- Install modules into extra/em8300.

* Sat Jun 18 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.3
- Use udev rules.d snippet for device permissions.

* Sun Jun 12 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.2
- Add "--with 2612" rpmbuild option to enable building with 2.6.12-pre
  kernels that report themselves as 2.6.11, such as early FC4 ones.

* Wed Jun  1 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.1
- 0.15.0.

* Sun May 29 2005 Thorsten Leemhuis <fedora at leemhuis.info> - 0.15.0-0.lvn.0.15.rc4
- Build userspace with -fPIC on x86_64 to fix build error

* Tue May 24 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.0.14.rc4
- 0.15.0rc4, memset patch applied upstream.

* Fri May 13 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.0.13.rc3
- Improve optional rpmbuild options:
  --without modules: do not build the kernel modules
  --without userland: do not build the userland stuff

* Fri Apr 29 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.0.12.rc3
- 0.15.0.rc3.

* Sun Apr 10 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.0.12.rc2
- 0.15.0.rc2.
- Drop unused Provides: kernel-module.
- Move video group creation from main to kernel module package(s).

* Sat Apr  2 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.0.12.cvs20050331
- Add FC4 kernel-devel and new kernel-module-devel compatibility.

* Thu Mar 31 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.0.11.cvs20050331
- Update to upstream CVS HEAD as of now, many patches applied upstream.

* Sat Mar 26 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.0.11.cvs20050326
- Update to upstream CVS HEAD as of now.
- Revert microcode location to upstream default (/usr/share/misc/em8300.uc).

* Tue Mar  8 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.0.11.cvs20050308
- Update to upstream CVS HEAD as of now.

* Sun Feb 27 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.0.10.cvs20050227
- Update tarball naming and modprobe.conf README, no upstream changes.

* Mon Feb  7 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.15.0-0.lvn.0.10.cvs20041117
- Use my pre-rolled/patched tarball.
- Remove unnecessary Epochs.

* Tue Jan 25 2005 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.lvn.0.9.cvs20041117
- URLize patches and extra sources.

* Fri Jan  7 2005 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.lvn.0.8.cvs20041117
- Remove "manual" device node creation, let udev handle all of it.
- Add console.perms README.

* Mon Dec  6 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.lvn.0.7.cvs20041117
- Apply ADV7170 WSS patch from Seppo Ingalsuo.
- Include upstream ALSA patch, but don't apply it just yet.
- Fix em8300setup usage message.
- Get rid of acconfig.h to appease newer autotools.
- Make "--with(out) kmod" conditional sections smaller in the specfile.

* Sun Dec  5 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.lvn.0.6.cvs20041117
- Create the video group in the correct place.

* Sun Nov 28 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.lvn.0.5.cvs20041117
- Adjust setup for udev.
- Create/use the video group.
- Avoid creating /usr/include/linux twice during build.

* Wed Nov 17 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.lvn.0.4.cvs20041117
- Update to 20041117, most patches applied upstream.

* Wed Nov  3 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.lvn.0.4.cvs20041101
- Update to 20041101 + upstream patches.

* Sat Oct  9 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.lvn.0.4.cvs20040907
- Fix module directory permissions.

* Mon Sep 13 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.lvn.0.3.cvs20040907
- Install modules into /lib/modules/$uname/updates/em8300.
- Add URL to tarball.

* Sat Sep 11 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.lvn.0.2.cvs20040907
- Reset mode of installed modules to 644.

* Tue Sep  7 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.lvn.0.1.cvs20040907
- Update to 0.15.0.cvs20040907.
- Disable dependency tracking to speed up the build.

* Sun Aug 29 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.lvn.0.1.cvs20040827
- Update to 0.15.0.cvs20040827.

* Fri Jul 30 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.lvn.0.1.cvs20040730
- Reorganize packaging, introduce libdxr3* as real subpackages.
- Add "--without kmod" rpmbuild option for skipping the kernel module build
  and "--with kmod" for building only the kernel modules.
- s/fdr/lvn/ due to non open source microcode.

* Sat Jul  3 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.15.0-0.fdr.0.1.cvs20040702
- Update to 0.15.0.cvs20040702.

* Wed Mar 17 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.14.0-0.fdr.1
- Update to 0.14.0.

* Fri Feb 20 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.13.0-0.fdr.3.cvs20040220
- Update to CVS 20040220.

* Mon Feb  9 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.13.0-0.fdr.3.cvs20040107
- Update to kmodhelper 0.9.8.

* Sat Jan 31 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.13.0-0.fdr.2.cvs20040107
- Drop release from the dependency between the kernel module and main package.
- Update kmodhelper to 0.9.7.
- Use MAKEDEV for creating the device nodes.
- Spec file cleanups.

* Tue Jan  6 2004 Ville Skyttä <ville.skytta at iki.fi> - 0:0.13.0-0.fdr.1.cvs20040107
- First build.


--- NEW FILE kmodtool ---
#!/bin/bash

# kmodtool - Helper script for building kernel module RPMs
# Copyright (c) 2003-2006 Ville Skyttä <ville.skytta at iki.fi>,
#                         Thorsten Leemhuis <fedora at leemhuis.info>
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

myprog="kmodtool"
myver="0.10.9"
knownvariants='\(BOOT\|\(big\|huge\)mem\|debug\|enterprise\|kdump\|smp\|uml\|xen[0U]\)'
kmod_name=
kver=
verrel=
variant=

get_verrel ()
{
  verrel="$(echo "${1-$(uname -r)}" | sed 's/'${knownvariants}'$//')"
}

print_verrel ()
{
  get_verrel $@ || return $?
  echo "${verrel}"
}

get_variant ()
{
  variant="$(echo "${1-$(uname -r)}" | sed 's/^.*'${knownvariants}'$/\1/')"
  [ "${variant}" != "${1-$(uname -r)}" ] || variant='""'
}

print_variant ()
{
  get_variant $@ || return $?
  echo "${variant}"
}


get_rpmtemplate ()
{
    local variant="${1}"
    local dashvariant="${variant:+-${variant}}"
    case "$verrel" in
        *.EL*) kdep="kernel${dashvariant}-%{_target_cpu} = ${verrel}" ;;
        *)     kdep="kernel-%{_target_cpu} = ${verrel}${variant}"     ;;
    esac
    cat <<EOF
%package       -n kmod-${kmod_name}${dashvariant}
Summary:          ${kmod_name} kernel module(s)
Group:            System Environment/Kernel
Provides:         kernel-modules = ${verrel}${variant}
Provides:         ${kmod_name}-kmod = %{?epoch:%{epoch}:}%{version}-%{release}
Requires:         ${kdep}
Requires:         ${kmod_name}-kmod-common >= %{?epoch:%{epoch}:}%{version}
Requires(post):   /sbin/depmod
Requires(postun): /sbin/depmod
BuildRequires:    kernel${dashvariant}-devel-%{_target_cpu} = ${verrel}
%description   -n kmod-${kmod_name}${dashvariant}
This package provides the ${kmod_name} kernel modules built for the Linux
kernel ${verrel}${variant} for the %{_target_cpu} family of processors.
%post          -n kmod-${kmod_name}${dashvariant}
/sbin/depmod -aeF /boot/System.map-${verrel}${variant} ${verrel}${variant} > /dev/null || :
%postun        -n kmod-${kmod_name}${dashvariant}
/sbin/depmod -aF /boot/System.map-${verrel}${variant} ${verrel}${variant} &> /dev/null || :
%files         -n kmod-${kmod_name}${dashvariant}
%defattr(644,root,root,755)
/lib/modules/${verrel}${variant}/extra/${kmod_name}/

EOF
}

print_rpmtemplate ()
{
  kmod_name="${1}"
  shift
  kver="${1}"
  get_verrel "${1}"
  shift
  if [ -z "${kmod_name}" ] ; then
    echo "Please provide the kmodule-name as first parameter." >&2
    exit 2
  elif [ -z "${kver}" ] ; then
    echo "Please provide the kver as second parameter." >&2
    exit 2
  elif [ -z "${verrel}" ] ; then
    echo "Couldn't find out the verrel." >&2
    exit 2
  fi

  for variant in "$@" ; do
    get_rpmtemplate "${variant}"
  done
}

usage ()
{
  cat <<EOF
You called: ${invocation}

Usage: ${myprog} <command> <option>+
 Commands:
  verrel <uname>                               
    - Get "base" version-release.
  variant <uname>                               
    - Get variant from uname.
  rpmtemplate <mainpgkname> <uname> <variants> 
    - Return a template for
  version  
    - Output version number and exit.
EOF
}

invocation="$(basename ${0}) $@"
while [ "${1}" ] ; do
  case "${1}" in
    verrel)
      shift
      print_verrel $@
      exit $?
      ;;
    variant)
      shift
      print_variant $@
      exit $?
      ;;
    rpmtemplate)
      shift
      print_rpmtemplate "$@"
      exit $?
      ;;
    version)
      echo "${myprog} ${myver}"
      exit 0
      ;;
    *)
      echo "Error: Unknown option '${1}'." >&2
      usage >&2
      exit 2
      ;;
  esac
done

# Local variables:
# mode: sh
# sh-indentation: 2
# indent-tabs-mode: nil
# End:
# ex: ts=2 sw=2 et


Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/em8300-kmod/devel/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	22 Jul 2006 20:15:37 -0000	1.1
+++ .cvsignore	22 Jul 2006 20:16:26 -0000	1.2
@@ -0,0 +1 @@
+em8300-nofirmware-0.15.3.tar.gz


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/em8300-kmod/devel/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources	22 Jul 2006 20:15:37 -0000	1.1
+++ sources	22 Jul 2006 20:16:26 -0000	1.2
@@ -0,0 +1 @@
+7e19428a267f645e7d9023f4d2c24a2c  em8300-nofirmware-0.15.3.tar.gz




More information about the fedora-extras-commits mailing list