Revision: 5760 Author: pebender Date: Sat Oct 31 07:26:41 2009 Log: - Added saa7164 kernel module (backported from next-20091030).
http://code.google.com/p/minimyth/source/detail?r=5760 Added: /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-saa7164.patch Modified: /trunk/gar-minimyth/html/minimyth/document-changelog.txt /trunk/gar-minimyth/html/minimyth/document-hardware.html /trunk/gar-minimyth/script/kernel-2.6.31/linux/Makefile /trunk/gar-minimyth/script/kernel-2.6.31/linux/checksums /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-c3-2.config /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-c3.config /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-pentium-mmx.config /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-x86_64-x86-64.config /trunk/gar-minimyth/script/meta/minimyth/files/source/lists/software/minimyth-lib-list.backend ======================================= --- /dev/null +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-saa7164.patch Sat Oct 31 07:26:41 2009 @@ -0,0 +1,5535 @@ +diff -Naur linux-2.6.31.5-old/Documentation/video4linux/CARDLIST.saa7164 linux-2.6.31.5-new/Documentation/video4linux/CARDLIST.saa7164 +--- linux-2.6.31.5-old/Documentation/video4linux/CARDLIST.saa7164 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.31.5-new/Documentation/video4linux/CARDLIST.saa7164 2009-10-15 17:41:50.000000000 -0700 +@@ -0,0 +1,9 @@ ++ 0 -> Unknown ++ 1 -> Generic Rev2 ++ 2 -> Generic Rev3 ++ 3 -> Hauppauge WinTV-HVR2250 [0070:8880,0070:8810] ++ 4 -> Hauppauge WinTV-HVR2200 [0070:8980] ++ 5 -> Hauppauge WinTV-HVR2200 [0070:8900] ++ 6 -> Hauppauge WinTV-HVR2200 [0070:8901] ++ 7 -> Hauppauge WinTV-HVR2250 [0070:8891,0070:8851] ++ 8 -> Hauppauge WinTV-HVR2250 [0070:88A1] +diff -Naur linux-2.6.31.5-old/drivers/media/common/tuners/tda18271-fe.c linux-2.6.31.5-new/drivers/media/common/tuners/tda18271-fe.c +--- linux-2.6.31.5-old/drivers/media/common/tuners/tda18271-fe.c 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/drivers/media/common/tuners/tda18271-fe.c 2009-10-31 06:52:02.000000000 -0700 +@@ -27,7 +27,7 @@ + MODULE_PARM_DESC(debug, "set debug level " + "(info=1, map=2, reg=4, adv=8, cal=16 (or-able))"); + +-static int tda18271_cal_on_startup; ++static int tda18271_cal_on_startup = -1; + module_param_named(cal, tda18271_cal_on_startup, int, 0644); + MODULE_PARM_DESC(cal, "perform RF tracking filter calibration on startup"); + +@@ -1192,10 +1192,25 @@ + case 0: + goto fail; + case 1: ++ { + /* new tuner instance */ ++ int rf_cal_on_startup; ++ + priv->gate = (cfg) ? cfg->gate : TDA18271_GATE_AUTO; + priv->role = (cfg) ? cfg->role : TDA18271_MASTER; + priv->config = (cfg) ? cfg->config : 0; ++ ++ /* tda18271_cal_on_startup == -1 when cal ++ * module option is unset */ ++ if (tda18271_cal_on_startup == -1) { ++ /* honor attach-time configuration */ ++ rf_cal_on_startup = ++ ((cfg) && (cfg->rf_cal_on_startup)) ? 1 : 0; ++ } else { ++ /* module option overrides attach configuration */ ++ rf_cal_on_startup = tda18271_cal_on_startup; ++ } ++ + priv->cal_initialized = false; + mutex_init(&priv->lock); + +@@ -1213,11 +1228,12 @@ + mutex_lock(&priv->lock); + tda18271_init_regs(fe); + +- if ((tda18271_cal_on_startup) && (priv->id == TDA18271HDC2)) ++ if ((rf_cal_on_startup) && (priv->id == TDA18271HDC2)) + tda18271c2_rf_cal_init(fe); + + mutex_unlock(&priv->lock); + break; ++ } + default: + /* existing tuner instance */ + fe->tuner_priv = priv; +diff -Naur linux-2.6.31.5-old/drivers/media/common/tuners/tda18271.h linux-2.6.31.5-new/drivers/media/common/tuners/tda18271.h +--- linux-2.6.31.5-old/drivers/media/common/tuners/tda18271.h 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/drivers/media/common/tuners/tda18271.h 2009-10-31 06:52:02.000000000 -0700 +@@ -77,6 +77,9 @@ + /* use i2c gate provided by analog or digital demod */ + enum tda18271_i2c_gate gate; + ++ /* force rf tracking filter calibration on startup */ ++ unsigned int rf_cal_on_startup:1; ++ + /* some i2c providers cant write all 39 registers at once */ + unsigned int small_i2c:1; + +diff -Naur linux-2.6.31.5-old/drivers/media/video/Kconfig linux-2.6.31.5-new/drivers/media/video/Kconfig +--- linux-2.6.31.5-old/drivers/media/video/Kconfig 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/drivers/media/video/Kconfig 2009-10-31 06:32:20.000000000 -0700 +@@ -690,6 +690,8 @@ + + source "drivers/media/video/cx18/Kconfig" + ++source "drivers/media/video/saa7164/Kconfig" ++ + config VIDEO_M32R_AR + tristate "AR devices" + depends on M32R && VIDEO_V4L1 +diff -Naur linux-2.6.31.5-old/drivers/media/video/Makefile linux-2.6.31.5-new/drivers/media/video/Makefile +--- linux-2.6.31.5-old/drivers/media/video/Makefile 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/drivers/media/video/Makefile 2009-10-31 06:33:04.000000000 -0700 +@@ -157,6 +157,7 @@ + obj-$(CONFIG_VIDEO_AU0828) += au0828/ + + obj-$(CONFIG_USB_VIDEO_CLASS) += uvc/ ++obj-$(CONFIG_VIDEO_SAA7164) += saa7164/ + + obj-$(CONFIG_VIDEO_IR_I2C) += ir-kbd-i2c.o + +diff -Naur linux-2.6.31.5-old/drivers/media/video/saa7164/Kconfig linux-2.6.31.5-new/drivers/media/video/saa7164/Kconfig +--- linux-2.6.31.5-old/drivers/media/video/saa7164/Kconfig 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.31.5-new/drivers/media/video/saa7164/Kconfig 2009-10-15 17:41:50.000000000 -0700 +@@ -0,0 +1,18 @@ ++config VIDEO_SAA7164 ++ tristate "NXP SAA7164 support" ++ depends on DVB_CORE && PCI && I2C ++ select I2C_ALGOBIT ++ select FW_LOADER ++ select VIDEO_TUNER ++ select VIDEO_TVEEPROM ++ select VIDEOBUF_DVB ++ select DVB_TDA10048 if !DVB_FE_CUSTOMISE ++ select DVB_S5H1411 if !DVB_FE_CUSTOMISE ++ select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMISE ++ ---help--- ++ This is a video4linux driver for NXP SAA7164 based ++ TV cards. ++ ++ To compile this driver as a module, choose M here: the ++ module will be called saa7164 ++ +diff -Naur linux-2.6.31.5-old/drivers/media/video/saa7164/Makefile linux-2.6.31.5-new/drivers/media/video/saa7164/Makefile +--- linux-2.6.31.5-old/drivers/media/video/saa7164/Makefile 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.31.5-new/drivers/media/video/saa7164/Makefile 2009-10-15 17:41:50.000000000 -0700 +@@ -0,0 +1,12 @@ ++saa7164-objs := saa7164-cards.o saa7164-core.o saa7164-i2c.o saa7164-dvb.o \ ++ saa7164-fw.o saa7164-bus.o saa7164-cmd.o saa7164-api.o \ ++ saa7164-buffer.o ++ ++obj-$(CONFIG_VIDEO_SAA7164) += saa7164.o ++ ++EXTRA_CFLAGS += -Idrivers/media/video ++EXTRA_CFLAGS += -Idrivers/media/common/tuners ++EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core ++EXTRA_CFLAGS += -Idrivers/media/dvb/frontends ++ ++EXTRA_CFLAGS += $(extra-cflags-y) $(extra-cflags-m) +diff -Naur linux-2.6.31.5-old/drivers/media/video/saa7164/saa7164-api.c linux-2.6.31.5-new/drivers/media/video/saa7164/saa7164-api.c +--- linux-2.6.31.5-old/drivers/media/video/saa7164/saa7164-api.c 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.31.5-new/drivers/media/video/saa7164/saa7164-api.c 2009-10-15 17:41:50.000000000 -0700 +@@ -0,0 +1,600 @@ ++/* ++ * Driver for the NXP SAA7164 PCIe bridge ++ * ++ * Copyright (c) 2009 Steven Toth <[email protected]> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include <linux/wait.h> ++ ++#include "saa7164.h" ++ ++int saa7164_api_transition_port(struct saa7164_tsport *port, u8 mode) ++{ ++ int ret; ++ ++ ret = saa7164_cmd_send(port->dev, port->hwcfg.unitid, SET_CUR, ++ SAA_STATE_CONTROL, sizeof(mode), &mode); ++ if (ret != SAA_OK) ++ printk(KERN_ERR "%s() error, ret = 0x%x\n", __func__, ret); ++ ++ return ret; ++} ++ ++int saa7164_api_get_fw_version(struct saa7164_dev *dev, u32 *version) ++{ ++ int ret; ++ ++ ret = saa7164_cmd_send(dev, 0, GET_CUR, ++ GET_FW_VERSION_CONTROL, sizeof(u32), version); ++ if (ret != SAA_OK) ++ printk(KERN_ERR "%s() error, ret = 0x%x\n", __func__, ret); ++ ++ return ret; ++} ++ ++int saa7164_api_read_eeprom(struct saa7164_dev *dev, u8 *buf, int buflen) ++{ ++ u8 reg[] = { 0x0f, 0x00 }; ++ ++ if (buflen < 128) ++ return -ENOMEM; ++ ++ /* Assumption: Hauppauge eeprom is at 0xa0 on on bus 0 */ ++ /* TODO: Pull the details from the boards struct */ ++ return saa7164_api_i2c_read(&dev->i2c_bus[0], 0xa0 >> 1, sizeof(reg), ++ ®[0], 128, buf); ++} ++ ++ ++int saa7164_api_configure_port_mpeg2ts(struct saa7164_dev *dev, ++ struct saa7164_tsport *port, ++ tmComResTSFormatDescrHeader_t *tsfmt) ++{ ++ dprintk(DBGLVL_API, " bFormatIndex = 0x%x\n", tsfmt->bFormatIndex); ++ dprintk(DBGLVL_API, " bDataOffset = 0x%x\n", tsfmt->bDataOffset); ++ dprintk(DBGLVL_API, " bPacketLength= 0x%x\n", tsfmt->bPacketLength); ++ dprintk(DBGLVL_API, " bStrideLength= 0x%x\n", tsfmt->bStrideLength); ++ dprintk(DBGLVL_API, " bguid = (....)\n"); ++ ++ /* Cache the hardware configuration in the port */ ++ ++ port->bufcounter = port->hwcfg.BARLocation; ++ port->pitch = port->hwcfg.BARLocation + (2 * sizeof(u32)); ++ port->bufsize = port->hwcfg.BARLocation + (3 * sizeof(u32)); ++ port->bufoffset = port->hwcfg.BARLocation + (4 * sizeof(u32)); ++ port->bufptr32l = port->hwcfg.BARLocation + ++ (4 * sizeof(u32)) + ++ (sizeof(u32) * port->hwcfg.buffercount) + sizeof(u32); ++ port->bufptr32h = port->hwcfg.BARLocation + ++ (4 * sizeof(u32)) + ++ (sizeof(u32) * port->hwcfg.buffercount); ++ port->bufptr64 = port->hwcfg.BARLocation + ++ (4 * sizeof(u32)) + ++ (sizeof(u32) * port->hwcfg.buffercount); ++ dprintk(DBGLVL_API, " = port->hwcfg.BARLocation = 0x%x\n", ++ port->hwcfg.BARLocation); ++ ++ dprintk(DBGLVL_API, " = VS_FORMAT_MPEGTS (becomes dev->ts[%d])\n", ++ port->nr); ++ ++ return 0; ++} ++ ++int saa7164_api_dump_subdevs(struct saa7164_dev *dev, u8 *buf, int len) ++{ ++ struct saa7164_tsport *port = 0; ++ u32 idx, next_offset; ++ int i; ++ tmComResDescrHeader_t *hdr, *t; ++ tmComResExtDevDescrHeader_t *exthdr; ++ tmComResPathDescrHeader_t *pathhdr; ++ tmComResAntTermDescrHeader_t *anttermhdr; ++ tmComResTunerDescrHeader_t *tunerunithdr; ++ tmComResDMATermDescrHeader_t *vcoutputtermhdr; ++ tmComResTSFormatDescrHeader_t *tsfmt; ++ u32 currpath = 0; ++ ++ dprintk(DBGLVL_API, ++ "%s(?,?,%d) sizeof(tmComResDescrHeader_t) = %d bytes\n", ++ __func__, len, (u32)sizeof(tmComResDescrHeader_t)); ++ ++ for (idx = 0; idx < (len - sizeof(tmComResDescrHeader_t)); ) { ++ ++ hdr = (tmComResDescrHeader_t *)(buf + idx); ++ ++ if (hdr->type != CS_INTERFACE) ++ return SAA_ERR_NOT_SUPPORTED; ++ ++ dprintk(DBGLVL_API, "@ 0x%x = \n", idx); ++ switch (hdr->subtype) { ++ case GENERAL_REQUEST: ++ dprintk(DBGLVL_API, " GENERAL_REQUEST\n"); ++ break; ++ case VC_TUNER_PATH: ++ dprintk(DBGLVL_API, " VC_TUNER_PATH\n"); ++ pathhdr = (tmComResPathDescrHeader_t *)(buf + idx); ++ dprintk(DBGLVL_API, " pathid = 0x%x\n", ++ pathhdr->pathid); ++ currpath = pathhdr->pathid; ++ break; ++ case VC_INPUT_TERMINAL: ++ dprintk(DBGLVL_API, " VC_INPUT_TERMINAL\n"); ++ anttermhdr = ++ (tmComResAntTermDescrHeader_t *)(buf + idx); ++ dprintk(DBGLVL_API, " terminalid = 0x%x\n", ++ anttermhdr->terminalid); ++ dprintk(DBGLVL_API, " terminaltype = 0x%x\n", ++ anttermhdr->terminaltype); ++ switch (anttermhdr->terminaltype) { ++ case ITT_ANTENNA: ++ dprintk(DBGLVL_API, " = ITT_ANTENNA\n"); ++ break; ++ case LINE_CONNECTOR: ++ dprintk(DBGLVL_API, " = LINE_CONNECTOR\n"); ++ break; ++ case SPDIF_CONNECTOR: ++ dprintk(DBGLVL_API, " = SPDIF_CONNECTOR\n"); ++ break; ++ case COMPOSITE_CONNECTOR: ++ dprintk(DBGLVL_API, ++ " = COMPOSITE_CONNECTOR\n"); ++ break; ++ case SVIDEO_CONNECTOR: ++ dprintk(DBGLVL_API, " = SVIDEO_CONNECTOR\n"); ++ break; ++ case COMPONENT_CONNECTOR: ++ dprintk(DBGLVL_API, ++ " = COMPONENT_CONNECTOR\n"); ++ break; ++ case STANDARD_DMA: ++ dprintk(DBGLVL_API, " = STANDARD_DMA\n"); ++ break; ++ default: ++ dprintk(DBGLVL_API, " = undefined (0x%x)\n", ++ anttermhdr->terminaltype); ++ } ++ dprintk(DBGLVL_API, " assocterminal= 0x%x\n", ++ anttermhdr->assocterminal); ++ dprintk(DBGLVL_API, " iterminal = 0x%x\n", ++ anttermhdr->iterminal); ++ dprintk(DBGLVL_API, " controlsize = 0x%x\n", ++ anttermhdr->controlsize); ++ break; ++ case VC_OUTPUT_TERMINAL: ++ dprintk(DBGLVL_API, " VC_OUTPUT_TERMINAL\n"); ++ vcoutputtermhdr = ++ (tmComResDMATermDescrHeader_t *)(buf + idx); ++ dprintk(DBGLVL_API, " unitid = 0x%x\n", ++ vcoutputtermhdr->unitid); ++ dprintk(DBGLVL_API, " terminaltype = 0x%x\n", ++ vcoutputtermhdr->terminaltype); ++ switch (vcoutputtermhdr->terminaltype) { ++ case ITT_ANTENNA: ++ dprintk(DBGLVL_API, " = ITT_ANTENNA\n"); ++ break; ++ case LINE_CONNECTOR: ++ dprintk(DBGLVL_API, " = LINE_CONNECTOR\n"); ++ break; ++ case SPDIF_CONNECTOR: ++ dprintk(DBGLVL_API, " = SPDIF_CONNECTOR\n"); ++ break; ++ case COMPOSITE_CONNECTOR: ++ dprintk(DBGLVL_API, ++ " = COMPOSITE_CONNECTOR\n"); ++ break; ++ case SVIDEO_CONNECTOR: ++ dprintk(DBGLVL_API, " = SVIDEO_CONNECTOR\n"); ++ break; ++ case COMPONENT_CONNECTOR: ++ dprintk(DBGLVL_API, ++ " = COMPONENT_CONNECTOR\n"); ++ break; ++ case STANDARD_DMA: ++ dprintk(DBGLVL_API, " = STANDARD_DMA\n"); ++ break; ++ default: ++ dprintk(DBGLVL_API, " = undefined (0x%x)\n", ++ vcoutputtermhdr->terminaltype); ++ } ++ dprintk(DBGLVL_API, " assocterminal= 0x%x\n", ++ vcoutputtermhdr->assocterminal); ++ dprintk(DBGLVL_API, " sourceid = 0x%x\n", ++ vcoutputtermhdr->sourceid); ++ dprintk(DBGLVL_API, " iterminal = 0x%x\n", ++ vcoutputtermhdr->iterminal); ++ dprintk(DBGLVL_API, " BARLocation = 0x%x\n", ++ vcoutputtermhdr->BARLocation); ++ dprintk(DBGLVL_API, " flags = 0x%x\n", ++ vcoutputtermhdr->flags); ++ dprintk(DBGLVL_API, " interruptid = 0x%x\n", ++ vcoutputtermhdr->interruptid); ++ dprintk(DBGLVL_API, " buffercount = 0x%x\n", ++ vcoutputtermhdr->buffercount); ++ dprintk(DBGLVL_API, " metadatasize = 0x%x\n", ++ vcoutputtermhdr->metadatasize); ++ dprintk(DBGLVL_API, " controlsize = 0x%x\n", ++ vcoutputtermhdr->controlsize); ++ dprintk(DBGLVL_API, " numformats = 0x%x\n", ++ vcoutputtermhdr->numformats); ++ ++ t = (tmComResDescrHeader_t *) ++ ((tmComResDMATermDescrHeader_t *)(buf + idx)); ++ next_offset = idx + (vcoutputtermhdr->len); ++ for (i = 0; i < vcoutputtermhdr->numformats; i++) { ++ t = (tmComResDescrHeader_t *) ++ (buf + next_offset); ++ switch (t->subtype) { ++ case VS_FORMAT_MPEG2TS: ++ tsfmt = ++ (tmComResTSFormatDescrHeader_t *)t; ++ if (currpath == 1) ++ port = &dev->ts1; ++ else ++ port = &dev->ts2; ++ memcpy(&port->hwcfg, vcoutputtermhdr, ++ sizeof(*vcoutputtermhdr)); ++ saa7164_api_configure_port_mpeg2ts(dev, ++ port, tsfmt); ++ break; ++ case VS_FORMAT_MPEG2PS: ++ dprintk(DBGLVL_API, ++ " = VS_FORMAT_MPEG2PS\n"); ++ break; ++ case VS_FORMAT_VBI: ++ dprintk(DBGLVL_API, ++ " = VS_FORMAT_VBI\n"); ++ break; ++ case VS_FORMAT_RDS: ++ dprintk(DBGLVL_API, ++ " = VS_FORMAT_RDS\n"); ++ break; ++ case VS_FORMAT_UNCOMPRESSED: ++ dprintk(DBGLVL_API, ++ " = VS_FORMAT_UNCOMPRESSED\n"); ++ break; ++ case VS_FORMAT_TYPE: ++ dprintk(DBGLVL_API, ++ " = VS_FORMAT_TYPE\n"); ++ break; ++ default: ++ dprintk(DBGLVL_API, ++ " = undefined (0x%x)\n", ++ t->subtype); ++ } ++ next_offset += t->len; ++ } ++ ++ break; ++ case TUNER_UNIT: ++ dprintk(DBGLVL_API, " TUNER_UNIT\n"); ++ tunerunithdr = ++ (tmComResTunerDescrHeader_t *)(buf + idx); ++ dprintk(DBGLVL_API, " unitid = 0x%x\n", ++ tunerunithdr->unitid); ++ dprintk(DBGLVL_API, " sourceid = 0x%x\n", ++ tunerunithdr->sourceid); ++ dprintk(DBGLVL_API, " iunit = 0x%x\n", ++ tunerunithdr->iunit); ++ dprintk(DBGLVL_API, " tuningstandards = 0x%x\n", ++ tunerunithdr->tuningstandards); ++ dprintk(DBGLVL_API, " controlsize = 0x%x\n", ++ tunerunithdr->controlsize); ++ dprintk(DBGLVL_API, " controls = 0x%x\n", ++ tunerunithdr->controls); ++ break; ++ case VC_SELECTOR_UNIT: ++ dprintk(DBGLVL_API, " VC_SELECTOR_UNIT\n"); ++ break; ++ case VC_PROCESSING_UNIT: ++ dprintk(DBGLVL_API, " VC_PROCESSING_UNIT\n"); ++ break; ++ case FEATURE_UNIT: ++ dprintk(DBGLVL_API, " FEATURE_UNIT\n"); ++ break; ++ case ENCODER_UNIT: ++ dprintk(DBGLVL_API, " ENCODER_UNIT\n"); ++ break; ++ case EXTENSION_UNIT: ++ dprintk(DBGLVL_API, " EXTENSION_UNIT\n"); ++ exthdr = (tmComResExtDevDescrHeader_t *)(buf + idx); ++ dprintk(DBGLVL_API, " unitid = 0x%x\n", ++ exthdr->unitid); ++ dprintk(DBGLVL_API, " deviceid = 0x%x\n", ++ exthdr->deviceid); ++ dprintk(DBGLVL_API, " devicetype = 0x%x\n", ++ exthdr->devicetype); ++ if (exthdr->devicetype & 0x1) ++ dprintk(DBGLVL_API, " = Decoder Device\n"); ++ if (exthdr->devicetype & 0x2) ++ dprintk(DBGLVL_API, " = GPIO Source\n"); ++ if (exthdr->devicetype & 0x4) ++ dprintk(DBGLVL_API, " = Video Decoder\n"); ++ if (exthdr->devicetype & 0x8) ++ dprintk(DBGLVL_API, " = Audio Decoder\n"); ++ if (exthdr->devicetype & 0x20) ++ dprintk(DBGLVL_API, " = Crossbar\n"); ++ if (exthdr->devicetype & 0x40) ++ dprintk(DBGLVL_API, " = Tuner\n"); ++ if (exthdr->devicetype & 0x80) ++ dprintk(DBGLVL_API, " = IF PLL\n"); ++ if (exthdr->devicetype & 0x100) ++ dprintk(DBGLVL_API, " = Demodulator\n"); ++ if (exthdr->devicetype & 0x200) ++ dprintk(DBGLVL_API, " = RDS Decoder\n"); ++ if (exthdr->devicetype & 0x400) ++ dprintk(DBGLVL_API, " = Encoder\n"); ++ if (exthdr->devicetype & 0x800) ++ dprintk(DBGLVL_API, " = IR Decoder\n"); ++ if (exthdr->devicetype & 0x1000) ++ dprintk(DBGLVL_API, " = EEPROM\n"); ++ if (exthdr->devicetype & 0x2000) ++ dprintk(DBGLVL_API, ++ " = VBI Decoder\n"); ++ if (exthdr->devicetype & 0x10000) ++ dprintk(DBGLVL_API, ++ " = Streaming Device\n"); ++ if (exthdr->devicetype & 0x20000) ++ dprintk(DBGLVL_API, ++ " = DRM Device\n"); ++ if (exthdr->devicetype & 0x40000000) ++ dprintk(DBGLVL_API, ++ " = Generic Device\n"); ++ if (exthdr->devicetype & 0x80000000) ++ dprintk(DBGLVL_API, ++ " = Config Space Device\n"); ++ dprintk(DBGLVL_API, " numgpiopins = 0x%x\n", ++ exthdr->numgpiopins); ++ dprintk(DBGLVL_API, " numgpiogroups = 0x%x\n", ++ exthdr->numgpiogroups); ++ dprintk(DBGLVL_API, " controlsize = 0x%x\n", ++ exthdr->controlsize); ++ break; ++ case PVC_INFRARED_UNIT: ++ dprintk(DBGLVL_API, " PVC_INFRARED_UNIT\n"); ++ break; ++ case DRM_UNIT: ++ dprintk(DBGLVL_API, " DRM_UNIT\n"); ++ break; ++ default: ++ dprintk(DBGLVL_API, "default %d\n", hdr->subtype); ++ } ++ ++ dprintk(DBGLVL_API, " 1.%x\n", hdr->len); ++ dprintk(DBGLVL_API, " 2.%x\n", hdr->type); ++ dprintk(DBGLVL_API, " 3.%x\n", hdr->subtype); ++ dprintk(DBGLVL_API, " 4.%x\n", hdr->unitid); ++ ++ idx += hdr->len; ++ } ++ ++ return 0; ++} ++ ++int saa7164_api_enum_subdevs(struct saa7164_dev *dev) ++{ ++ int ret; ++ u32 buflen = 0; ++ u8 *buf; ++ ++ dprintk(DBGLVL_API, "%s()\n", __func__); ++ ++ /* Get the total descriptor length */ ++ ret = saa7164_cmd_send(dev, 0, GET_LEN, ++ GET_DESCRIPTORS_CONTROL, sizeof(buflen), &buflen); ++ if (ret != SAA_OK) ++ printk(KERN_ERR "%s() error, ret = 0x%x\n", __func__, ret); ++ ++ dprintk(DBGLVL_API, "%s() total descriptor size = %d bytes.\n", ++ __func__, buflen); ++ ++ /* Allocate enough storage for all of the descs */ ++ buf = kzalloc(buflen, GFP_KERNEL); ++ if (buf == NULL) ++ return SAA_ERR_NO_RESOURCES; ++ ++ /* Retrieve them */ ++ ret = saa7164_cmd_send(dev, 0, GET_CUR, ++ GET_DESCRIPTORS_CONTROL, buflen, buf); ++ if (ret != SAA_OK) { ++ printk(KERN_ERR "%s() error, ret = 0x%x\n", __func__, ret); ++ goto out; ++ } ++ ++ if (saa_debug & DBGLVL_API) ++ saa7164_dumphex16(dev, buf, (buflen/16)*16); ++ ++ saa7164_api_dump_subdevs(dev, buf, buflen); ++ ++out: ++ kfree(buf); ++ return ret; ++} ++ ++int saa7164_api_i2c_read(struct saa7164_i2c *bus, u8 addr, u32 reglen, u8 *reg, ++ u32 datalen, u8 *data) ++{ ++ struct saa7164_dev *dev = bus->dev; ++ u16 len = 0; ++ int unitid; ++ u32 regval; ++ u8 buf[256]; ++ int ret; ++ ++ dprintk(DBGLVL_API, "%s()\n", __func__); ++ ++ if (reglen > 4) ++ return -EIO; ++ ++ if (reglen == 1) ++ regval = *(reg); ++ else ++ if (reglen == 2) ++ regval = ((*(reg) << 8) || *(reg+1)); ++ else ++ if (reglen == 3) ++ regval = ((*(reg) << 16) | (*(reg+1) << 8) | *(reg+2)); ++ else ++ if (reglen == 4) ++ regval = ((*(reg) << 24) | (*(reg+1) << 16) | ++ (*(reg+2) << 8) | *(reg+3)); ++ ++ /* Prepare the send buffer */ ++ /* Bytes 00-03 source register length ++ * 04-07 source bytes to read ++ * 08... register address ++ */ ++ memset(buf, 0, sizeof(buf)); ++ memcpy((buf + 2 * sizeof(u32) + 0), reg, reglen); ++ *((u32 *)(buf + 0 * sizeof(u32))) = reglen; ++ *((u32 *)(buf + 1 * sizeof(u32))) = datalen; ++ ++ unitid = saa7164_i2caddr_to_unitid(bus, addr); ++ if (unitid < 0) { ++ printk(KERN_ERR ++ "%s() error, cannot translate regaddr 0x%x to unitid\n", ++ __func__, addr); ++ return -EIO; ++ } ++ ++ ret = saa7164_cmd_send(bus->dev, unitid, GET_LEN, ++ EXU_REGISTER_ACCESS_CONTROL, sizeof(len), &len); ++ if (ret != SAA_OK) { ++ printk(KERN_ERR "%s() error, ret(1) = 0x%x\n", __func__, ret); ++ return -EIO; ++ } ++ ++ dprintk(DBGLVL_API, "%s() len = %d bytes\n", __func__, len); ++ ++ if (saa_debug & DBGLVL_I2C) ++ saa7164_dumphex16(dev, buf, 2 * 16); ++ ++ ret = saa7164_cmd_send(bus->dev, unitid, GET_CUR, ++ EXU_REGISTER_ACCESS_CONTROL, len, &buf); ++ if (ret != SAA_OK) ++ printk(KERN_ERR "%s() error, ret(2) = 0x%x\n", __func__, ret); ++ else { ++ if (saa_debug & DBGLVL_I2C) ++ saa7164_dumphex16(dev, buf, sizeof(buf)); ++ memcpy(data, (buf + 2 * sizeof(u32) + reglen), datalen); ++ } ++ ++ return ret == SAA_OK ? 0 : -EIO; ++} ++ ++/* For a given 8 bit i2c address device, write the buffer */ ++int saa7164_api_i2c_write(struct saa7164_i2c *bus, u8 addr, u32 datalen, ++ u8 *data) ++{ ++ struct saa7164_dev *dev = bus->dev; ++ u16 len = 0; ++ int unitid; ++ int reglen; ++ u8 buf[256]; ++ int ret; ++ ++ dprintk(DBGLVL_API, "%s()\n", __func__); ++ ++ if ((datalen == 0) || (datalen > 232)) ++ return -EIO; ++ ++ memset(buf, 0, sizeof(buf)); ++ ++ unitid = saa7164_i2caddr_to_unitid(bus, addr); ++ if (unitid < 0) { ++ printk(KERN_ERR ++ "%s() error, cannot translate regaddr 0x%x to unitid\n", ++ __func__, addr); ++ return -EIO; ++ } ++ ++ reglen = saa7164_i2caddr_to_reglen(bus, addr); ++ if (unitid < 0) { ++ printk(KERN_ERR ++ "%s() error, cannot translate regaddr to reglen\n", ++ __func__); ++ return -EIO; ++ } ++ ++ ret = saa7164_cmd_send(bus->dev, unitid, GET_LEN, ++ EXU_REGISTER_ACCESS_CONTROL, sizeof(len), &len); ++ if (ret != SAA_OK) { ++ printk(KERN_ERR "%s() error, ret(1) = 0x%x\n", __func__, ret); ++ return -EIO; ++ } ++ ++ dprintk(DBGLVL_API, "%s() len = %d bytes\n", __func__, len); ++ ++ /* Prepare the send buffer */ ++ /* Bytes 00-03 dest register length ++ * 04-07 dest bytes to write ++ * 08... register address ++ */ ++ *((u32 *)(buf + 0 * sizeof(u32))) = reglen; ++ *((u32 *)(buf + 1 * sizeof(u32))) = datalen - reglen; ++ memcpy((buf + 2 * sizeof(u32)), data, datalen); ++ ++ if (saa_debug & DBGLVL_I2C) ++ saa7164_dumphex16(dev, buf, sizeof(buf)); ++ ++ ret = saa7164_cmd_send(bus->dev, unitid, SET_CUR, ++ EXU_REGISTER_ACCESS_CONTROL, len, &buf); ++ if (ret != SAA_OK) ++ printk(KERN_ERR "%s() error, ret(2) = 0x%x\n", __func__, ret); ++ ++ return ret == SAA_OK ? 0 : -EIO; ++} ++ ++ ++int saa7164_api_modify_gpio(struct saa7164_dev *dev, u8 unitid, ++ u8 pin, u8 state) ++{ ++ int ret; ++ tmComResGPIO_t t; ++ ++ dprintk(DBGLVL_API, "%s(0x%x, %d, %d)\n", ++ __func__, unitid, pin, state); ++ ++ if ((pin > 7) || (state > 2)) ++ return SAA_ERR_BAD_PARAMETER; ++ ++ t.pin = pin; ++ t.state = state; ++ ++ ret = saa7164_cmd_send(dev, unitid, SET_CUR, ++ EXU_GPIO_CONTROL, sizeof(t), &t); ++ if (ret != SAA_OK) ++ printk(KERN_ERR "%s() error, ret = 0x%x\n", ++ __func__, ret); ++ ++ return ret; ++} ++ ++int saa7164_api_set_gpiobit(struct saa7164_dev *dev, u8 unitid, ++ u8 pin) ++{ ++ return saa7164_api_modify_gpio(dev, unitid, pin, 1); ++} ++ ++int saa7164_api_clear_gpiobit(struct saa7164_dev *dev, u8 unitid, ++ u8 pin) ++{ ++ return saa7164_api_modify_gpio(dev, unitid, pin, 0); ++} ++ ++ ++ +diff -Naur linux-2.6.31.5-old/drivers/media/video/saa7164/saa7164-buffer.c linux-2.6.31.5-new/drivers/media/video/saa7164/saa7164-buffer.c +--- linux-2.6.31.5-old/drivers/media/video/saa7164/saa7164-buffer.c 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.31.5-new/drivers/media/video/saa7164/saa7164-buffer.c 2009-10-15 17:41:50.000000000 -0700 +@@ -0,0 +1,155 @@ ++/* ++ * Driver for the NXP SAA7164 PCIe bridge ++ * ++ * Copyright (c) 2009 Steven Toth <[email protected]> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include "saa7164.h" ++ ++/* The PCI address space for buffer handling looks like this: ++ ++ +-u32 wide-------------+ ++ | + ++ +-u64 wide------------------------------------+ ++ + + ++ +----------------------+ ++ | CurrentBufferPtr + Pointer to current PCI buffer >-+ ++ +----------------------+ | ++ | Unused + | ++ +----------------------+ | ++ | Pitch + = 188 (bytes) | ++ +----------------------+ | ++ | PCI buffer size + = pitch * number of lines (312) | ++ +----------------------+ | ++ |0| Buf0 Write Offset + | ++ +----------------------+ v ++ |1| Buf1 Write Offset + | ++ +----------------------+ | ++ |2| Buf2 Write Offset + | ++ +----------------------+ | ++ |3| Buf3 Write Offset + | ++ +----------------------+ | ++ ... More write offsets | ++ +---------------------------------------------+ | ++ +0| set of ptrs to PCI pagetables + | ++ +---------------------------------------------+ | ++ +1| set of ptrs to PCI pagetables + <--------+ ++ +---------------------------------------------+ ++ +2| set of ptrs to PCI pagetables + ++ +---------------------------------------------+ ++ +3| set of ptrs to PCI pagetables + >--+ ++ +---------------------------------------------+ | ++ ... More buffer pointers | +----------------+ ++ +->| pt[0] TS data | ++ | +----------------+ ++ | ++ | +----------------+ ++ +->| pt[1] TS data | ++ | +----------------+ ++ | etc ++ */ ++ ++/* Allocate a new buffer structure and associated PCI space in bytes. ++ * len must be a multiple of sizeof(u64) ++ */ ++struct saa7164_buffer *saa7164_buffer_alloc(struct saa7164_tsport *port, ++ u32 len) ++{ ++ struct saa7164_buffer *buf = 0; ++ struct saa7164_dev *dev = port->dev; ++ int i; ++ ++ if ((len == 0) || (len >= 65536) || (len % sizeof(u64))) { ++ log_warn("%s() SAA_ERR_BAD_PARAMETER\n", __func__); ++ goto ret; ++ } ++ ++ buf = kzalloc(sizeof(struct saa7164_buffer), GFP_KERNEL); ++ if (buf == NULL) { ++ log_warn("%s() SAA_ERR_NO_RESOURCES\n", __func__); ++ goto ret; ++ } ++ ++ buf->port = port; ++ buf->flags = SAA7164_BUFFER_FREE; ++ /* TODO: arg len is being ignored */ ++ buf->pci_size = SAA7164_PT_ENTRIES * 0x1000; ++ buf->pt_size = (SAA7164_PT_ENTRIES * sizeof(u64)) + 0x1000; ++ ++ /* Allocate contiguous memory */ ++ buf->cpu = pci_alloc_consistent(port->dev->pci, buf->pci_size, ++ &buf->dma); ++ if (!buf->cpu) ++ goto fail1; ++ ++ buf->pt_cpu = pci_alloc_consistent(port->dev->pci, buf->pt_size, ++ &buf->pt_dma); ++ if (!buf->pt_cpu) ++ goto fail2; ++ ++ /* init the buffers to a known pattern, easier during debugging */ ++ memset(buf->cpu, 0xff, buf->pci_size); ++ memset(buf->pt_cpu, 0xff, buf->pt_size); ++ ++ dprintk(DBGLVL_BUF, "%s() allocated buffer @ 0x%p\n", __func__, buf); ++ dprintk(DBGLVL_BUF, " pci_cpu @ 0x%p dma @ 0x%08lx len = 0x%x\n", ++ buf->cpu, (long)buf->dma, buf->pci_size); ++ dprintk(DBGLVL_BUF, " pt_cpu @ 0x%p pt_dma @ 0x%08lx len = 0x%x\n", ++ buf->pt_cpu, (long)buf->pt_dma, buf->pt_size); ++ ++ /* Format the Page Table Entries to point into the data buffer */ ++ for (i = 0 ; i < SAA7164_PT_ENTRIES; i++) { ++ ++ *(buf->pt_cpu + i) = buf->dma + (i * 0x1000); /* TODO */ ++ ++ } ++ ++ goto ret; ++ ++fail2: ++ pci_free_consistent(port->dev->pci, buf->pci_size, buf->cpu, buf->dma); ++fail1: ++ kfree(buf); ++ ++ buf = 0; ++ret: ++ return buf; ++} ++ ++int saa7164_buffer_dealloc(struct saa7164_tsport *port, ++ struct saa7164_buffer *buf) ++{ ++ struct saa7164_dev *dev = port->dev; ++ ++ if ((buf == 0) || (port == 0)) ++ return SAA_ERR_BAD_PARAMETER; ++ ++ dprintk(DBGLVL_BUF, "%s() deallocating buffer @ 0x%p\n", __func__, buf); ++ ++ if (buf->flags != SAA7164_BUFFER_FREE) ++ log_warn(" freeing a non-free buffer\n"); ++ ++ pci_free_consistent(port->dev->pci, buf->pci_size, buf->cpu, buf->dma); ++ pci_free_consistent(port->dev->pci, buf->pt_size, buf->pt_cpu, ++ buf->pt_dma); ++ ++ kfree(buf); ++ ++ return SAA_OK; ++} ++ +diff -Naur linux-2.6.31.5-old/drivers/media/video/saa7164/saa7164-bus.c linux-2.6.31.5-new/drivers/media/video/saa7164/saa7164-bus.c +--- linux-2.6.31.5-old/drivers/media/video/saa7164/saa7164-bus.c 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.31.5-new/drivers/media/video/saa7164/saa7164-bus.c 2009-10-15 17:41:50.000000000 -0700 +@@ -0,0 +1,448 @@ ++/* ++ * Driver for the NXP SAA7164 PCIe bridge ++ * ++ * Copyright (c) 2009 Steven Toth <[email protected]> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include "saa7164.h" ++ ++/* The message bus to/from the firmware is a ring buffer in PCI address ++ * space. Establish the defaults. ++ */ ++int saa7164_bus_setup(struct saa7164_dev *dev) ++{ ++ tmComResBusInfo_t *b = &dev->bus; ++ ++ mutex_init(&b->lock); ++ ++ b->Type = TYPE_BUS_PCIe; ++ b->m_wMaxReqSize = SAA_DEVICE_MAXREQUESTSIZE; ++ ++ b->m_pdwSetRing = (u8 *)(dev->bmmio + ++ ((u32)dev->busdesc.CommandRing)); ++ ++ b->m_dwSizeSetRing = SAA_DEVICE_BUFFERBLOCKSIZE; ++ ++ b->m_pdwGetRing = (u8 *)(dev->bmmio + ++ ((u32)dev->busdesc.ResponseRing)); ++ ++ b->m_dwSizeGetRing = SAA_DEVICE_BUFFERBLOCKSIZE; ++ ++ b->m_pdwSetWritePos = (u32 *)((u8 *)(dev->bmmio + ++ ((u32)dev->intfdesc.BARLocation) + (2 * sizeof(u64)))); ++ ++ b->m_pdwSetReadPos = (u32 *)((u8 *)b->m_pdwSetWritePos + ++ 1 * sizeof(u32)); ++ ++ b->m_pdwGetWritePos = (u32 *)((u8 *)b->m_pdwSetWritePos + ++ 2 * sizeof(u32)); ++ ++ b->m_pdwGetReadPos = (u32 *)((u8 *)b->m_pdwSetWritePos + ++ 3 * sizeof(u32)); ++ ++ return 0; ++} ++ ++void saa7164_bus_dump(struct saa7164_dev *dev) ++{ ++ tmComResBusInfo_t *b = &dev->bus; ++ ++ dprintk(DBGLVL_BUS, "Dumping the bus structure:\n"); ++ dprintk(DBGLVL_BUS, " .type = %d\n", b->Type); ++ dprintk(DBGLVL_BUS, " .dev->bmmio = 0x%p\n", dev->bmmio); ++ dprintk(DBGLVL_BUS, " .m_wMaxReqSize = 0x%x\n", b->m_wMaxReqSize); ++ dprintk(DBGLVL_BUS, " .m_pdwSetRing = 0x%p\n", b->m_pdwSetRing); ++ dprintk(DBGLVL_BUS, " .m_dwSizeSetRing = 0x%x\n", b->m_dwSizeSetRing); ++ dprintk(DBGLVL_BUS, " .m_pdwGetRing = 0x%p\n", b->m_pdwGetRing); ++ dprintk(DBGLVL_BUS, " .m_dwSizeGetRing = 0x%x\n", b->m_dwSizeGetRing); ++ ++ dprintk(DBGLVL_BUS, " .m_pdwSetWritePos = 0x%p (0x%08x)\n", ++ b->m_pdwSetWritePos, *b->m_pdwSetWritePos); ++ ++ dprintk(DBGLVL_BUS, " .m_pdwSetReadPos = 0x%p (0x%08x)\n", ++ b->m_pdwSetReadPos, *b->m_pdwSetReadPos); ++ ++ dprintk(DBGLVL_BUS, " .m_pdwGetWritePos = 0x%p (0x%08x)\n", ++ b->m_pdwGetWritePos, *b->m_pdwGetWritePos); ++ ++ dprintk(DBGLVL_BUS, " .m_pdwGetReadPos = 0x%p (0x%08x)\n", ++ b->m_pdwGetReadPos, *b->m_pdwGetReadPos); ++} ++ ++void saa7164_bus_dumpmsg(struct saa7164_dev *dev, tmComResInfo_t* m, void *buf) ++{ ++ dprintk(DBGLVL_BUS, "Dumping msg structure:\n"); ++ dprintk(DBGLVL_BUS, " .id = %d\n", m->id); ++ dprintk(DBGLVL_BUS, " .flags = 0x%x\n", m->flags); ++ dprintk(DBGLVL_BUS, " .size = 0x%x\n", m->size); ***The diff for this file has been truncated for email.*** ======================================= --- /trunk/gar-minimyth/html/minimyth/document-changelog.txt Fri Oct 30 14:11:16 2009 +++ /trunk/gar-minimyth/html/minimyth/document-changelog.txt Sat Oct 31 07:26:41 2009 @@ -5,7 +5,7 @@ MiniMyth release. For earlier changes see the yearly changelog files. -------------------------------------------------------------------------------- -Changes since 70 (2009-10-30): +Changes since 70 (2009-10-31): Current MythTV versions MythTV 0.20-softpad: version 0.20.2.softpad, release-0-20-fixes branch svn 16082 and @@ -32,6 +32,10 @@ linked to libXff86misc and it is not included in X11R7.5 (but is still available). +Modified kernel + - Added Hauppauge WinTV-HVR2200 and WinTV-HVR2250 related kernel drivers + (e.g. saa7164). + Fixed bugs - Fixed bug that caused boot to fail when huludesktop.data is not present in the MiniMyth read-write configuration directory. ======================================= --- /trunk/gar-minimyth/html/minimyth/document-hardware.html Tue Sep 15 14:50:25 2009 +++ /trunk/gar-minimyth/html/minimyth/document-hardware.html Sat Oct 31 07:26:41 2009 @@ -161,6 +161,7 @@ <li>cx8802</li> <li>dvb-usb-dib0700</li> <li>ivtv</li> + <li>saa7164</li> </ul> </dd> <dt id="driver-xorg-video"><strong>Xorg Video Hardware Drivers</strong></dt> @@ -438,7 +439,7 @@ alt="Valid CSS!" height="31" width="88" /></a> </div> <div class="version"> - Last Updated on 2009-09-15 + Last Updated on 2009-10-31 <br /> < mailto : webmaster at minimyth dot org > </div> ======================================= --- /trunk/gar-minimyth/script/kernel-2.6.31/linux/Makefile Mon Sep 28 17:58:54 2009 +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/Makefile Sat Oct 31 07:26:41 2009 @@ -7,6 +7,7 @@ DISTFILES = $(DISTNAME).tar.bz2 $(CONFIGFILE) PATCHFILES = $(DISTNAME).patch.gar PATCHFILES += $(DISTNAME)-perl.patch.gar +PATCHFILES += $(DISTNAME)-saa7164.patch PATCHFILES += $(DISTNAME)-intel_atom.patch PATCHFILES += $(DISTNAME)-bttv_lirc.patch PATCHFILES += $(DISTNAME)-unionfs_2.5.3.patch ======================================= --- /trunk/gar-minimyth/script/kernel-2.6.31/linux/checksums Thu Oct 22 19:35:03 2009 +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/checksums Sat Oct 31 07:26:41 2009 @@ -1,12 +1,13 @@ 926bff46d24e2f303e4ee92234e394d8 download/linux-2.6.31.5.tar.bz2 31098d91dc15c07a9526bd2f6c347bef download/linux-2.6.31.5.patch.gar 8ffc444f2a635868380e55a2714d6e0f download/linux-2.6.31.5-perl.patch.gar +c5a1bc9c7b1226d6ab8098971c8198bd download/linux-2.6.31.5-saa7164.patch 5ff44d89c6d84935cd18e50d75597cda download/linux-2.6.31.5-intel_atom.patch 959a5c5a7cf94e9f5015ff1a8ae88c0f download/linux-2.6.31.5-bttv_lirc.patch cbd4806d46552ff4daf2d3af283f5919 download/linux-2.6.31.5-unionfs_2.5.3.patch 6e5cff9c94dbe3cb23ac2605cd70e648 download/linux-2.6.31.5-disable_dma_for_cfa.patch e78c8e28d8228cecda3ec0223fbc7f18 download/linux-2.6.31.5-defaults.patch -c02710f3cc83de31d7d950f6ed12fd26 download/linux-2.6.31.5-i386-c3.config -191a9ff750e09f8f68cde7c062457316 download/linux-2.6.31.5-i386-c3-2.config -114da19f1ef55f780aadfe7c04d39261 download/linux-2.6.31.5-i386-pentium-mmx.config -478126ad56ad102393570917cc7c67c0 download/linux-2.6.31.5-x86_64-x86-64.config +1da4d6cde1c21bd48c81f988c87dbfbf download/linux-2.6.31.5-i386-c3.config +57ddf0fedb634a0a95bff0061d9e2726 download/linux-2.6.31.5-i386-c3-2.config +8b7b01dab75f80de690cb69cd905942f download/linux-2.6.31.5-i386-pentium-mmx.config +eb97db539e79aae515066ef8ca7c2135 download/linux-2.6.31.5-x86_64-x86-64.config ======================================= --- /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-c3-2.config Thu Oct 22 19:35:03 2009 +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-c3-2.config Sat Oct 31 07:26:41 2009 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.31.5 -# Thu Oct 22 19:11:50 2009 +# Sat Oct 31 07:17:36 2009 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -1325,6 +1325,7 @@ CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m @@ -1394,6 +1395,7 @@ CONFIG_VIDEO_IVTV=m # CONFIG_VIDEO_FB_IVTV is not set CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_SAA7164=m # CONFIG_VIDEO_CAFE_CCIC is not set # CONFIG_SOC_CAMERA is not set CONFIG_V4L_USB_DRIVERS=y @@ -1551,6 +1553,7 @@ CONFIG_DVB_DIB3000MC=m CONFIG_DVB_DIB7000M=m CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m CONFIG_DVB_VES1820=m CONFIG_DVB_TDA10021=m CONFIG_DVB_TDA10023=m ======================================= --- /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-c3.config Thu Oct 22 19:35:03 2009 +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-c3.config Sat Oct 31 07:26:41 2009 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.31.5 -# Thu Oct 22 19:11:31 2009 +# Sat Oct 31 07:17:24 2009 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -1323,6 +1323,7 @@ CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m @@ -1392,6 +1393,7 @@ CONFIG_VIDEO_IVTV=m # CONFIG_VIDEO_FB_IVTV is not set CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_SAA7164=m # CONFIG_VIDEO_CAFE_CCIC is not set # CONFIG_SOC_CAMERA is not set CONFIG_V4L_USB_DRIVERS=y @@ -1549,6 +1551,7 @@ CONFIG_DVB_DIB3000MC=m CONFIG_DVB_DIB7000M=m CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m CONFIG_DVB_VES1820=m CONFIG_DVB_TDA10021=m CONFIG_DVB_TDA10023=m ======================================= --- /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-pentium-mmx.config Thu Oct 22 19:35:03 2009 +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-pentium-mmx.config Sat Oct 31 07:26:41 2009 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.31.5 -# Thu Oct 22 19:10:40 2009 +# Sat Oct 31 07:16:42 2009 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -1324,6 +1324,7 @@ CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m @@ -1393,6 +1394,7 @@ CONFIG_VIDEO_IVTV=m # CONFIG_VIDEO_FB_IVTV is not set CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_SAA7164=m # CONFIG_VIDEO_CAFE_CCIC is not set # CONFIG_SOC_CAMERA is not set CONFIG_V4L_USB_DRIVERS=y @@ -1550,6 +1552,7 @@ CONFIG_DVB_DIB3000MC=m CONFIG_DVB_DIB7000M=m CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m CONFIG_DVB_VES1820=m CONFIG_DVB_TDA10021=m CONFIG_DVB_TDA10023=m ======================================= --- /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-x86_64-x86-64.config Thu Oct 22 19:35:03 2009 +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-x86_64-x86-64.config Sat Oct 31 07:26:41 2009 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.31.5 -# Thu Oct 22 19:12:15 2009 +# Sat Oct 31 07:17:54 2009 # CONFIG_64BIT=y # CONFIG_X86_32 is not set @@ -1259,6 +1259,7 @@ CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m @@ -1327,6 +1328,7 @@ CONFIG_VIDEO_IVTV=m # CONFIG_VIDEO_FB_IVTV is not set CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_SAA7164=m # CONFIG_VIDEO_CAFE_CCIC is not set # CONFIG_SOC_CAMERA is not set CONFIG_V4L_USB_DRIVERS=y @@ -1484,6 +1486,7 @@ CONFIG_DVB_DIB3000MC=m CONFIG_DVB_DIB7000M=m CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m CONFIG_DVB_VES1820=m CONFIG_DVB_TDA10021=m CONFIG_DVB_TDA10023=m ======================================= --- /trunk/gar-minimyth/script/meta/minimyth/files/source/lists/software/minimyth-lib-list.backend Mon Sep 28 09:06:55 2009 +++ /trunk/gar-minimyth/script/meta/minimyth/files/source/lists/software/minimyth-lib-list.backend Sat Oct 31 07:26:41 2009 @@ -15,6 +15,7 @@ modules/*/kernel/drivers/media/video/ivtv/ivtv.ko modules/*/kernel/drivers/media/video/msp3400.ko modules/*/kernel/drivers/media/video/saa7115.ko +modules/*/kernel/drivers/media/video/saa7164/saa7164.ko modules/*/kernel/drivers/media/video/tuner.ko modules/*/kernel/drivers/media/video/tvaudio.ko modules/*/misc/lirc/lirc_gpio.ko --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "minimyth-commits" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/minimyth-commits?hl=en -~----------~----~----~----~------~----~------~--~---
