[PATCH] xfree86: Remove i2c multimedia modules
Adam Jackson
ajax at redhat.com
Mon Jul 21 07:21:07 PDT 2014
These came in with the GATOS merge I think. The only driver using them
was radeon, and then only in UMS mode. The radeon driver dropped UMS
support from the main branch about two years ago, the UMS branch hasn't
been touched in about fifteen months, and does not build against 1.16 in
any case, so this is all dead code.
Signed-off-by: Adam Jackson <ajax at redhat.com>
---
hw/xfree86/i2c/Makefile.am | 36 +-
hw/xfree86/i2c/bt829.c | 822 ----------------------------------------
hw/xfree86/i2c/bt829.h | 103 -----
hw/xfree86/i2c/bt829_module.c | 20 -
hw/xfree86/i2c/fi1236.c | 686 ---------------------------------
hw/xfree86/i2c/fi1236.h | 113 ------
hw/xfree86/i2c/fi1236_module.c | 24 --
hw/xfree86/i2c/msp3430.c | 779 -------------------------------------
hw/xfree86/i2c/msp3430.h | 116 ------
hw/xfree86/i2c/msp3430_module.c | 24 --
hw/xfree86/i2c/tda8425.c | 83 ----
hw/xfree86/i2c/tda8425.h | 44 ---
hw/xfree86/i2c/tda8425_module.c | 24 --
hw/xfree86/i2c/tda9850.c | 136 -------
hw/xfree86/i2c/tda9850.h | 43 ---
hw/xfree86/i2c/tda9850_module.c | 24 --
hw/xfree86/i2c/tda9885.c | 100 -----
hw/xfree86/i2c/tda9885.h | 63 ---
hw/xfree86/i2c/tda9885_module.c | 24 --
hw/xfree86/i2c/uda1380.c | 196 ----------
hw/xfree86/i2c/uda1380.h | 81 ----
hw/xfree86/i2c/uda1380_module.c | 24 --
hw/xfree86/loader/loadmod.c | 1 -
23 files changed, 1 insertion(+), 3565 deletions(-)
delete mode 100644 hw/xfree86/i2c/bt829.c
delete mode 100644 hw/xfree86/i2c/bt829.h
delete mode 100644 hw/xfree86/i2c/bt829_module.c
delete mode 100644 hw/xfree86/i2c/fi1236.c
delete mode 100644 hw/xfree86/i2c/fi1236.h
delete mode 100644 hw/xfree86/i2c/fi1236_module.c
delete mode 100644 hw/xfree86/i2c/msp3430.c
delete mode 100644 hw/xfree86/i2c/msp3430.h
delete mode 100644 hw/xfree86/i2c/msp3430_module.c
delete mode 100644 hw/xfree86/i2c/tda8425.c
delete mode 100644 hw/xfree86/i2c/tda8425.h
delete mode 100644 hw/xfree86/i2c/tda8425_module.c
delete mode 100644 hw/xfree86/i2c/tda9850.c
delete mode 100644 hw/xfree86/i2c/tda9850.h
delete mode 100644 hw/xfree86/i2c/tda9850_module.c
delete mode 100644 hw/xfree86/i2c/tda9885.c
delete mode 100644 hw/xfree86/i2c/tda9885.h
delete mode 100644 hw/xfree86/i2c/tda9885_module.c
delete mode 100644 hw/xfree86/i2c/uda1380.c
delete mode 100644 hw/xfree86/i2c/uda1380.h
delete mode 100644 hw/xfree86/i2c/uda1380_module.c
diff --git a/hw/xfree86/i2c/Makefile.am b/hw/xfree86/i2c/Makefile.am
index c311591..8bf795d 100644
--- a/hw/xfree86/i2c/Makefile.am
+++ b/hw/xfree86/i2c/Makefile.am
@@ -1,43 +1,9 @@
noinst_LTLIBRARIES = libi2c.la
-multimediadir = $(moduledir)/multimedia
-multimedia_LTLIBRARIES = \
- bt829_drv.la \
- fi1236_drv.la \
- msp3430_drv.la \
- tda8425_drv.la \
- tda9850_drv.la \
- tda9885_drv.la \
- uda1380_drv.la
-
libi2c_la_SOURCES = xf86i2c.c
AM_CPPFLAGS = $(XORG_INCS)
AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
-sdk_HEADERS = xf86i2c.h bt829.h fi1236.h msp3430.h tda8425.h tda9850.h tda9885.h uda1380.h i2c_def.h
-
-#
-# i2c drivers
-#
-bt829_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
-bt829_drv_la_SOURCES = bt829.c bt829.h bt829_module.c
-
-fi1236_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
-fi1236_drv_la_SOURCES = fi1236.c fi1236.h fi1236_module.c tda9885.c
-
-msp3430_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
-msp3430_drv_la_SOURCES = msp3430.c msp3430.h msp3430_module.c
-
-tda8425_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
-tda8425_drv_la_SOURCES = tda8425.c tda8425.h tda8425_module.c
-
-tda9850_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
-tda9850_drv_la_SOURCES = tda9850.c tda9850.h tda9850_module.c
-
-tda9885_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
-tda9885_drv_la_SOURCES = tda9885.c tda9885.h tda9885_module.c
-
-uda1380_drv_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
-uda1380_drv_la_SOURCES = uda1380.c uda1380.h uda1380_module.c
+sdk_HEADERS = xf86i2c.h i2c_def.h
diff --git a/hw/xfree86/i2c/bt829.c b/hw/xfree86/i2c/bt829.c
deleted file mode 100644
index 991c26e..0000000
--- a/hw/xfree86/i2c/bt829.c
+++ /dev/null
@@ -1,822 +0,0 @@
-/* TODO: clean up/fix CC code */
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "xf86.h"
-#include "xf86i2c.h"
-#include "bt829.h"
-#include "i2c_def.h"
-
-/* Changing the following settings (especially VCROP) may */
-/* require modifying code that calls this driver. */
-#define HCROP 0 /* amount to crop from the left and right edges */
-#define VCROP 0 /* amount to crop from the top and bottom edges */
-
-#define BTVERSION (bt->id>>4)
-
-#define H(X) ( ((X)>>8) & 0xFF )
-#define L(X) ( (X) & 0xFF )
-
-#define LIMIT(X,A,B) (((X)<(A)) ? (A) : ((X)>(B)) ? (B) : (X) )
-
-/* Bt829 family chip ID's */
-#define BT815 0x02
-#define BT817 0x06
-#define BT819 0x07
-#define BT827 0x0C
-#define BT829 0x0E
-
-/* Bt829 registers */
-#define STATUS 0x00 /* Device Status */
-#define IFORM 0x01 /* Input Format */
-#define TDEC 0x02 /* Temporal Decimation */
-#define CROP 0x03 /* MSB Cropping */
-#define VDELAY_LO 0x04 /* Vertical Delay */
-#define VACTIVE_LO 0x05 /* Vertical Active */
-#define HDELAY_LO 0x06 /* Horizontal Delay */
-#define HACTIVE_LO 0x07 /* Horizontal Active */
-#define HSCALE_HI 0x08 /* Horizontal Scaling */
-#define HSCALE_LO 0x09 /* Horizontal Scaling */
-#define BRIGHT 0x0A /* Brightness Control */
-#define CONTROL 0x0B /* Miscellaneous Control */
-#define CONTRAST_LO 0x0C /* Luma Gain (Contrast) */
-#define SAT_U_LO 0x0D /* Chroma (U) Gain (Saturation) */
-#define SAT_V_LO 0x0E /* Chroma (V) Gain (Saturation) */
-#define HUE 0x0F /* Hue Control */
-#define SCLOOP 0x10 /* SC Loop Control */
-#define WC_UP 0x11 /* White Crush Up Count */
-#define OFORM 0x12 /* Output Format */
-#define VSCALE_HI 0x13 /* Vertical Scaling */
-#define VSCALE_LO 0x14 /* Vertical Scaling */
-#define TEST 0x15 /* Test Control */
-#define VPOLE 0x16 /* Video Timing Polarity */
-#define IDCODE 0x17 /* ID Code */
-#define ADELAY 0x18 /* AGC Delay */
-#define BDELAY 0x19 /* Burst Gate Delay */
-#define ADC 0x1A /* ADC Interface */
-#define VTC 0x1B /* Video Timing Control */
-#define CC_STATUS 0x1C /* Extended Data Services/Closed Capt Status */
-#define CC_DATA 0x1D /* Extended Data Services/Closed Capt Data */
-#define WC_DN 0x1E /* White Crush Down Count */
-#define SRESET 0x1F /* Software Reset */
-#define P_IO 0x3F /* Programmable I/O */
-
-static CARD8
-btread(BT829Ptr bt, CARD8 reg)
-{
- CARD8 v;
-
- I2C_WriteRead(&(bt->d), ®, 1, &v, 1);
-
- return v;
-}
-
-static void
-btwrite(BT829Ptr bt, CARD8 reg, CARD8 val)
-{
- CARD8 data[2];
-
- data[0] = reg;
- data[1] = val;
- I2C_WriteRead(&(bt->d), data, 2, NULL, 0);
-}
-
-/*
- * Register access
- */
-static void
-btwrite_status(BT829Ptr bt)
-{ /* STATUS */
- btwrite(bt, STATUS, 0x00); /* clear */
-}
-
-static void
-btwrite_iform(BT829Ptr bt)
-{ /* IFORM */
- int xtsel;
-
- switch (bt->format) {
- case BT829_NTSC:
- case BT829_NTSC_JAPAN:
- case BT829_PAL_M:
- case BT829_PAL_N_COMB: /* gatos says xtsel = 2 */
- xtsel = 1;
- break;
- case BT829_PAL:
- case BT829_PAL_N:
- case BT829_SECAM:
- xtsel = 2;
- break;
- default: /* shouldn't get here */
- xtsel = 3; /* hardware default */
- break;
- }
-
- btwrite(bt, IFORM, (bt->mux << 5) | (xtsel << 3) | bt->format);
-}
-
-static void
-btwrite_tdec(BT829Ptr bt)
-{ /* TDEC */
- /* use default */
-}
-
-static void
-btwrite_crop(BT829Ptr bt)
-{ /* CROP */
- btwrite(bt, CROP, (H(bt->vdelay) << 6) | (H(bt->vactive) << 4) |
- (H(bt->hdelay) << 2) | H(bt->width));
-}
-
-static void
-btwrite_vdelay_lo(BT829Ptr bt)
-{ /* VDELAY_LO */
- btwrite(bt, VDELAY_LO, L(bt->vdelay));
-}
-
-static void
-btwrite_vactive_lo(BT829Ptr bt)
-{ /* VACTIVE_LO */
- btwrite(bt, VACTIVE_LO, L(bt->vactive));
-}
-
-static void
-btwrite_hdelay_lo(BT829Ptr bt)
-{ /* HDELAY_LO */
- btwrite(bt, HDELAY_LO, L(bt->hdelay));
-}
-
-static void
-btwrite_hactive_lo(BT829Ptr bt)
-{ /* HACTIVE_LO */
- btwrite(bt, HACTIVE_LO, L(bt->width));
-}
-
-static void
-btwrite_hscale_hi(BT829Ptr bt)
-{ /* HSCALE_HI */
- btwrite(bt, HSCALE_HI, H(bt->hscale));
-}
-
-static void
-btwrite_hscale_lo(BT829Ptr bt)
-{ /* HSCALE_LO */
- btwrite(bt, HSCALE_LO, L(bt->hscale));
-}
-
-static void
-btwrite_bright(BT829Ptr bt)
-{ /* BRIGHT */
- btwrite(bt, BRIGHT, bt->brightness);
-}
-
-static void
-btwrite_control(BT829Ptr bt)
-{ /* CONTROL */
- int ldec;
-
- /* The data sheet says ldec should always be 0 for SECAM */
- /* but the picture quality is better with ldec = 1 */
- ldec = (bt->width > 360); /* gatos says 384 */
-
- btwrite(bt, CONTROL, ((bt->mux == bt->svideo_mux) ? 0xC0 : 0x00) | /* LNOTCH and COMP */
- (ldec << 5) | (H(bt->contrast) << 2) | (H(bt->sat_u) << 1) | H(bt->
- sat_v));
-}
-
-static void
-btwrite_contrast_lo(BT829Ptr bt)
-{ /* CONTRAST_LO */
- btwrite(bt, CONTRAST_LO, L(bt->contrast));
-}
-
-static void
-btwrite_sat_u_lo(BT829Ptr bt)
-{ /* SAT_U_LO */
- btwrite(bt, SAT_U_LO, L(bt->sat_u));
-}
-
-static void
-btwrite_sat_v_lo(BT829Ptr bt)
-{ /* SAT_V_LO */
- btwrite(bt, SAT_V_LO, L(bt->sat_v));
-}
-
-static void
-btwrite_hue(BT829Ptr bt)
-{ /* HUE */
- btwrite(bt, HUE, bt->hue);
-}
-
-static void
-btwrite_scloop(BT829Ptr bt)
-{ /* SCLOOP */
- if (BTVERSION >= BT827) {
- btwrite(bt, SCLOOP, (bt->format == BT829_SECAM) ? 0x10 : 0x00 /* QCIF or AUTO */
- );
- }
-}
-
-static void
-btwrite_wc_up(BT829Ptr bt)
-{ /* WC_UP */
- if (BTVERSION >= BT827) {
- /* use default */
- }
-}
-
-static void
-btwrite_oform(BT829Ptr bt)
-{ /* OFORM */
- btwrite(bt, OFORM, (bt->code << 3) | (bt->len << 2) | 0x02 /* RANGE = 0, CORE = 0, VBI_FRAME = 0, OES = 2 (default) */
- );
-}
-
-static void
-btwrite_vscale_hi(BT829Ptr bt)
-{ /* VSCALE_HI */
- btwrite(bt, VSCALE_HI, H(bt->vscale) | 0x60 /* YCOMB = 0, COMB = 1, INT = 1 (default) */
- );
-}
-
-static void
-btwrite_vscale_lo(BT829Ptr bt)
-{ /* VSCALE_LO */
- btwrite(bt, VSCALE_LO, L(bt->vscale));
-}
-
-/* TEST should not be written to */
-
-static void
-btwrite_vpole(BT829Ptr bt)
-{ /* VPOLE */
- btwrite(bt, VPOLE, (bt->out_en << 7));
-}
-
-/* IDCODE is read only */
-
-static void
-btwrite_adelay(BT829Ptr bt)
-{ /* ADELAY */
- switch (bt->format) {
- case BT829_NTSC:
- case BT829_NTSC_JAPAN:
- case BT829_PAL_M:
- btwrite(bt, ADELAY, 104);
- break;
- case BT829_PAL:
- case BT829_PAL_N:
- case BT829_SECAM:
- case BT829_PAL_N_COMB:
- btwrite(bt, ADELAY, 127);
- break;
- default: /* shouldn't get here */
- btwrite(bt, ADELAY, 104); /* hardware default */
- break;
- }
-}
-
-static void
-btwrite_bdelay(BT829Ptr bt)
-{ /* BDELAY */
- switch (bt->format) {
- case BT829_NTSC:
- case BT829_NTSC_JAPAN:
- case BT829_PAL_M:
- btwrite(bt, BDELAY, 93);
- break;
- case BT829_PAL:
- case BT829_PAL_N:
- case BT829_PAL_N_COMB:
- btwrite(bt, BDELAY, 114);
- break;
- case BT829_SECAM:
- btwrite(bt, BDELAY, 160);
- break;
- default: /* shouldn't get here */
- btwrite(bt, BDELAY, 93); /* hardware default */
- break;
- }
-}
-
-static void
-btwrite_adc(BT829Ptr bt)
-{ /* ADC */
- btwrite(bt, ADC, bt->mux == bt->svideo_mux ? 0x80 : 0x82); /* CSLEEP = 0 or 1 */
-}
-
-static void
-btwrite_vtc(BT829Ptr bt)
-{ /* VTC */
- int vfilt = 0; /* hardware default */
-
- if (BTVERSION > BT827) { /* gatos says >= BT827 */
- switch (bt->format) {
- case BT829_NTSC:
- case BT829_NTSC_JAPAN:
- case BT829_PAL_M:
- case BT829_PAL_N_COMB: /* gatos groups with BT829_PAL */
- if (bt->width <= 360)
- vfilt = 1; /* gatos says <= 240 */
- if (bt->width <= 180)
- vfilt = 2; /* gatos says <= 120 */
- if (bt->width <= 90)
- vfilt = 3; /* gatos says <= 60 */
- break;
- case BT829_PAL:
- case BT829_PAL_N:
- case BT829_SECAM:
- if (bt->width <= 384)
- vfilt = 1;
- if (bt->width <= 192)
- vfilt = 2;
- if (bt->width <= 96)
- vfilt = 3;
- break;
- default: /* shouldn't get here */
- break; /* use hardware default */
- }
- btwrite(bt, VTC, (bt->vbien << 4) | (bt->vbifmt << 3) | vfilt);
- }
-}
-
-static void
-btwrite_cc_status(BT829Ptr bt)
-{ /* CC_STATUS *//* FIXME: ATI specific */
- if (BTVERSION >= BT827) {
- if (bt->ccmode == 0)
- btwrite(bt, CC_STATUS, 0x00);
- /* 0x40 is activate to set the CCVALID line. Not required yet */
- else
- btwrite(bt, CC_STATUS, (bt->ccmode << 4) | 0x40);
- }
-}
-
-/* CC_DATA is read only */
-
-static void
-btwrite_wc_dn(BT829Ptr bt)
-{ /* WC_DN */
- if (BTVERSION >= BT827) {
- /* use default */
- }
-}
-
-static void
-bt_reset(BT829Ptr bt)
-{ /* SRESET */
- btwrite(bt, SRESET, 0x0); /* Reset all registers */
-}
-
-static void
-btwrite_p_io(BT829Ptr bt)
-{ /* P_IO */
- if (BTVERSION >= BT827) {
- btwrite(bt, P_IO, bt->p_io);
- }
-}
-
-/*
- * Deal with dependencies
- */
-static void
-propagate_changes(BT829Ptr bt)
-{
- CARD16 hdelay, unscaled_hdelay, vdelay, hscale, vscale;
- int htotal, vactive;
-
- switch (bt->format) {
- case BT829_NTSC:
- case BT829_NTSC_JAPAN:
- case BT829_PAL_M:
- vdelay = 22;
- htotal = 754;
- vactive = 480;
- unscaled_hdelay = 135;
- break;
- case BT829_PAL:
- case BT829_PAL_N:
- vdelay = (bt->tunertype == 5) ? 34 : 22;
- htotal = 922;
- vactive = 576;
- unscaled_hdelay = 186;
- break;
- case BT829_SECAM:
- vdelay = 34;
- htotal = 922;
- vactive = 576;
- unscaled_hdelay = 186;
- break;
- case BT829_PAL_N_COMB:
- vdelay = (bt->tunertype == 5) ? 34 : 22; /* windows says 22 */
- htotal = 754; /* gatos and windows say 922 */
- vactive = 576;
- unscaled_hdelay = 135; /* gatos and windows say 186 */
- break;
- default: /* shouldn't get here */
- vdelay = 22; /* hardware default */
- htotal = 754;
- vactive = 480; /* hardware default */
- unscaled_hdelay = 135;
- break;
- }
-
- bt->htotal = htotal; /* Used for error checking in bt829_SetCaptSize */
-
- hscale = 4096 * htotal / (bt->width + 2 * HCROP) - 4096;
- hdelay =
- (HCROP + (bt->width + 2 * HCROP) * unscaled_hdelay / htotal) & 0x3FE;
-
- vactive = vactive - 2 * VCROP;
- vdelay = vdelay + VCROP;
- vscale = (0x10000 - (512 * vactive / bt->height - 512)) & 0x1FFF;
-
- if ((hdelay != bt->hdelay) || (vdelay != bt->vdelay) ||
- (vactive != bt->vactive) || (hscale != bt->hscale) ||
- (vscale != bt->vscale)) {
- bt->hdelay = hdelay;
- bt->vdelay = vdelay;
- bt->vactive = vactive;
- bt->hscale = hscale;
- bt->vscale = vscale;
- btwrite_crop(bt);
- btwrite_vdelay_lo(bt);
- btwrite_vactive_lo(bt);
- btwrite_hdelay_lo(bt);
- btwrite_hscale_hi(bt);
- btwrite_hscale_lo(bt);
- btwrite_control(bt);
- btwrite_vscale_hi(bt);
- btwrite_vscale_lo(bt);
- }
-}
-
-static void
-write_all(BT829Ptr bt)
-{
- bt_reset(bt);
- propagate_changes(bt); /* ensure consistency */
- btwrite_iform(bt);
- btwrite_tdec(bt);
- btwrite_crop(bt);
- btwrite_vdelay_lo(bt);
- btwrite_vactive_lo(bt);
- btwrite_hdelay_lo(bt);
- btwrite_hactive_lo(bt);
- btwrite_hscale_hi(bt);
- btwrite_hscale_lo(bt);
- btwrite_bright(bt);
- btwrite_control(bt);
- btwrite_contrast_lo(bt);
- btwrite_sat_u_lo(bt);
- btwrite_sat_v_lo(bt);
- btwrite_hue(bt);
- btwrite_scloop(bt);
- btwrite_wc_up(bt);
- btwrite_oform(bt);
- btwrite_vscale_hi(bt);
- btwrite_vscale_lo(bt);
- btwrite_vpole(bt);
- btwrite_adelay(bt);
- btwrite_bdelay(bt);
- btwrite_adc(bt);
- btwrite_vtc(bt);
- /* btwrite_cc_status(bt); *//* FIXME: CC code needs cleaning */
- btwrite_wc_dn(bt);
- btwrite_p_io(bt);
-}
-
-/*
- * Public functions
- */
-BT829Ptr
-bt829_Detect(I2CBusPtr b, I2CSlaveAddr addr)
-{
- BT829Ptr bt;
- I2CByte a;
- char *devname;
-
- bt = calloc(1, sizeof(BT829Rec));
- if (bt == NULL)
- return NULL;
- bt->d.DevName = strdup("BT829 video decoder");
- bt->d.SlaveAddr = addr;
- bt->d.pI2CBus = b;
- bt->d.NextDev = NULL;
- bt->d.StartTimeout = b->StartTimeout;
- bt->d.BitTimeout = b->BitTimeout;
- bt->d.AcknTimeout = b->AcknTimeout;
- bt->d.ByteTimeout = b->ByteTimeout;
-
- if (!I2C_WriteRead(&(bt->d), NULL, 0, &a, 1)) {
- free(bt);
- return NULL;
- }
-
- bt->id = btread(bt, IDCODE);
-
- free((void *) bt->d.DevName);
- bt->d.DevName = devname = calloc(200, sizeof(char));
- switch (BTVERSION) {
- case BT815:
- sprintf(devname, "bt815a video decoder, revision %d",
- bt->id & 0xf);
- break;
- case BT817:
- sprintf(devname, "bt817a video decoder, revision %d",
- bt->id & 0xf);
- break;
- case BT819:
- sprintf(devname, "bt819a video decoder, revision %d",
- bt->id & 0xf);
- break;
- case BT827:
- sprintf(devname, "bt827a/b video decoder, revision %d",
- bt->id & 0xf);
- break;
- case BT829:
- sprintf(devname, "bt829a/b video decoder, revision %d",
- bt->id & 0xf);
- break;
- default:
- sprintf(devname,
- "bt8xx/unknown video decoder version %d, revision %d",
- bt->id >> 4, bt->id & 0xf);
- break;
- }
-
- /* set default parameters */
- if (!I2CDevInit(&(bt->d))) {
- free(bt);
- return NULL;
- }
-
- bt->tunertype = 1;
-
- bt->brightness = 0; /* hardware default */
- bt->ccmode = 0;
- bt->code = 0; /* hardware default */
- bt->contrast = 216; /* hardware default */
- bt->format = BT829_NTSC;
- bt->height = 480; /* hardware default for vactive */
- bt->hue = 0; /* hardware default */
- bt->len = 1; /* hardware default */
- bt->mux = BT829_MUX0; /* hardware default */
- bt->out_en = 0; /* hardware default */
- bt->p_io = 0; /* hardware default */
- bt->sat_u = 254; /* hardware default */
- bt->sat_v = 180; /* hardware default */
- bt->vbien = 0; /* hardware default */
- bt->vbifmt = 0; /* hardware default */
- bt->width = 640; /* hardware default for hactive */
-
- bt->hdelay = 120; /* hardware default */
- bt->hscale = 684; /* hardware default */
- bt->vactive = 480; /* hardware default */
- bt->vdelay = 22; /* hardware default */
- bt->vscale = 0; /* hardware default */
-
- bt->htotal = 754; /* NTSC */
- bt->svideo_mux = 0; /* no s-video */
-
- return bt;
-}
-
-int
-bt829_ATIInit(BT829Ptr bt)
-{
- bt->code = 1;
- bt->len = 0;
- bt->vbien = 1;
- bt->vbifmt = 1;
- bt->svideo_mux = BT829_MUX1;
-
- write_all(bt);
-
- return 0;
-}
-
-int
-bt829_SetFormat(BT829Ptr bt, CARD8 format)
-{
- if ((format < 1) || (format > 7))
- return -1;
- if ((BTVERSION <= BT819) && (format != BT829_NTSC) && (format != BT829_PAL))
- return -1;
- if (format == bt->format)
- return 0;
- bt->format = format;
- propagate_changes(bt);
- btwrite_iform(bt);
- btwrite_scloop(bt);
- btwrite_adelay(bt);
- btwrite_bdelay(bt);
- btwrite_vtc(bt);
- return 0;
-}
-
-int
-bt829_SetMux(BT829Ptr bt, CARD8 mux)
-{
- if ((mux < 1) || (mux > 3))
- return -1;
- if (mux == bt->mux)
- return 0;
- bt->mux = mux;
- /* propagate_changes(bt); *//* no dependencies */
- btwrite_iform(bt);
- btwrite_control(bt);
- btwrite_adc(bt);
- return 0;
-}
-
-void
-bt829_SetBrightness(BT829Ptr bt, int brightness)
-{
- brightness = LIMIT(brightness, -1000, 999); /* ensure -128 <= brightness <= 127 below */
- brightness = (128 * brightness) / 1000;
- if (brightness == bt->brightness)
- return;
- bt->brightness = brightness;
- /* propagate_changes(bt); *//* no dependencies */
- btwrite_bright(bt);
-}
-
-void
-bt829_SetContrast(BT829Ptr bt, int contrast)
-{
- contrast = LIMIT(contrast, -1000, 1000);
- contrast = (216 * (contrast + 1000)) / 1000;
- if (contrast == bt->contrast)
- return;
- bt->contrast = contrast;
- /* propagate_changes(bt); *//* no dependencies */
- btwrite_control(bt);
- btwrite_contrast_lo(bt);
-}
-
-void
-bt829_SetSaturation(BT829Ptr bt, int saturation)
-{
- CARD16 sat_u, sat_v;
-
- saturation = LIMIT(saturation, -1000, 1000);
- sat_u = (254 * (saturation + 1000)) / 1000;
- sat_v = (180 * (saturation + 1000)) / 1000;
- if ((sat_u == bt->sat_u) && (sat_v == bt->sat_v))
- return;
- bt->sat_u = sat_u;
- bt->sat_v = sat_v;
- /* propagate_changes(bt); *//* no dependencies */
- btwrite_control(bt);
- btwrite_sat_u_lo(bt);
- btwrite_sat_v_lo(bt);
-}
-
-void
-bt829_SetTint(BT829Ptr bt, int hue)
-{
- hue = LIMIT(hue, -1000, 999); /* ensure -128 <= hue <= 127 below */
- hue = (128 * hue) / 1000;
- if (hue == bt->hue)
- return;
- bt->hue = hue;
- /* propagate_changes(bt); *//* no dependencies */
- btwrite_hue(bt);
-}
-
-int
-bt829_SetCaptSize(BT829Ptr bt, int width, int height)
-{
- if ((width > bt->htotal - 2 * HCROP) ||
- (16 * width < bt->htotal - 32 * HCROP))
- return -1;
- if ((height > bt->vactive) || (16 * height < bt->vactive))
- return -1;
- if ((width == bt->width) && (height == bt->height))
- return 0;
- bt->width = width;
- bt->height = height;
- propagate_changes(bt);
- btwrite_crop(bt);
- btwrite_hactive_lo(bt);
- btwrite_control(bt);
- btwrite_vtc(bt);
- return 0;
-}
-
-int
-bt829_SetCC(BT829Ptr bt)
-{ /* FIXME: should take ccmode as a parameter */
- if (BTVERSION < BT827)
- return -1; /* can't do it */
- /* propagate_changes(bt); *//* no dependencies */
- btwrite_cc_status(bt);
- /* we write to STATUS to reset the CCVALID flag */
- if (bt->ccmode != 0)
- btwrite_status(bt);
- return 0;
-}
-
-void
-bt829_SetOUT_EN(BT829Ptr bt, BOOL out_en)
-{
- out_en = (out_en != 0);
- if (out_en == bt->out_en)
- return;
- bt->out_en = out_en;
- /* propagate_changes(bt); *//* no dependencies */
- btwrite_vpole(bt);
-}
-
-void
-bt829_SetP_IO(BT829Ptr bt, CARD8 p_io)
-{
- if (p_io == bt->p_io)
- return;
- bt->p_io = p_io;
- /* propagate_changes(bt); *//* no dependencies */
- btwrite_p_io(bt);
-}
-
-#define BTREAD(R) btread(bt,(R))
-
-#if 0
-
-void
-bt829_getCCdata(BT829Ptr bt, struct CCdata *data)
-{
- CARD8 status;
-
- data->num_valid = 0;
- /* wait for buffer to be half full (means 8/16 bytes)
- * either 4 (one of CC/EDS) or 2 (both CC/EDS) frames */
- if (!(BTREAD(STATUS) & 0x04))
- return; /* could comment this line */
- for (; data->num_valid < CC_FIFO_SIZE; data->num_valid++) {
- status = BTREAD(CC_STATUS);
- if (!(status & 0x04))
- break;
- data->data[data->num_valid] = BTREAD(CC_DATA) & 0x7f;
- /* stripped high bit (parity) */
- data->status[data->num_valid] = (CCS_EDS * ((status & 0x02) >> 1)) |
- (CCS_HIGH * (status & 0x01)) |
- (CCS_OVER * ((status & 0x08) >> 3)) |
- (CCS_PAR * ((status & 0x80) >> 7));
- }
- btwrite(bt, STATUS, 0x00); /* Reset CCVALID status bit */
- return;
-}
-
-#endif
-
-/* ------------------------------------------------------------------------ */
-/* Debug and report routines */
-
-#define DUMPREG(REG) \
- xf86DrvMsg(bt->d.pI2CBus->scrnIndex,X_INFO," %-12s (0x%02X) = 0x%02X\n", \
- #REG,REG,BTREAD(REG))
-
-/*static void bt829_dumpregs(BT829Ptr bt)
-{
- DUMPREG(STATUS);
- DUMPREG(IFORM);
- DUMPREG(TDEC);
- DUMPREG(CROP);
- DUMPREG(VDELAY_LO);
- DUMPREG(VACTIVE_LO);
- DUMPREG(HDELAY_LO);
- DUMPREG(HACTIVE_LO);
- DUMPREG(HSCALE_HI);
- DUMPREG(HSCALE_LO);
- DUMPREG(BRIGHT);
- DUMPREG(CONTROL);
- DUMPREG(CONTRAST_LO);
- DUMPREG(SAT_U_LO);
- DUMPREG(SAT_V_LO);
- DUMPREG(HUE);
- if (BTVERSION >= BT827) {
- DUMPREG(SCLOOP);
- DUMPREG(WC_UP) ; }
- DUMPREG(OFORM);
- DUMPREG(VSCALE_HI);
- DUMPREG(VSCALE_LO);
- DUMPREG(TEST);
- DUMPREG(VPOLE);
- DUMPREG(IDCODE);
- DUMPREG(ADELAY);
- DUMPREG(BDELAY);
- DUMPREG(ADC);
- if (BTVERSION >= BT827) {
- DUMPREG(VTC);
- DUMPREG(CC_STATUS);
- DUMPREG(CC_DATA);
- DUMPREG(WC_DN);
- DUMPREG(P_IO) ; }
-}*/
diff --git a/hw/xfree86/i2c/bt829.h b/hw/xfree86/i2c/bt829.h
deleted file mode 100644
index 2709bee..0000000
--- a/hw/xfree86/i2c/bt829.h
+++ /dev/null
@@ -1,103 +0,0 @@
-#ifndef __BT829_H__
-#define __BT829_H__
-
-#include "xf86i2c.h"
-
-typedef struct {
- int tunertype; /* Must be set before init */
- /* Private variables */
- I2CDevRec d;
-
- CARD8 brightness;
- CARD8 ccmode;
- CARD8 code;
- CARD16 contrast;
- CARD8 format;
- int height;
- CARD8 hue;
- CARD8 len;
- CARD8 mux;
- CARD8 out_en;
- CARD8 p_io;
- CARD16 sat_u;
- CARD16 sat_v;
- CARD8 vbien;
- CARD8 vbifmt;
- int width;
-
- CARD16 hdelay;
- CARD16 hscale;
- CARD16 vactive;
- CARD16 vdelay;
- CARD16 vscale;
-
- CARD16 htotal;
- CARD8 id;
- CARD8 svideo_mux;
-} BT829Rec, *BT829Ptr;
-
-#define xf86_bt829_Detect bt829_Detect
-extern _X_EXPORT BT829Ptr bt829_Detect(I2CBusPtr b, I2CSlaveAddr addr);
-
-/* ATI card specific initialization */
-#define BT829_ATI_ADDR_1 0x8A
-#define BT829_ATI_ADDR_2 0x88
-
-#define xf86_bt829_ATIInit bt829_ATIInit
-extern _X_EXPORT int bt829_ATIInit(BT829Ptr bt);
-
-#define BT829_NTSC 1 /* NTSC-M */
-#define BT829_NTSC_JAPAN 2 /* NTSC-Japan */
-#define BT829_PAL 3 /* PAL-B,D,G,H,I */
-#define BT829_PAL_M 4 /* PAL-M */
-#define BT829_PAL_N 5 /* PAL-N */
-#define BT829_SECAM 6 /* SECAM */
-#define BT829_PAL_N_COMB 7 /* PAL-N combination */
-
-#define xf86_bt829_SetFormat bt829_SetFormat
-extern _X_EXPORT int bt829_SetFormat(BT829Ptr bt, CARD8 format);
-
-#define BT829_MUX2 1 /* ATI -> composite video */
-#define BT829_MUX0 2 /* ATI -> tv tuner */
-#define BT829_MUX1 3 /* ATI -> s-video */
-
-#define xf86_bt829_SetMux bt829_SetMux
-extern _X_EXPORT int bt829_SetMux(BT829Ptr bt, CARD8 mux);
-
-#define xf86_bt829_SetCaptSize bt829_SetCaptSize
-extern _X_EXPORT int bt829_SetCaptSize(BT829Ptr bt, int width, int height);
-
-#define xf86_bt829_SetBrightness bt829_SetBrightness
-extern _X_EXPORT void bt829_SetBrightness(BT829Ptr bt, int brightness);
-
-#define xf86_bt829_SetContrast bt829_SetContrast
-extern _X_EXPORT void bt829_SetContrast(BT829Ptr bt, int contrast);
-
-#define xf86_bt829_SetSaturation bt829_SetSaturation
-extern _X_EXPORT void bt829_SetSaturation(BT829Ptr bt, int saturation);
-
-#define xf86_bt829_SetTint bt829_SetTint
-extern _X_EXPORT void bt829_SetTint(BT829Ptr bt, int hue); /* Hue */
-
-#define xf86_bt829_SetOUT_EN bt829_SetOUT_EN
-extern _X_EXPORT void bt829_SetOUT_EN(BT829Ptr bt, BOOL out_en); /* VPOLE register */
-
-#define xf86_bt829_SetP_IO bt829_SetP_IO
-extern _X_EXPORT void bt829_SetP_IO(BT829Ptr bt, CARD8 p_io); /* P_IO register */
-
-extern _X_EXPORT int bt829_SetCC(BT829Ptr bt);
-
-#define BT829SymbolsList \
- "bt829_Detect", \
- "bt829_ATIInit", \
- "bt829_SetFormat", \
- "bt829_SetMux", \
- "bt829_SetBrightness", \
- "bt829_SetContrast", \
- "bt829_SetSaturation", \
- "bt829_SetTint", \
- "bt829_SetCaptSize", \
- "bt829_SetOUT_EN", \
- "bt829_SetP_IO"
-
-#endif
diff --git a/hw/xfree86/i2c/bt829_module.c b/hw/xfree86/i2c/bt829_module.c
deleted file mode 100644
index c8a6ac6..0000000
--- a/hw/xfree86/i2c/bt829_module.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86Module.h"
-
-static XF86ModuleVersionInfo bt829VersRec = {
- "bt829",
- MODULEVENDORSTRING,
- MODINFOSTRING1,
- MODINFOSTRING2,
- XORG_VERSION_CURRENT,
- 1, 0, 0,
- ABI_CLASS_VIDEODRV, /* This needs the video driver ABI */
- ABI_VIDEODRV_VERSION,
- MOD_CLASS_NONE,
- {0, 0, 0, 0}
-};
-
-_X_EXPORT XF86ModuleData bt829ModuleData = { &bt829VersRec, NULL, NULL };
diff --git a/hw/xfree86/i2c/fi1236.c b/hw/xfree86/i2c/fi1236.c
deleted file mode 100644
index ebd1454..0000000
--- a/hw/xfree86/i2c/fi1236.c
+++ /dev/null
@@ -1,686 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-
-#include "xf86.h"
-#include "xf86i2c.h"
-#include "fi1236.h"
-#include "tda9885.h"
-#include "i2c_def.h"
-
-#define NUM_TUNERS 8
-
-const FI1236_parameters tuner_parms[NUM_TUNERS] = {
- /* 0 - FI1236 */
- {733, 884, 12820, 2516, 7220, 0xA2, 0x94, 0x34, 0x8e},
- /* !!!based on documentation - it should be:
- {733, 16*55.25, 16*801.25, 16*160, 16*454, 0xA0, 0x90, 0x30, 0x8e}, */
-
- /* 1 - FI1216 */
- {623, 16 * 48.75, 16 * 855.25, 16 * 170, 16 * 450, 0xA0, 0x90, 0x30, 0x8e},
- /* 2 - TEMIC FN5AL */
- {623, 16 * 45.75, 16 * 855.25, 16 * 169, 16 * 454, 0xA0, 0x90, 0x30, 0x8e},
- /* 3 - MT2032.. */
- {733, 768, 13760, 0, 0, 0, 0, 0, 0},
- /* 4 - FI1246 */
- {623, 16 * 45.75, 16 * 855.25, 16 * 170, 16 * 450, 0xA0, 0x90, 0x30, 0x8e},
- /* 5 - FI1256 */
- {623, 16 * 49.75, 16 * 863.25, 16 * 170, 16 * 450, 0xA0, 0x90, 0x30, 0x8e},
- /* 6 - FI1236W */
- /*{ 733, 884, 12820, 2516, 7220, 0x1, 0x2, 0x4, 0x8e }, */
- {732, 16 * 55.25, 16 * 801.25, 16 * 160, 16 * 442, 0x1, 0x2, 0x4, 0x8e},
- /* 7 - FM1216ME */
- {623, 16 * 48.25, 16 * 863.25, 16 * 158.00, 16 * 442.00, 0x1, 0x2, 0x4, 0x8e}
-};
-
-FI1236Ptr
-Detect_FI1236(I2CBusPtr b, I2CSlaveAddr addr)
-{
- FI1236Ptr f;
- I2CByte a;
-
- f = calloc(1, sizeof(FI1236Rec));
- if (f == NULL)
- return NULL;
- f->d.DevName = strdup("FI12xx Tuner");
- f->d.SlaveAddr = addr;
- f->d.pI2CBus = b;
- f->d.NextDev = NULL;
- f->d.StartTimeout = b->StartTimeout;
- f->d.BitTimeout = b->BitTimeout;
- f->d.AcknTimeout = b->AcknTimeout;
- f->d.ByteTimeout = b->ByteTimeout;
- f->type = TUNER_TYPE_FI1236;
- f->afc_timer_installed = FALSE;
- f->last_afc_hint = TUNER_OFF;
- f->video_if = 45.7812;
-
- if (!I2C_WriteRead(&(f->d), NULL, 0, &a, 1)) {
- free(f);
- return NULL;
- }
- FI1236_set_tuner_type(f, TUNER_TYPE_FI1236);
- if (!I2CDevInit(&(f->d))) {
- free(f);
- return NULL;
- }
- return f;
-}
-
-static void
-MT2032_dump_parameters(FI1236Ptr f, MT2032_parameters * m)
-{
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: input f_rf=%g f_if1=%g f_if2=%g f_ref=%g f_ifbw=%g f_step=%g\n",
- m->f_rf, m->f_if1, m->f_if2, m->f_ref, m->f_ifbw, m->f_step);
-
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: computed f_lo1=%g f_lo2=%g LO1I=%d LO2I=%d SEL=%d STEP=%d NUM=%d\n",
- m->f_lo1, m->f_lo2, m->LO1I, m->LO2I, m->SEL, m->STEP, m->NUM);
-}
-
-static void
-MT2032_getid(FI1236Ptr f)
-{
- CARD8 out[4];
- CARD8 in;
-
- in = 0x11;
- I2C_WriteRead(&(f->d), (I2CByte *) &in, 1, out, 4);
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: Company code 0x%02x%02x, part code 0x%02x, revision code 0x%02x\n",
- out[0], out[1], out[2], out[3]);
-
-}
-
-/* might be buggy */
-#if 0
-static void
-MT2032_shutdown(FI1236Ptr f)
-{
- CARD8 data[10];
-
- data[0] = 0x00; /* start with register 0x00 */
- data[1] = 0x1A;
- data[2] = 0x44;
- data[3] = 0x20;
-
- I2C_WriteRead(&(f->d), (I2CByte *) data, 4, NULL, 0);
-
- data[0] = 0x05; /* now start with register 0x05 */
- data[1] = 0xD7;
- data[2] = 0x14;
- data[3] = 0x05;
- I2C_WriteRead(&(f->d), (I2CByte *) data, 4, NULL, 0);
-
- data[0] = 0x0B; /* now start with register 0x05 */
- data[1] = 0x8F;
- data[2] = 0x07;
- data[3] = 0x43;
- I2C_WriteRead(&(f->d), (I2CByte *) data, 4, NULL, 0);
-
- usleep(15000);
-}
-#endif
-
-static void MT2032_dump_status(FI1236Ptr f);
-
-static void
-MT2032_init(FI1236Ptr f)
-{
- CARD8 data[10];
- CARD8 value;
- CARD8 xogc = 0x00;
-
- MT2032_getid(f);
-
- data[0] = 0x02; /* start with register 0x02 */
- data[1] = 0xFF;
- data[2] = 0x0F;
- data[3] = 0x1F;
-
- I2C_WriteRead(&(f->d), (I2CByte *) data, 4, NULL, 0);
-
- data[0] = 0x06; /* now start with register 0x06 */
- data[1] = 0xE4;
- data[2] = 0x8F;
- data[3] = 0xC3;
- data[4] = 0x4E;
- data[5] = 0xEC;
- I2C_WriteRead(&(f->d), (I2CByte *) data, 6, NULL, 0);
-
- data[0] = 0x0d; /* now start with register 0x0d */
- data[1] = 0x32;
- I2C_WriteRead(&(f->d), (I2CByte *) data, 2, NULL, 0);
-
- while (1) {
- usleep(15000); /* wait 15 milliseconds */
-
- data[0] = 0x0e; /* register number 7, status */
- value = 0xFF;
- if (!I2C_WriteRead(&(f->d), (I2CByte *) data, 1, &value, 1))
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: failed to read XOK\n");
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: XOK=%d\n", value & 0x01);
- if (value & 1)
- break;
-
- data[0] = 0x07;
- if (!I2C_WriteRead(&(f->d), (I2CByte *) data, 1, &value, 1))
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: failed to read XOGC\n");
-
- xogc = value & 0x7;
- if (xogc == 4)
- break; /* XOGC has reached 4.. stop */
- xogc--;
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: try XOGC=%d\n", xogc);
- usleep(15000);
- data[0] = 0x07; /* register number 7, control byte 2 */
- data[1] = 0x08 | xogc;
- I2C_WriteRead(&(f->d), (I2CByte *) data, 2, NULL, 0);
- }
- f->xogc = xogc;
- /* wait before continuing */
- usleep(15000); /* wait 50 milliseconds */
- MT2032_dump_status(f);
-}
-
-static int
-MT2032_no_spur_in_band(MT2032_parameters * m)
-{
- int n_max, n1, n2;
- double f_test;
-
- n_max = 5;
- n1 = 1;
- while (1) {
- n2 = -n1;
- f_test = n1 * (m->f_lo1 - m->f_lo2);
- while (1) {
- n2--;
- f_test = f_test - m->f_lo2;
- xf86DrvMsg(0, X_INFO,
- "testing f_test=%g n1=%d n2=%d f_lo1=%g f_lo2=%g f_if2=%g\n",
- f_test, n1, n2, m->f_lo1, m->f_lo2, m->f_if2);
- xf86DrvMsg(0, X_INFO, "d_f=%g f_ifbw=%g\n",
- fabs(fabs(f_test) - m->f_if2), m->f_ifbw);
- if ((fabs(fabs(f_test) - m->f_if2) * 2.0) <= m->f_ifbw)
- return 0;
- if (n2 <= -n_max)
- break;
- /* this line in the manual is bogus. I say it is faster
- and more correct to go over all harmonics.. */
-#if 0
- if (f_test < (m->f_lo2 - m->f_if2 - m->f_ifbw))
- break;
-#endif
- }
- n1++;
- if (n1 >= n_max)
- return 1;
- }
-
-}
-
-static void
-MT2032_calculate_register_settings(MT2032_parameters * m, double f_rf,
- double f_if1, double f_if2, double f_ref,
- double f_ifbw, double f_step)
-{
- int n;
-
- m->f_rf = f_rf;
- m->f_if1 = f_if1;
- m->f_if2 = f_if2;
- m->f_ref = f_ref;
- m->f_ifbw = f_ifbw;
- m->f_step = f_step;
-
- m->f_lo1 = f_rf + f_if1;
- m->LO1I = lrint(m->f_lo1 / f_ref);
- m->f_lo1 = f_ref * m->LO1I;
-
- m->f_lo2 = m->f_lo1 - f_rf - f_if2;
-
- /* check for spurs */
- n = 1;
- while (n < 3) {
- if (MT2032_no_spur_in_band(m))
- break;
-
- if (m->f_lo1 < (f_rf + f_if1))
- m->LO1I += n;
- else
- m->LO1I -= n;
-
- m->f_lo1 = m->LO1I * f_ref;
- m->f_lo2 = m->f_lo1 - f_rf - f_if2;
- n++;
- }
- /* xf86DrvMsg(0, X_INFO, "MT2032: n=%d\n", n); */
- /* select VCO */
-
- /* m->f_lo1>1100.0 */
- if (m->f_lo1 < 1370.0)
- m->SEL = 4;
- else if (m->f_lo1 < 1530.0)
- m->SEL = 3;
- else if (m->f_lo1 < 1720.0)
- m->SEL = 2;
- else if (m->f_lo1 < 1890.0)
- m->SEL = 1;
- else /* m->f_lo1 < 1958.0 */
- m->SEL = 0;
-
- /* calculate the rest of the registers */
- m->LO2I = floor(m->f_lo2 / f_ref);
- m->STEP = floor(3780.0 * f_step / f_ref);
- m->NUM = floor(3780.0 * (m->f_lo2 / f_ref - m->LO2I));
- m->NUM = m->STEP * lrint((1.0 * m->NUM) / (1.0 * m->STEP));
-}
-
-static int
-MT2032_wait_for_lock(FI1236Ptr f)
-{
- int n;
- CARD8 data[10];
- CARD8 value;
-
- n = 12;
- while (1) {
- data[0] = 0x0e; /* register number 7, status */
- I2C_WriteRead(&(f->d), (I2CByte *) data, 1, &value, 1);
- /* xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: LO1LK=%d LO2LK=%d\n",
- (value & 0x04)>>2, (value & 0x02)>>1); */
- if ((value & 6) == 6)
- break;
- usleep(1500);
- n--;
- if (n < 0)
- break;
- }
- if (n < 0) {
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: failed to set frequency\n");
- return 0;
- }
- return 1;
-}
-
-static void
-MT2032_implement_settings(FI1236Ptr f, MT2032_parameters * m)
-{
- CARD8 data[10];
- CARD8 value;
-
- data[0] = 0x00; /* start with register 0x00 */
- data[1] = (m->LO1I >> 3) - 1;
- data[2] = (m->SEL << 4) | (m->LO1I & 0x7);
- data[3] = 0x86;
- I2C_WriteRead(&(f->d), (I2CByte *) data, 4, NULL, 0);
-
- data[0] = 0x05; /* start with register 0x05 */
- data[1] = ((m->LO2I & 0x7) << 5) | ((m->LO2I >> 3) - 1);
- if (m->f_rf < 400.0)
- data[2] = 0xe4;
- else
- data[2] = 0xf4;
- I2C_WriteRead(&(f->d), (I2CByte *) data, 3, NULL, 0);
-
- data[0] = 0x07; /* register number 7, control byte 2 */
- I2C_WriteRead(&(f->d), (I2CByte *) data, 1, &value, 1);
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: using XOGC=%d\n", (value & 0x07));
- data[1] = 8 | (value & 0x7);
- I2C_WriteRead(&(f->d), (I2CByte *) data, 2, NULL, 0);
-
- data[0] = 0x0b; /* start with register 0x0b */
- data[1] = m->NUM & 0xff;
- data[2] = (1 << 7) | ((m->NUM >> 8) & 0x0f);
- I2C_WriteRead(&(f->d), (I2CByte *) data, 3, NULL, 0);
-
- MT2032_wait_for_lock(f);
-}
-
-static void
-MT2032_optimize_VCO(FI1236Ptr f, MT2032_parameters * m)
-{
- CARD8 data[10];
- CARD8 value;
- CARD8 TAD1;
-
- data[0] = 0x0f; /* register number 7, status */
- I2C_WriteRead(&(f->d), (I2CByte *) data, 1, &value, 1);
- TAD1 = value & 0x07;
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: TAD1=%d SEL=%d\n", TAD1, m->SEL);
- if (TAD1 < 2)
- return;
- if (TAD1 == 2) {
- if (m->SEL == 0)
- return;
- m->SEL--;
- }
- else {
- if (m->SEL >= 4)
- return;
- m->SEL++;
- }
- data[0] = 0x01; /* start with register 1 */
- data[1] = (m->SEL << 4) | (m->LO1I & 0x7);
- I2C_WriteRead(&(f->d), (I2CByte *) data, 2, NULL, 0);
-
-}
-
-static int
-FI1236_get_afc_hint(FI1236Ptr f)
-{
- CARD8 out;
- CARD8 AFC;
-
- if ((f->type == TUNER_TYPE_FM1216ME) || (f->type == TUNER_TYPE_FI1236W)) {
- TDA9885Ptr t = (TDA9885Ptr) f->afc_source;
-
- if (t == NULL)
- return TUNER_OFF;
-
- tda9885_getstatus(t);
- tda9885_dumpstatus(t);
- AFC = t->afc_status & 0x0f;
-
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "AFC: FI1236_get_afc_hint: %i\n", AFC);
- if (AFC == 0)
- return TUNER_TUNED;
- else if (AFC <= 0x07)
- return TUNER_JUST_BELOW;
- else if (AFC < 0x0f)
- return TUNER_JUST_ABOVE;
- else if (AFC == 0x0f)
- return TUNER_TUNED;
- }
- else {
- I2C_WriteRead(&(f->d), NULL, 0, &out, 1);
- AFC = out & 0x7;
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "AFC: FI1236_get_afc_hint: %i\n", AFC);
- if (AFC == 2)
- return TUNER_TUNED;
- if (AFC == 3)
- return TUNER_JUST_BELOW;
- if (AFC == 1)
- return TUNER_JUST_ABOVE;
- return TUNER_OFF;
- }
- return TUNER_OFF;
-}
-
-static int
-MT2032_get_afc_hint(FI1236Ptr f)
-{
- CARD8 in;
- CARD8 out[2];
- CARD8 AFC;
-
- in = 0x0e;
- I2C_WriteRead(&(f->d), (I2CByte *) &in, 1, out, 2);
- AFC = (out[0] >> 4) & 0x7;
-#if 0
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO, "AFC=%d TAD1=%d TAD2=%d\n",
- AFC, out[1] & 0x7, (out[1] >> 4) & 0x07);
-#endif
- if (AFC == 2)
- return TUNER_TUNED;
- if (AFC == 3)
- return TUNER_JUST_BELOW;
- if (AFC == 1)
- return TUNER_JUST_ABOVE;
- return TUNER_OFF;
-}
-
-/* this function is for external use only */
-int
-TUNER_get_afc_hint(FI1236Ptr f)
-{
- if (f->afc_timer_installed)
- return TUNER_STILL_TUNING;
- return f->last_afc_hint;
-}
-
-static void
-MT2032_dump_status(FI1236Ptr f)
-{
- CARD8 in;
- CARD8 out[2];
- CARD8 AFC;
- CARD8 LDONrb;
- CARD8 LO1LK, LO2LK, XOK;
- CARD8 TAD2, TAD1;
-
- in = 0x0e;
- I2C_WriteRead(&(f->d), (I2CByte *) &in, 1, out, 2);
- XOK = out[0] & 1;
- LO1LK = (out[0] >> 2) & 1;
- LO2LK = (out[0] >> 1) & 1;
- LDONrb = (out[0] >> 3) & 1;
-
- AFC = (out[0] >> 4) & 0x7;
-
- TAD1 = (out[1] & 0x7);
- TAD2 = (out[1] >> 4) & 0x7;
-
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: status: XOK=%d LO1LK=%d LO2LK=%d LDONrb=%d AFC=%d TAD1=%d TAD2=%d\n",
- XOK, LO1LK, LO2LK, LDONrb, AFC, TAD1, TAD2);
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: status: OSCILLATOR:%s PLL1:%s PLL2:%s\n",
- XOK ? "ok" : "off",
- LO1LK ? "locked" : "off", LO2LK ? "locked" : "off");
-
-}
-
-static void
-MT2032_tune(FI1236Ptr f, double freq, double step)
-{
- MT2032_parameters m;
- CARD8 data[10];
- int i;
-
- /* NTSC IF is 44mhz.. but 733/16=45.8125 and all TDAXXXX docs mention
- 45.75, 39, 58.75 and 30. */
-#if 0
- MT2032_calculate_register_settings(&m, freq, 1090.0, 45.125, 5.25, 6.0,
- step);
- MT2032_calculate_register_settings(&m, freq, 1090.0, 45.74, 5.25, 6.0,
- step);
-#endif
- MT2032_calculate_register_settings(&m, freq, 1090.0, f->video_if, 5.25, 3.0,
- step);
- MT2032_dump_parameters(f, &m);
- MT2032_implement_settings(f, &m);
- /* MT2032_dump_parameters(f, &m); */
- for (i = 0; i < 3; i++) {
- MT2032_optimize_VCO(f, &m);
- if (MT2032_wait_for_lock(f)) {
- data[0] = 0x02; /* LO Gain control register 0x02 */
- data[1] = 0x20;
- I2C_WriteRead(&(f->d), (I2CByte *) data, 2, NULL, 0);
- return;
- }
- data[0] = 0x07;
- data[1] = 0x88 | f->xogc;
- I2C_WriteRead(&(f->d), (I2CByte *) data, 2, NULL, 0);
- usleep(15000);
- data[1] = 0x08 | f->xogc;
- I2C_WriteRead(&(f->d), (I2CByte *) data, 2, NULL, 0);
- }
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "MT2032: failed to set frequency\n");
-}
-
-void
-FI1236_set_tuner_type(FI1236Ptr f, int type)
-{
- f->type = type;
- if (type >= NUM_TUNERS)
- type = NUM_TUNERS - 1;
- if (type < 0)
- type = 0;
- memcpy(&(f->parm), &(tuner_parms[type]), sizeof(FI1236_parameters));
- f->original_frequency = f->parm.min_freq;
- f->afc_delta = 0;
- if (type == TUNER_TYPE_MT2032) {
- MT2032_init(f);
- return;
- }
-}
-
-static CARD32
-AFC_TimerCallback(OsTimerPtr timer, CARD32 time, void *data)
-{
- FI1236Ptr f = (FI1236Ptr) data;
-
- if (FI1236_AFC(f))
- return 150;
- else {
- f->afc_timer_installed = FALSE;
- f->afc_count = 0;
- return 0;
- }
-}
-
-void
-FI1236_tune(FI1236Ptr f, CARD32 frequency)
-{
- CARD16 divider;
- CARD8 data;
-
- if (frequency < f->parm.min_freq)
- frequency = f->parm.min_freq;
- if (frequency > f->parm.max_freq)
- frequency = f->parm.max_freq;
-
- divider = (f->parm.fcar + (CARD16) frequency) & 0x7fff;
- f->tuner_data.div1 = (CARD8) ((divider >> 8) & 0x7f);
- f->tuner_data.div2 = (CARD8) (divider & 0xff);
- f->tuner_data.control = f->parm.control;
-
- if (frequency < f->parm.threshold1)
- f->tuner_data.band = f->parm.band_low;
- else if (frequency < f->parm.threshold2)
- f->tuner_data.band = f->parm.band_mid;
- else
- f->tuner_data.band = f->parm.band_high;
-
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "Setting tuner band to %d\n", f->tuner_data.band);
-
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "Setting tuner frequency to %d\n", (int) frequency);
-
- if ((f->type == TUNER_TYPE_FM1216ME) || (f->type == TUNER_TYPE_FI1236W)) {
- f->tuner_data.aux = 0x20;
- I2C_WriteRead(&(f->d), (I2CByte *) &(f->tuner_data), 5, NULL, 0);
- I2C_WriteRead(&(f->d), NULL, 0, &data, 1);
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO, "Tuner status %x\n", data);
- }
- else
- I2C_WriteRead(&(f->d), (I2CByte *) &(f->tuner_data), 4, NULL, 0);
-}
-
-void
-TUNER_set_frequency(FI1236Ptr f, CARD32 frequency)
-{
- if (frequency < f->parm.min_freq)
- frequency = f->parm.min_freq;
- if (frequency > f->parm.max_freq)
- frequency = f->parm.max_freq;
-
- f->afc_delta = 0;
- f->original_frequency = frequency;
-
- if (f->type == TUNER_TYPE_MT2032)
- MT2032_tune(f, (1.0 * frequency) / 16.0, 0.0625);
- else
- FI1236_tune(f, frequency);
-
- if (!f->afc_timer_installed) {
- f->afc_timer_installed = TRUE;
-/* RegisterBlockAndWakeupHandlers(FI1236_BlockHandler, AFCWakeup, f); */
- TimerSet(NULL, 0, 300, AFC_TimerCallback, f);
- }
-
-}
-
-int
-FI1236_AFC(FI1236Ptr f)
-{
-#if 0
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "AFC: f=%p f->count=%d f->original_frequency=%d f->afc_delta=%d\n",
- f, f->afc_count, f->original_frequency, f->afc_delta);
-#endif
- f->afc_count++;
- if (f->type == TUNER_TYPE_MT2032) {
- f->last_afc_hint = MT2032_get_afc_hint(f);
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "AFC: afc_hint=%d\n", f->last_afc_hint);
- if (f->last_afc_hint == TUNER_TUNED)
- return 0;
- if (f->afc_count > 3)
- f->last_afc_hint = TUNER_OFF;
- if (f->last_afc_hint == TUNER_OFF)
- f->afc_delta = 0;
- else
- f->afc_delta += f->last_afc_hint;
-
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "AFC: Setting tuner frequency to %g\n",
- (0.5 * (2 * f->original_frequency + f->afc_delta)) / 16.0);
- MT2032_tune(f,
- (1.0 * f->original_frequency + 0.5 * f->afc_delta) / 16.0,
- 0.03125);
- if (f->last_afc_hint == TUNER_OFF)
- return 0;
- return 1; /* call me again */
- }
- else {
- f->last_afc_hint = FI1236_get_afc_hint(f);
- if (f->last_afc_hint == TUNER_TUNED) {
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO, "AFC: TUNER_TUNNED\n");
- return 0;
- }
- if (f->afc_count > 3)
- f->last_afc_hint = TUNER_OFF;
-
- if (f->last_afc_hint == TUNER_OFF)
- f->afc_delta = 0;
- else
- f->afc_delta += f->last_afc_hint;
-
- xf86DrvMsg(f->d.pI2CBus->scrnIndex, X_INFO,
- "AFC: Setting tuner frequency to %g\n",
- (0.5 * (2 * f->original_frequency + f->afc_delta)) / 16.0);
- FI1236_tune(f, f->original_frequency + f->afc_delta);
- if (f->last_afc_hint == TUNER_OFF)
- return 0;
- return 1; /* call me again */
- }
- return 0; /* done */
-}
-
-void
-fi1236_dump_status(FI1236Ptr f)
-{
- if (f->type == TUNER_TYPE_MT2032)
- MT2032_dump_status(f);
-}
diff --git a/hw/xfree86/i2c/fi1236.h b/hw/xfree86/i2c/fi1236.h
deleted file mode 100644
index 0530892..0000000
--- a/hw/xfree86/i2c/fi1236.h
+++ /dev/null
@@ -1,113 +0,0 @@
-#ifndef __FI1236_H__
-#define __FI1236_H__
-
-#include "xf86i2c.h"
-
-/* why someone has defined NUM someplace else is beyoung me.. */
-#undef NUM
-
-typedef struct {
- CARD32 fcar; /* 16 * fcar_Mhz */
- CARD32 min_freq; /* 16 * min_freq_Mhz */
- CARD32 max_freq; /* 16 * max_freq_Mhz */
-
- CARD32 threshold1; /* 16 * Value_Mhz */
- CARD32 threshold2; /* 16 * Value_Mhz */
-
- CARD8 band_low;
- CARD8 band_mid;
- CARD8 band_high;
- CARD8 control;
-} FI1236_parameters;
-
-typedef struct {
- /* what we want */
- /* all frequencies are in Mhz */
- double f_rf; /* frequency to tune to */
- double f_if1; /* first intermediate frequency */
- double f_if2; /* second intermediate frequency */
- double f_ref; /* reference frequency */
- double f_ifbw; /* bandwidth */
- double f_step; /* step */
-
- /* what we compute */
- double f_lo1;
- double f_lo2;
- int LO1I;
- int LO2I;
- int SEL;
- int STEP;
- int NUM;
-} MT2032_parameters;
-
-typedef struct {
- I2CDevRec d;
- int type;
-
- void *afc_source; /* The AFC source may be another chip like TDA988x */
-
- int afc_delta;
- CARD32 original_frequency;
- Bool afc_timer_installed;
- int afc_count;
- int last_afc_hint;
-
- double video_if;
- FI1236_parameters parm;
- int xogc; /* for MT2032 */
-
- struct {
- CARD8 div1;
- CARD8 div2;
- CARD8 control;
- CARD8 band;
- CARD8 aux; /* this is for MK3 tuners */
- } tuner_data;
-} FI1236Rec, *FI1236Ptr;
-
-#define TUNER_TYPE_FI1236 0
-#define TUNER_TYPE_FI1216 1
-#define TUNER_TYPE_TEMIC_FN5AL 2
-#define TUNER_TYPE_MT2032 3
-#define TUNER_TYPE_FI1246 4
-#define TUNER_TYPE_FI1256 5
-#define TUNER_TYPE_FI1236W 6
-#define TUNER_TYPE_FM1216ME 7
-
-#define FI1236_ADDR(a) ((a)->d.SlaveAddr)
-
-#define FI1236_ADDR_1 0xC6
-#define FI1236_ADDR_2 0xC0
-
-#define TUNER_TUNED 0
-#define TUNER_JUST_BELOW 1
-#define TUNER_JUST_ABOVE -1
-#define TUNER_OFF 4
-#define TUNER_STILL_TUNING 5
-
-void FI1236_tune(FI1236Ptr f, CARD32 frequency);
-
-#define FI1236SymbolsList \
- "Detect_FI1236", \
- "FI1236_set_tuner_type", \
- "TUNER_set_frequency"
-
-#define xf86_Detect_FI1236 Detect_FI1236
-extern _X_EXPORT FI1236Ptr Detect_FI1236(I2CBusPtr b, I2CSlaveAddr addr);
-
-#define xf86_FI1236_set_tuner_type FI1236_set_tuner_type
-extern _X_EXPORT void FI1236_set_tuner_type(FI1236Ptr f, int type);
-
-#define xf86_TUNER_set_frequency TUNER_set_frequency
-extern _X_EXPORT void TUNER_set_frequency(FI1236Ptr f, CARD32 frequency);
-
-#define xf86_FI1236_AFC FI1236_AFC
-extern _X_EXPORT int FI1236_AFC(FI1236Ptr f);
-
-#define xf86_TUNER_get_afc_hint TUNER_get_afc_hint
-extern _X_EXPORT int TUNER_get_afc_hint(FI1236Ptr f);
-
-#define xf86_fi1236_dump_status fi1236_dump_status
-extern _X_EXPORT void fi1236_dump_status(FI1236Ptr f);
-
-#endif
diff --git a/hw/xfree86/i2c/fi1236_module.c b/hw/xfree86/i2c/fi1236_module.c
deleted file mode 100644
index 2f453d9..0000000
--- a/hw/xfree86/i2c/fi1236_module.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86Module.h"
-
-static XF86ModuleVersionInfo fi1236VersRec = {
- "fi1236",
- MODULEVENDORSTRING,
- MODINFOSTRING1,
- MODINFOSTRING2,
- XORG_VERSION_CURRENT,
- 1, 0, 0,
- ABI_CLASS_VIDEODRV, /* This needs the video driver ABI */
- ABI_VIDEODRV_VERSION,
- MOD_CLASS_NONE,
- {0, 0, 0, 0}
-};
-
-_X_EXPORT XF86ModuleData fi1236ModuleData = {
- &fi1236VersRec,
- NULL,
- NULL
-};
diff --git a/hw/xfree86/i2c/msp3430.c b/hw/xfree86/i2c/msp3430.c
deleted file mode 100644
index a501489..0000000
--- a/hw/xfree86/i2c/msp3430.c
+++ /dev/null
@@ -1,779 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <string.h>
-#include <unistd.h>
-
-#include "xf86.h"
-#include "xf86i2c.h"
-#include "msp3430.h"
-#include "i2c_def.h"
-
-#define CONTROL 0x00
-#define WR_DEM 0x10
-#define RD_DEM 0x11
-#define WR_DSP 0x12
-#define RD_DSP 0x13
-
-void InitMSP34xxG(MSP3430Ptr m);
-void InitMSP34x5D(MSP3430Ptr m);
-void CheckModeMSP34x5D(MSP3430Ptr m);
-static const char *MSP_getProductName(CARD16 product_id);
-void mpause(int milliseconds);
-
-#define __MSPDEBUG__ 0
-
-#if __MSPDEBUG__ > 3
-
-void MSPBeep(MSP3430Ptr m, CARD8 freq);
-
-#define __MSPBEEP MSPBeep(m,0x14);
-
-#else
-
-#define __MSPBEEP
-#endif
-
-static void
-SetMSP3430Control(MSP3430Ptr m, CARD8 RegAddress, CARD8 RegValueHigh,
- CARD8 RegValueLow)
-{
- I2CByte data[3];
-
- data[0] = RegAddress;
- data[1] = RegValueHigh;
- data[2] = RegValueLow;
-
- I2C_WriteRead(&(m->d), data, 3, NULL, 0);
-}
-
-static void
-SetMSP3430Data(MSP3430Ptr m, CARD8 RegAddress, CARD8 RegSubAddressHigh,
- CARD8 RegSubAddressLow, CARD8 RegValueHigh, CARD8 RegValueLow)
-{
- I2CByte data[5];
-
-#ifdef MSP_DEBUG
- if (!m->registers_present[RegSubAddressLow]) {
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_ERROR,
- "Attempt to access non-existent register in MSP34xxX: 0x%02x 0x%02x 0x%02x <- 0x%02x 0x%02x\n",
- RegAddress, RegSubAddressHigh, RegSubAddressLow,
- RegValueHigh, RegValueLow);
- }
-#endif
-
- data[0] = RegAddress;
- data[1] = RegSubAddressHigh;
- data[2] = RegSubAddressLow;
- data[3] = RegValueHigh;
- data[4] = RegValueLow;
-
- I2C_WriteRead(&(m->d), data, 5, NULL, 0);
-}
-
-static void
-GetMSP3430Data(MSP3430Ptr m, CARD8 RegAddress, CARD8 RegSubAddressHigh,
- CARD8 RegSubAddressLow, CARD8 *RegValueHigh, CARD8 *RegValueLow)
-{
- I2CByte send[3];
- I2CByte receive[2];
-
- send[0] = RegAddress;
- send[1] = RegSubAddressHigh;
- send[2] = RegSubAddressLow;
-
- I2C_WriteRead(&(m->d), send, 3, receive, 2);
-
- *RegValueHigh = receive[0];
- *RegValueLow = receive[1];
-}
-
-#if __MSPDEBUG__ > 2
-static void
-MSP3430DumpStatus(MSP3430Ptr m)
-{
- CARD8 status_hi, status_lo;
- CARD8 subaddr, data[2];
-
- GetMSP3430Data(m, RD_DEM, 0x02, 0x00, &status_hi, &status_lo);
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO,
- "MSP34xx: SAP(8)=%d mono/NICAM(7)=%d stereo=%d %s O_1=%d O_0=%d 2nd car=%d 1st car=%d\n",
- status_hi & 1, (status_lo >> 7) & 1, (status_lo >> 6) & 1,
- (status_lo >> 5) ? ((status_hi >> 1) & 1 ? "bad NICAM reception"
- : "NICAM") : ((status_hi >> 1) & 1 ? "bogus"
- : "ANALOG FM/AM"),
- (status_lo >> 4) & 1, (status_lo >> 3) & 1,
- !((status_lo >> 2) & 1), !((status_lo >> 1) & 1));
-
- GetMSP3430Data(m, RD_DEM, 0x00, 0x7E, &status_hi, &status_lo);
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO,
- "MSP34xx: standard result=0x%02x%02x\n", status_hi, status_lo);
- subaddr = 0x0;
- I2C_WriteRead(&(m->d), &subaddr, 1, data, 2);
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO, "MSP34xx: control=0x%02x%02x\n",
- data[1], data[0]);
-}
-#endif
-
-/* wrapper */
-void
-InitMSP3430(MSP3430Ptr m)
-{
-#if __MSPDEBUG__ > 1
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO,
- "InitMSP3430(m->connector=%d, m->standard=%d, m->chip_family=%d)\n",
- m->connector, m->standard, m->chip_family);
-#endif
- switch (m->chip_family) {
- case MSPFAMILY_34x0G:
- InitMSP34xxG(m);
- break;
- case MSPFAMILY_34x5G:
- InitMSP34xxG(m);
- break;
- case MSPFAMILY_34x5D:
- InitMSP34x5D(m);
- break;
- }
-}
-
-/*-----------------------------------------------------------------
-| common functions for all MSP34xx chips
-|----------------------------------------------------------------*/
-
-MSP3430Ptr
-DetectMSP3430(I2CBusPtr b, I2CSlaveAddr addr)
-{
- MSP3430Ptr m;
- I2CByte a;
- CARD8 hardware_version, major_revision, product_code, rom_version;
- Bool supported;
-
- m = calloc(1, sizeof(MSP3430Rec));
- if (m == NULL)
- return NULL;
- m->d.DevName = strdup("MSP34xx");
- m->d.SlaveAddr = addr;
- m->d.pI2CBus = b;
- m->d.NextDev = NULL;
- m->d.StartTimeout = b->StartTimeout;
- m->d.BitTimeout = b->BitTimeout;
- m->d.AcknTimeout = b->AcknTimeout;
- m->d.ByteTimeout = b->ByteTimeout;
-
- if (!I2C_WriteRead(&(m->d), NULL, 0, &a, 1)) {
- free((void *) m->d.DevName);
- free(m);
- return NULL;
- }
-
- m->standard = MSP3430_NTSC;
- m->connector = MSP3430_CONNECTOR_1;
- m->mode = MSPMODE_STEREO_A; /*stereo or chanel A if avail. */
- m->c_format = MSPFORMAT_UNKNOWN;
- m->c_standard = MSPSTANDARD_UNKNOWN;
- m->c_matrix = m->c_fmmatrix = m->c_source = 0;
- m->volume = 0;
- m->recheck = FALSE;
-
- GetMSP3430Data(m, RD_DSP, 0x00, 0x1E, &hardware_version, &major_revision);
- GetMSP3430Data(m, RD_DSP, 0x00, 0x1F, &product_code, &rom_version);
- m->hardware_version = hardware_version;
- m->major_revision = major_revision;
- m->product_code = product_code;
- m->rom_version = rom_version;
-
- m->chip_id = ((major_revision << 8) | product_code);
-
- supported = FALSE;
- switch (major_revision) {
- case 4: /* 34xxD */
- switch (product_code) {
- case 0x05: /* 3405D */
- case 0x0A: /* 3410D */
- case 0x0F: /* 3415D */
- m->chip_family = MSPFAMILY_34x5D;
- m->recheck = TRUE;
- supported = TRUE;
- break;
- default:
- m->chip_family = MSPFAMILY_34x0D;
- }
- break;
- case 7: /* 34xxG */
- switch (product_code) {
- case 0x00:
- case 0x0A:
- case 0x1E:
- case 0x28:
- case 0x32:
- m->chip_family = MSPFAMILY_34x0G;
- supported = TRUE;
- break;
- case 0x0f:
- case 0x19:
- case 0x2d:
- case 0x37:
- case 0x41:
- m->chip_family = MSPFAMILY_34x5G;
- supported = TRUE;
-#ifdef MSP_DEBUG
- memset(m->registers_present, 0, 256);
-#define A(num) m->registers_present[(num)]=1;
-#define B(num1, num2) memset(&(m->registers_present[num1]), 1, num2-num1);
- A(0x20)
- A(0x30)
- A(0x40)
- A(0x00)
- B(0x01, 0x08)
- B(0x0B, 0x0E)
- A(0x10)
- B(0x12, 0x14)
- A(0x16)
- A(0x29)
-#undef B
-#undef A
-#endif
- break;
- default:
- m->chip_family = MSPFAMILY_UNKNOWN;
- }
- break;
- default:
- m->chip_family = MSPFAMILY_UNKNOWN;
- }
-
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO,
- "Found %s%s, rom version 0x%02x, chip_id=0x%04x\n",
- MSP_getProductName(m->chip_id),
- supported ? "" : " (unsupported)", rom_version, m->chip_id);
-
- if (!supported) {
- free((void *) m->d.DevName);
- free(m);
- return NULL;
- }
- if (!I2CDevInit(&(m->d))) {
- free((void *) m->d.DevName);
- free(m);
- return NULL;
- }
-
- return m;
-}
-
-void
-ResetMSP3430(MSP3430Ptr m)
-{
- /* Reset the MSP3430 */
- SetMSP3430Control(m, 0x00, 0x80, 0x00);
- /* Set it back to normal operation */
- SetMSP3430Control(m, 0x00, 0x00, 0x00);
-
- m->c_format = MSPFORMAT_UNKNOWN;
- m->c_standard = MSPSTANDARD_UNKNOWN;
- m->c_matrix = m->c_fmmatrix = m->c_source = 0;
- m->volume = 0;
-}
-
-void
-MSP3430SetVolume(MSP3430Ptr m, CARD8 value)
-{
- CARD8 result;
-
-#if 0
- CARD8 old_volume;
-
- GetMSP3430Data(m, RD_DSP, 0x00, 0x00, &old_volume, &result);
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO, "MSP3430 result 0x%02x\n",
- result);
-#endif
- /* save an extra Get call */
- result = 0;
-
- SetMSP3430Data(m, WR_DSP, 0x00, 0x00, value, result);
-
- SetMSP3430Data(m, WR_DSP, 0x00, 0x07, value, 0);
- m->volume = value;
-
-#if __MSPDEBUG__ > 2
- MSP3430DumpStatus(m);
- __MSPBEEP GetMSP3430Data(m, RD_DSP, 0x00, 0x00, &old_volume, &result);
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO, "MSP3430 volume 0x%02x\n",
- value);
-#endif
-}
-
-void
-MSP3430SetSAP(MSP3430Ptr m, int mode)
-{
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO,
- "Put actual code to change SAP here\n");
-
- SetMSP3430Data(m, WR_DSP, 0x00, 0x08, mode & 0xff, 0x20);
-}
-
-#if 0
-void
-MSP3430SetSource(MSP3430Ptr m, CARD8 value)
-{
- /* Write to DSP, register 0x0008, (loudspeaker channel source/matrix) */
- /* This sets the source to the TV tuner, for stereo operation */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x08, value, 0x20);
-}
-#endif
-
-static const char *
-MSP_getProductName(CARD16 product_id)
-{
- switch (product_id) {
- case 0x0400:
- return "MSP3400D";
- case 0x040a:
- return "MSP3410D";
- case 0x0405:
- return "MSP3405D";
- case 0x040f:
- return "MSP3415D";
- case 0x0700:
- return "MSP3400G";
- case 0x070a:
- return "MSP3410G";
- case 0x071e:
- return "MSP3430G";
- case 0x0728:
- return "MSP3440G";
- case 0x0732:
- return "MSP3450G";
- case 0x070f:
- return "MSP3415G";
- case 0x0719:
- return "MSP3425G";
- case 0x072d:
- return "MSP3445G";
- case 0x0737:
- return "MSP3455G";
- case 0x0741:
- return "MSP3465G";
- }
- return "MSP - unknown type";
-}
-
-#if __MSPDEBUG__ > 2
-/*puts beep in MSP output
- freq = 0x01 - 16Hz ... 0x40 - 1kHz ... 0xff - 4kHz
-*/
-void
-MSPBeep(MSP3430Ptr m, CARD8 freq)
-{
- SetMSP3430Data(m, WR_DSP, 0x00, freq, 0x7f, 0x40);
- mpause(100);
- SetMSP3430Data(m, WR_DSP, 0x00, 0x14, 0x00, 0x00);
-}
-#endif
-
-void
-mpause(int milliseconds)
-{
- int i, m;
-
- m = milliseconds / 20;
- for (i = 0; i < m; i++)
- usleep(20000);
-}
-
-/*-----------------------------------------------------------------
-| specific functions for all MSP34xxG chips
-|----------------------------------------------------------------*/
-
-void
-InitMSP34xxG(MSP3430Ptr m)
-{
-
-#if __MSPDEBUG__ > 1
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO,
- "InitMSP34xxG(m->connector=%d, m->standard=%d, m->chip_family=%d)\n",
- m->connector, m->standard, m->chip_family);
-#endif
- /* Reset MSP3430 */
- SetMSP3430Control(m, 0x00, 0x80, 0x00);
- /* Set it back to normal operation */
- SetMSP3430Control(m, 0x00, 0x00, 0x00);
-
- /*set MODUS register */
- /* bits: 0 - automatic sound detection */
- /* 1 - enable STATUS change */
- /* 12 - detect 6.5 Mhz carrier as D/K1, D/K2 or D/K NICAM (does not seem to work ) */
- /* 13 - detect 4.5 Mhz carrier as BTSC */
- if ((m->standard & 0xff) == MSP3430_PAL) {
- SetMSP3430Data(m, WR_DEM, 0x00, 0x30, 0x30, 0x03 | 0x08); /* make O_ pins tristate */
- /* PAL standard */
- SetMSP3430Data(m, WR_DEM, 0x00, 0x20, 0x00, 0x01); /* possibly wrong */
- }
- else {
- SetMSP3430Data(m, WR_DEM, 0x00, 0x30, 0x20, 0x03 | 0x08);
- /* standard selection is M-BTSC-Stereo */
- SetMSP3430Data(m, WR_DEM, 0x00, 0x20, 0x00, 0x20);
- }
-
- switch (m->connector) {
- case MSP3430_CONNECTOR_1:
- SetMSP3430Data(m, WR_DSP, 0x00, 0x08, 0x03, 0x20);
- break;
- case MSP3430_CONNECTOR_2:
- /* this has not been checked yet.. could be bogus */
- /* SCART Input Prescale: 0 dB gain */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x0d, 0x19, 0x00);
- SetMSP3430Data(m, WR_DSP, 0x00, 0x08, 0x02, 0x20);
- break;
- case MSP3430_CONNECTOR_3:
- default:
- /* SCART Input Prescale: 0 dB gain */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x0d, 0x19, 0x00);
-
- SetMSP3430Data(m, WR_DSP, 0x00, 0x08, 0x02, 0x20);
- break;
- }
-
- switch (m->standard) {
- case MSP3430_PAL:
- SetMSP3430Data(m, WR_DSP, 0x00, 0x0e, 0x24, 0x03);
- SetMSP3430Data(m, WR_DSP, 0x00, 0x10, 0x00, 0x5a);
- SetMSP3430Data(m, WR_DEM, 0x00, 0x20, 0x00, 0x03);
- /* Set volume to FAST_MUTE. */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x00, 0xFF, 0x00);
- break;
- case MSP3430_PAL_DK1:
- SetMSP3430Data(m, WR_DSP, 0x00, 0x0e, 0x24, 0x03);
- SetMSP3430Data(m, WR_DSP, 0x00, 0x10, 0x00, 0x5a);
- SetMSP3430Data(m, WR_DEM, 0x00, 0x20, 0x00, 0x04);
- /* Set volume to FAST_MUTE. */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x00, 0xFF, 0x00);
- break;
- case MSP3430_SECAM: /* is this right ? */
- case MSP3430_NTSC:
- /* Write to DSP, register 0x000E, (prescale FM/FM matrix) */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x0e, 0x24, 0x03);
-
- /* Set volume to FAST_MUTE. */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x00, 0xFF, 0x00);
- break;
- }
-
-}
-
-/*-----------------------------------------------------------------
-| specific functions for all MSP34x5D chips
-|----------------------------------------------------------------*/
-
-void
-InitMSP34x5D(MSP3430Ptr m)
-{
- int count;
- CARD8 high, low;
- CARD16 result, standard;
- CARD16 peak;
-
- if (m->c_format == MSPFORMAT_UNKNOWN)
- ResetMSP3430(m);
- else {
- /*mute volume */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x00, 0x00, 0x00);
- }
-
- switch (m->connector) {
- case MSP3430_CONNECTOR_2:
- case MSP3430_CONNECTOR_3:
- if (m->c_format != MSPFORMAT_SCART) {
- /* SCART Input Prescale: 0 dB gain */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x0d, 0x19, 0x00);
- /* this has not been checked yet.. could be bogus */
- m->c_format = MSPFORMAT_SCART; /*stereo */
- }
- break;
- case MSP3430_CONNECTOR_1:
- default:
-
- switch (m->standard & 0x00ff) {
- case MSP3430_PAL:
- switch (m->standard) {
- case MSP3430_PAL_DK1:
- standard = MSPSTANDARD_FM_DK1;
- break;
-/* case MSP3430_PAL_DK2:
- standard=MSPSTANDARD_FM_DK2;
- break;
- case MSP3430_PAL_BG:
- may be FM stereo (Germany) or FM NICAM (Scandinavia,spain)
- standard=MSPSTANDARD_AUTO;
- break;
-*/
- default:
- standard = MSPSTANDARD_AUTO;
- }
- break;
- case MSP3430_SECAM:
- standard = MSPSTANDARD_AUTO;
- case MSP3430_NTSC:
- /* Only MSP34x5 supported format - Korean NTSC-M */
- standard = MSPSTANDARD_FM_M;
- default:
- standard = MSPSTANDARD_AUTO;
- }
-
- /*no NICAM support in MSP3410D - force to autodetect */
- if ((m->chip_id == 0x405) && (standard >= MSPSTANDARD_NICAM_BG))
- standard = MSPSTANDARD_AUTO;
-
- if (m->c_standard != standard) {
-
- SetMSP3430Data(m, WR_DEM, 0x00, 0x20, standard >> 8,
- standard & 0xFF);
- if (standard == MSPSTANDARD_AUTO) {
- count = 50; /* time shouldn't exceed 1s, just in case */
- do {
- usleep(20000);
- GetMSP3430Data(m, RD_DEM, 0x00, 0x7e, &high, &low);
- result = (high << 8) | low;
- --count;
- } while (result > 0x07ff && count > 0);
-
- if ((result > MSPSTANDARD_AUTO))
- standard = result;
- else
- standard = MSPSTANDARD_UNKNOWN;
-#if __MSPDEBUG__ > 1
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO,
- "Detected audio standard: %d\n", result);
-#endif
- /* result = MSPSTANDARD_NICAM_L can be one of:
- SECAM_L - MSPSTANDARD_NICAM_L
- D/K1 - MSPSTANDARD_FM_DK1
- D/K2 - MSPSTANDARD_FM_DK2
- D/K-NICAM - MSPSTANDARD_NICAM_DK */
- if (standard == MSPSTANDARD_NICAM_L) {
- if ((m->standard & 0x00ff) == MSP3430_PAL) {
- /* force PAL D/K */
- standard = MSPSTANDARD_FM_DK1;
- SetMSP3430Data(m, WR_DEM, 0x00, 0x20, standard >> 8,
- standard & 0xFF);
-#if __MSPDEBUG__ > 1
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO,
- "Detected 6.5MHz carrier - forced to D/K1 !!!\n");
-#endif
- }
- }
- }
- m->c_standard = standard;
- } /*end - standard changed */
- else {
- if (standard < MSPSTANDARD_NICAM_BG) {
- /* get old value of ident. mode register */
- GetMSP3430Data(m, RD_DSP, 0x00, 0x15, &high, &low);
- /* reset Ident-Filter */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x14, 0x00, 0x3F);
- /* put back old value to ident. mode register */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x14, 0x00, low);
- }
- }
-
- if (standard <= MSPSTANDARD_AUTO) {
- m->c_format = MSPFORMAT_1xFM;
- }
- else if (standard < MSPSTANDARD_NICAM_BG) {
- /* set FM prescale */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x0e, 0x30, 0);
- /* set FM deemphasis */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x0f,
- ((standard == MSPSTANDARD_FM_M) ? 0 : 1), 0);
-
- /* check if FM2 carrier is present */
- /*turn off FM DC Notch */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x17, 0x00, 0x3f);
- /*matrix source for Quasi-Peak Detector - stereo: ch2->L ch1->R */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x0c, 0x00, 0x20);
-
- mpause(250);
- GetMSP3430Data(m, RD_DSP, 0x00, 0x1A, &high, &low);
- peak = (high << 8) | low;
-#if __MSPDEBUG__ > 1
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO,
- "Second carrier Quasi-Peak detection: %d\n", peak);
-#endif
- /*turn on FM DC Notch */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x17, 0x00, 0x00);
-
- if (peak < 5) {
- /* if second carrier not detected - only mono from first carrier */
- m->c_format = MSPFORMAT_1xFM;
- }
- else {
- m->c_format = MSPFORMAT_2xFM;
- /*start of FM identification process - FM_WAIT
- wait at least 0.5s - used 1s - gives beter resolution */
- mpause(1000);
- }
- }
- else {
- if (standard == MSPSTANDARD_NICAM_L) {
- m->c_format = MSPFORMAT_NICAM_AM;
- /* set AM prescale */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x0e, 0x7C, 0);
- }
- else {
- m->c_format = MSPFORMAT_NICAM_FM;
- /* set FM prescale */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x0e, 0x30, 0);
- }
- /* set FM deemphasis */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x0f, 0x00, 0);
- /* set NICAM prescale to 0dB */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x10, 0x20, 0);
- }
-
- break;
- } /*end - case conector */
-
- CheckModeMSP34x5D(m);
-
- /* Set volume to FAST_MUTE. */
- /*SetMSP3430Data(m, WR_DSP, 0x00, 0x00, 0xFF, 0x00); */
- /*set volume */
- MSP3430SetVolume(m, m->volume);
-
-__MSPBEEP} /* EnableMSP34x5D ()... */
-
-void
-CheckModeMSP34x5D(MSP3430Ptr m)
-{
- const char stereo_on = 25;
- const char stereo_off = 20;
- const char dual_on = -stereo_on;
- const char dual_off = -stereo_off;
- char detect;
- CARD8 matrix, fmmatrix, source, high, low;
-
- fmmatrix = 0; /*no matrix */
- source = 0;
- /*FM*/ switch (m->c_format) {
- case MSPFORMAT_NICAM_FM:
- case MSPFORMAT_NICAM_AM:
- case MSPFORMAT_SCART:
- source = ((m->c_format == MSPFORMAT_SCART) ? 2 : 1);
- switch (m->mode) {
- case MSPMODE_MONO:
- matrix = 0x30;
- /*MONO*/ break;
- case MSPMODE_A:
- matrix = 0x00;
- /*A*/ break;
- case MSPMODE_B:
- matrix = 0x10;
- /*B*/ break;
- default:
- matrix = 0x20;
- /*STEREO*/ break;
- }
- break;
- default:
- case MSPFORMAT_1xFM:
- matrix = 0x00;
- /*A*/ break;
- case MSPFORMAT_2xFM:
- switch (m->mode) {
- case MSPMODE_MONO:
- matrix = 0x30;
- /*MONO*/ break;
- case MSPMODE_STEREO:
- matrix = 0x20;
- /*STEREO*/ fmmatrix = ((m->c_standard == MSPSTANDARD_FM_M) ? 2 : 1);
- break;
- case MSPMODE_AB:
- matrix = 0x20;
- /*STEREO*/ break;
- case MSPMODE_A:
- matrix = 0x00;
- /*A*/ break;
- case MSPMODE_B:
- matrix = 0x10;
- /*B*/ break;
- default:
- /*FM_IDENT_CHECK */
- GetMSP3430Data(m, RD_DSP, 0x00, 0x18, &high, &low);
- detect = (char) high;
-#if __MSPDEBUG__ > 1
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO,
- "Stereo Detection Register: %d\n", detect);
-#endif
- if (detect >=
- ((m->c_mode == MSPMODE_STEREO) ? stereo_off : stereo_on)) {
- m->c_mode = MSPMODE_STEREO;
- matrix = 0x20;
- /*STEREO*/
- fmmatrix = ((m->c_standard == MSPSTANDARD_FM_M) ? 2 : 1);
- }
- else if (detect <= ((m->c_mode == MSPMODE_AB) ? dual_off : dual_on)) {
- m->c_mode = MSPMODE_AB;
- switch (m->mode) {
- case MSPMODE_STEREO_AB:
- matrix = 0x20;
- break;
- case MSPMODE_STEREO_B:
- matrix = 0x10;
- break;
- default:
- case MSPMODE_A:
- matrix = 0x00;
- break;
- }
- }
- else {
- m->c_mode = MSPMODE_MONO;
- matrix = 0x30;
- /*MONO*/}
- break;
- } /* end - case mode */
- break;
- }
-
- if (m->c_fmmatrix != fmmatrix) {
- GetMSP3430Data(m, RD_DSP, 0x00, 0x0e, &high, &low);
- SetMSP3430Data(m, WR_DSP, 0x00, 0x0e, high, fmmatrix);
- m->c_fmmatrix = fmmatrix;
- }
-
- if ((m->c_matrix != matrix) || (m->c_source != source)) {
- /*set chanel source and matrix for loudspeaker */
- SetMSP3430Data(m, WR_DSP, 0x00, 0x08, source, matrix);
-
- m->c_matrix = matrix;
- m->c_source = source;
- }
-
- if (((m->c_format) & 0xF0) == MSPFORMAT_NICAM)
- SetMSP3430Data(m, WR_DEM, 0x00, 0x21, 0, 1);
-
-#if __MSPDEBUG__ > 0
- char *msg;
-
- switch (matrix) {
- case 0x30:
- /*MONO*/ msg = "MONO";
- break;
- case 0x00:
- /*LEFT*/ msg = "MONO/CHANNEL_1";
- break;
- case 0x10:
- /*RIGHT*/ msg = "MONO/CHANNEL_2";
- break;
- case 0x20:
- /*LEFT*/ msg = "STEREO";
- break;
- default:
- msg = "unknown";
- break;
- }
- xf86DrvMsg(m->d.pI2CBus->scrnIndex, X_INFO, "Audio mode set to: %s\n", msg);
-#endif
-}
diff --git a/hw/xfree86/i2c/msp3430.h b/hw/xfree86/i2c/msp3430.h
deleted file mode 100644
index ef66e1e..0000000
--- a/hw/xfree86/i2c/msp3430.h
+++ /dev/null
@@ -1,116 +0,0 @@
-#ifndef __MSP3430_H__
-#define __MSP3430_H__
-
-#include "xf86i2c.h"
-
-typedef struct {
- I2CDevRec d;
-
- int standard;
- int connector;
- int mode;
-
- CARD8 hardware_version, major_revision, product_code, rom_version;
-#ifdef MSP_DEBUG
- CARD8 registers_present[256];
-#endif
-
- CARD16 chip_id;
- CARD8 chip_family;
- Bool recheck; /*reinitialization needed after channel change */
- CARD8 c_format; /*current state of audio format */
- CARD16 c_standard; /*current state of standard register */
- CARD8 c_source; /*current state of source register */
- CARD8 c_matrix; /*current state of matrix register */
- CARD8 c_fmmatrix; /*current state of fmmatrix register */
- int c_mode; /* current state of mode for autoswitchimg */
- CARD8 volume;
-} MSP3430Rec, *MSP3430Ptr;
-
-#define MSP3430_ADDR_1 0x80
-#define MSP3430_ADDR_2 0x84
-#define MSP3430_ADDR_3 0x88
-
-#define MSP3430_PAL 1
-#define MSP3430_NTSC 2
-#define MSP3430_PAL_DK1 (0x100 | MSP3430_PAL)
-#define MSP3430_SECAM 3
-
-#define MSP3430_CONNECTOR_1 1 /* tuner on AIW cards */
-#define MSP3430_CONNECTOR_2 2 /* SVideo on AIW cards */
-#define MSP3430_CONNECTOR_3 3 /* composite on AIW cards */
-
-#define MSP3430_ADDR(a) ((a)->d.SlaveAddr)
-
-#define MSP3430_FAST_MUTE 0xFF
-/* a handy volume transform function, -1000..1000 -> 0x01..0x7F */
-#define MSP3430_VOLUME(value) (0x01+(0x7F-0x01)*log(value+1001)/log(2001))
-
-/*----------------------------------------------------------*/
-
-/* MSP chip families */
-#define MSPFAMILY_UNKNOWN 0
-#define MSPFAMILY_34x0D 1
-#define MSPFAMILY_34x5D 2
-#define MSPFAMILY_34x0G 3
-#define MSPFAMILY_34x5G 4
-
-/* values for MSP standard */
-#define MSPSTANDARD_UNKNOWN 0x00
-#define MSPSTANDARD_AUTO 0x01
-#define MSPSTANDARD_FM_M 0x02
-#define MSPSTANDARD_FM_BG 0x03
-#define MSPSTANDARD_FM_DK1 0x04
-#define MSPSTANDARD_FM_DK2 0x04
-#define MSPSTANDARD_NICAM_BG 0x08
-#define MSPSTANDARD_NICAM_L 0x09
-#define MSPSTANDARD_NICAM_I 0x0A
-#define MSPSTANDARD_NICAM_DK 0x0B
-
-/* values for MSP format */
-#define MSPFORMAT_UNKNOWN 0x00
-#define MSPFORMAT_FM 0x10
-#define MSPFORMAT_1xFM 0x00|MSPFORMAT_FM
-#define MSPFORMAT_2xFM 0x01|MSPFORMAT_FM
-#define MSPFORMAT_NICAM 0x20
-#define MSPFORMAT_NICAM_FM 0x00|MSPFORMAT_NICAM
-#define MSPFORMAT_NICAM_AM 0x01|MSPFORMAT_NICAM
-#define MSPFORMAT_SCART 0x30
-
-/* values for MSP mode */
-#define MSPMODE_UNKNOWN 0
-/* automatic modes */
-#define MSPMODE_STEREO_AB 1
-#define MSPMODE_STEREO_A 2
-#define MSPMODE_STEREO_B 3
-/* forced modes */
-#define MSPMODE_MONO 4
-#define MSPMODE_STEREO 5
-#define MSPMODE_AB 6
-#define MSPMODE_A 7
-#define MSPMODE_B 8
-/*----------------------------------------------------------*/
-
-#define xf86_InitMSP3430 InitMSP3430
-extern _X_EXPORT void InitMSP3430(MSP3430Ptr m);
-
-#define xf86_DetectMSP3430 DetectMSP3430
-extern _X_EXPORT MSP3430Ptr DetectMSP3430(I2CBusPtr b, I2CSlaveAddr addr);
-
-#define xf86_ResetMSP3430 ResetMSP3430
-extern _X_EXPORT void ResetMSP3430(MSP3430Ptr m);
-
-#define xf86_MSP3430SetVolume MSP3430SetVolume
-extern _X_EXPORT void MSP3430SetVolume(MSP3430Ptr m, CARD8 value);
-
-#define xf86_MSP3430SetSAP MSP3430SetSAP
-extern _X_EXPORT void MSP3430SetSAP(MSP3430Ptr m, int mode);
-
-#define MSP3430SymbolsList \
- "InitMSP3430", \
- "DetectMSP3430", \
- "ResetMSP3430", \
- "MSP3430SetVolume", \
- "MSP3430SetSAP"
-
-#endif
diff --git a/hw/xfree86/i2c/msp3430_module.c b/hw/xfree86/i2c/msp3430_module.c
deleted file mode 100644
index e177efe..0000000
--- a/hw/xfree86/i2c/msp3430_module.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86Module.h"
-
-static XF86ModuleVersionInfo msp3430VersRec = {
- "msp3430",
- MODULEVENDORSTRING,
- MODINFOSTRING1,
- MODINFOSTRING2,
- XORG_VERSION_CURRENT,
- 1, 0, 0,
- ABI_CLASS_VIDEODRV, /* This needs the video driver ABI */
- ABI_VIDEODRV_VERSION,
- MOD_CLASS_NONE,
- {0, 0, 0, 0}
-};
-
-_X_EXPORT XF86ModuleData msp3430ModuleData = {
- &msp3430VersRec,
- NULL,
- NULL
-};
diff --git a/hw/xfree86/i2c/tda8425.c b/hw/xfree86/i2c/tda8425.c
deleted file mode 100644
index 051249b..0000000
--- a/hw/xfree86/i2c/tda8425.c
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86.h"
-#include "xf86i2c.h"
-#include "tda8425.h"
-#include "i2c_def.h"
-
-#define TDA8425(a,b) { \
- data[0]=a; \
- data[1]=b; \
- I2C_WriteRead(&(t->d), data, 2, NULL, 0); \
- }
-
-TDA8425Ptr
-Detect_tda8425(I2CBusPtr b, I2CSlaveAddr addr, Bool force)
-{
- TDA8425Ptr t;
-
- t = calloc(1, sizeof(TDA8425Rec));
- if (t == NULL)
- return NULL;
- t->d.DevName = "TDA8425 BTSC Stereo Audio Processor";
- t->d.SlaveAddr = addr;
- t->d.pI2CBus = b;
- t->d.NextDev = NULL;
- t->d.StartTimeout = b->StartTimeout;
- t->d.BitTimeout = b->BitTimeout;
- t->d.AcknTimeout = b->AcknTimeout;
- t->d.ByteTimeout = b->ByteTimeout;
-
- if (!force && !I2CProbeAddress(b, addr)) {
- free(t);
- return NULL;
- }
-
- /* set default parameters */
- if (!I2CDevInit(&(t->d))) {
- free(t);
- return NULL;
- }
-
- return t;
-}
-
-Bool
-tda8425_init(TDA8425Ptr t)
-{
- t->stereo = 3; /* 3 = Spacial 2 = Linear 1 = Pseudo 0 = Forced mono */
- t->v_left = 0xFF; /* FF - C0 */
- t->v_right = 0xFF; /* FF - C0 */
- t->bass = 0xF6; /* 0xFF - 0xF0 */
- t->treble = 0xF6; /* 0xFF - 0xF0 */
- t->src_sel = 3; /* 3 - stereo */
- t->mute = TRUE;
- t->mux = 0; /* 0 - source one, 1 -source 2 */
-
- tda8425_setaudio(t);
- return TRUE;
-}
-
-void
-tda8425_setaudio(TDA8425Ptr t)
-{
- I2CByte data[2];
-
- TDA8425(0x00, t->v_left);
- TDA8425(0x01, t->v_right);
- TDA8425(0x02, t->bass);
- TDA8425(0x03, t->treble);
- TDA8425(0x08,
- 0xC0 | (t->mute ? 0x20 : 0x0) | (t->stereo << 3) | (t->
- src_sel << 1) |
- t->mux);
-}
-
-void
-tda8425_mute(TDA8425Ptr t, Bool mute)
-{
- t->mute = mute;
- tda8425_setaudio(t);
-}
diff --git a/hw/xfree86/i2c/tda8425.h b/hw/xfree86/i2c/tda8425.h
deleted file mode 100644
index e3dfb13..0000000
--- a/hw/xfree86/i2c/tda8425.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __TDA8425_H__
-#define __TDA8425_H__
-
-#include "xf86i2c.h"
-
-typedef struct {
- I2CDevRec d;
-
- int mux;
- int stereo;
- int v_left;
- int v_right;
- int bass;
- int treble;
- int src_sel;
- Bool mute;
-} TDA8425Rec, *TDA8425Ptr;
-
-#define TDA8425_ADDR_1 0x82
-
-/* the third parameter is meant to force detection of tda8425.
- This is because tda8425 is write-only and complete implementation
- of I2C protocol is not always available. Besides address there is no good
- way to autodetect it so we have to _know_ it is there anyway */
-
-#define xf86_Detect_tda8425 Detect_tda8425
-extern _X_EXPORT TDA8425Ptr Detect_tda8425(I2CBusPtr b, I2CSlaveAddr addr,
- Bool force);
-#define xf86_tda8425_init tda8425_init
-extern _X_EXPORT Bool tda8425_init(TDA8425Ptr t);
-
-#define xf86_tda8425_setaudio tda8425_setaudio
-extern _X_EXPORT void tda8425_setaudio(TDA8425Ptr t);
-
-#define xf86_tda8425_mute tda8425_mute
-extern _X_EXPORT void tda8425_mute(TDA8425Ptr t, Bool mute);
-
-#define TDA8425SymbolsList \
- "Detect_tda8425", \
- "tda8425_init", \
- "tda8425_setaudio", \
- "tda8425_mute"
-
-#endif
diff --git a/hw/xfree86/i2c/tda8425_module.c b/hw/xfree86/i2c/tda8425_module.c
deleted file mode 100644
index 74c820f..0000000
--- a/hw/xfree86/i2c/tda8425_module.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86Module.h"
-
-static XF86ModuleVersionInfo tda8425VersRec = {
- "tda8425",
- MODULEVENDORSTRING,
- MODINFOSTRING1,
- MODINFOSTRING2,
- XORG_VERSION_CURRENT,
- 1, 0, 0,
- ABI_CLASS_VIDEODRV, /* This needs the video driver ABI */
- ABI_VIDEODRV_VERSION,
- MOD_CLASS_NONE,
- {0, 0, 0, 0}
-};
-
-_X_EXPORT XF86ModuleData tda8425ModuleData = {
- &tda8425VersRec,
- NULL,
- NULL
-};
diff --git a/hw/xfree86/i2c/tda9850.c b/hw/xfree86/i2c/tda9850.c
deleted file mode 100644
index d258bda..0000000
--- a/hw/xfree86/i2c/tda9850.c
+++ /dev/null
@@ -1,136 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86.h"
-#include "xf86i2c.h"
-#include "tda9850.h"
-#include "i2c_def.h"
-
-#define TDA9850(a,b) { \
- data[0]=a; \
- data[1]=b; \
- I2C_WriteRead(&(t->d), data, 2, NULL, 0); \
- }
-
-TDA9850Ptr
-Detect_tda9850(I2CBusPtr b, I2CSlaveAddr addr)
-{
- TDA9850Ptr t;
- I2CByte a;
-
- t = calloc(1, sizeof(TDA9850Rec));
- if (t == NULL)
- return NULL;
- switch (addr) {
- case TDA9850_ADDR_1:
- t->d.DevName = "TDA9850 BTSC Stereo+SAP Audio Processor";
- break;
- default:
- t->d.DevName = "Generic TDAxxxx";
- break;
- }
- t->d.SlaveAddr = addr;
- t->d.pI2CBus = b;
- t->d.NextDev = NULL;
- t->d.StartTimeout = b->StartTimeout;
- t->d.BitTimeout = b->BitTimeout;
- t->d.AcknTimeout = b->AcknTimeout;
- t->d.ByteTimeout = b->ByteTimeout;
-
- if (!I2C_WriteRead(&(t->d), NULL, 0, &a, 1)) {
- free(t);
- return NULL;
- }
-
- /* set default parameters */
- if (!I2CDevInit(&(t->d))) {
- free(t);
- return NULL;
- }
-
- return t;
-}
-
-Bool
-tda9850_init(TDA9850Ptr t)
-{
- t->stereo = 1;
- t->sap = 0;
- t->mute = TRUE;
- t->sap_mute = TRUE;
- tda9850_setaudio(t);
- return TRUE;
-}
-
-void
-tda9850_setaudio(TDA9850Ptr t)
-{
- CARD8 data[2];
-
- if (t->mux == 2) {
- TDA9850(0x04, 0x0F);
- TDA9850(0x05, 0x0F);
- TDA9850(0x06, 0x58);
- TDA9850(0x07, 0x07);
- TDA9850(0x08, 0x00);
- TDA9850(0x09, 0x00);
- TDA9850(0x0A, 0x03);
- }
- else {
- TDA9850(0x04, 0x07);
- TDA9850(0x05, 0x07);
- TDA9850(0x06, 0x58);
- TDA9850(0x07, 0x07);
- TDA9850(0x08, 0x10);
- TDA9850(0x09, 0x10);
- TDA9850(0x0A, 0x03);
- }
-
- TDA9850(0x06,
- (t->stereo << 6) | (t->sap << 7) | (t->mute ? 0x8 : 0) | (t->
- sap_mute ?
- 0x10 :
- 0x0));
-}
-
-void
-tda9850_mute(TDA9850Ptr t, Bool mute)
-{
- CARD8 data[2];
-
- xf86DrvMsg(t->d.pI2CBus->scrnIndex, X_INFO, "tda9850_mute %s\n",
- mute ? "on" : "off");
- t->mute = mute;
-
- TDA9850(0x06,
- (t->stereo << 6) | (t->sap << 7) | (t->mute ? 0x8 : 0x0) | (t->
- sap_mute
- ? 0x10 :
- 0x0));
-}
-
-void
-tda9850_sap_mute(TDA9850Ptr t, Bool sap_mute)
-{
- CARD8 data[2];
-
- xf86DrvMsg(t->d.pI2CBus->scrnIndex, X_INFO, "tda9850_sap_mute %s\n",
- sap_mute ? "on" : "off");
- t->sap_mute = sap_mute;
-
- TDA9850(0x06,
- (t->stereo << 6) | (t->sap << 7) | (t->mute ? 0x8 : 0x0) | (t->
- sap_mute
- ? 0x10 :
- 0x0));
-}
-
-CARD16
-tda9850_getstatus(TDA9850Ptr t)
-{
- CARD16 status;
-
- I2C_WriteRead(&(t->d), NULL, 0, (I2CByte *) &status, 2);
- return status;
-}
diff --git a/hw/xfree86/i2c/tda9850.h b/hw/xfree86/i2c/tda9850.h
deleted file mode 100644
index 7d82095..0000000
--- a/hw/xfree86/i2c/tda9850.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef __TDA9850_H__
-#define __TDA9850_H__
-
-#include "xf86i2c.h"
-
-typedef struct {
- I2CDevRec d;
-
- int mux;
- int stereo;
- int sap;
- Bool mute;
- Bool sap_mute;
-} TDA9850Rec, *TDA9850Ptr;
-
-#define TDA9850_ADDR_1 0xB4
-
-#define xf86_Detect_tda9850 Detect_tda9850
-extern _X_EXPORT TDA9850Ptr Detect_tda9850(I2CBusPtr b, I2CSlaveAddr addr);
-
-#define xf86_tda9850_init tda9850_init
-extern _X_EXPORT Bool tda9850_init(TDA9850Ptr t);
-
-#define xf86_tda9850_setaudio tda9850_setaudio
-extern _X_EXPORT void tda9850_setaudio(TDA9850Ptr t);
-
-#define xf86_tda9850_mute tda9850_mute
-extern _X_EXPORT void tda9850_mute(TDA9850Ptr t, Bool mute);
-
-#define xf86_tda9850_sap_mute tda9850_sap_mute
-extern _X_EXPORT void tda9850_sap_mute(TDA9850Ptr t, Bool sap_mute);
-
-#define xf86_tda9850_getstatus tda9850_getstatus
-extern _X_EXPORT CARD16 tda9850_getstatus(TDA9850Ptr t);
-
-#define TDA9850SymbolsList \
- "Detect_tda9850", \
- "tda9850_init", \
- "tda9850_setaudio", \
- "tda9850_mute", \
- "tda9850_sap_mute"
-
-#endif
diff --git a/hw/xfree86/i2c/tda9850_module.c b/hw/xfree86/i2c/tda9850_module.c
deleted file mode 100644
index 197d65a..0000000
--- a/hw/xfree86/i2c/tda9850_module.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86Module.h"
-
-static XF86ModuleVersionInfo tda9850VersRec = {
- "tda9850",
- MODULEVENDORSTRING,
- MODINFOSTRING1,
- MODINFOSTRING2,
- XORG_VERSION_CURRENT,
- 1, 0, 0,
- ABI_CLASS_VIDEODRV, /* This needs the video driver ABI */
- ABI_VIDEODRV_VERSION,
- MOD_CLASS_NONE,
- {0, 0, 0, 0}
-};
-
-_X_EXPORT XF86ModuleData tda9850ModuleData = {
- &tda9850VersRec,
- NULL,
- NULL
-};
diff --git a/hw/xfree86/i2c/tda9885.c b/hw/xfree86/i2c/tda9885.c
deleted file mode 100644
index fd859bd..0000000
--- a/hw/xfree86/i2c/tda9885.c
+++ /dev/null
@@ -1,100 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86.h"
-#include "xf86i2c.h"
-#include "tda9885.h"
-#include "i2c_def.h"
-
-TDA9885Ptr
-Detect_tda9885(I2CBusPtr b, I2CSlaveAddr addr)
-{
- TDA9885Ptr t;
- I2CByte a;
-
- t = calloc(1, sizeof(TDA9885Rec));
- if (t == NULL)
- return NULL;
- switch (addr) {
- case TDA9885_ADDR_1:
- case TDA9885_ADDR_2:
- case TDA9885_ADDR_3:
- case TDA9885_ADDR_4:
- t->d.DevName = "TDA9885 Alignment-free IF-PLL";
- break;
- default:
- t->d.DevName = "Generic TDAxxxx";
- break;
- }
- t->d.SlaveAddr = addr;
- t->d.pI2CBus = b;
- t->d.NextDev = NULL;
- t->d.StartTimeout = b->StartTimeout;
- t->d.BitTimeout = b->BitTimeout;
- t->d.AcknTimeout = b->AcknTimeout;
- t->d.ByteTimeout = b->ByteTimeout;
-
- if (!I2C_WriteRead(&(t->d), NULL, 0, &a, 1)) {
- free(t);
- return NULL;
- }
-
- /* set default parameters */
- if (!I2CDevInit(&(t->d))) {
- free(t);
- return NULL;
- }
-
- return t;
-}
-
-Bool
-tda9885_init(TDA9885Ptr t)
-{
- t->forced_mute_audio = 1;
- return TRUE;
-}
-
-void
-tda9885_getstatus(TDA9885Ptr t)
-{
- CARD8 value;
-
- I2C_WriteRead(&(t->d), NULL, 0, &value, 1);
- t->after_reset = value & 1;
- t->afc_status = (value >> 1) & 0xf;
- t->fm_carrier = (value >> 5) & 1;
- t->vif_level = (value >> 6) & 1;
- t->afc_win = (value >> 7) & 1;
-}
-
-void
-tda9885_setparameters(TDA9885Ptr t)
-{
- CARD8 data[4];
-
- data[0] = 0; /* start with subaddress 0 */
- data[1] = (t->sound_trap & 1) | ((t->auto_mute_fm & 1) << 1) | ((t->carrier_mode & 1) << 2) | ((t->modulation & 3) << 3) | ((t->forced_mute_audio & 1) << 5) | ((t->port1 & 1) << 6) | ((t->port2 & 1) << 7); /* B data */
- data[2] = (t->top_adjustment & 0x1f) | ((t->deemphasis & 0x3) << 5) | ((t->audio_gain & 1) << 7); /* C data */
- data[3] = (t->standard_sound_carrier & 0x3) | ((t->standard_video_if & 0x07) << 2) | ((t->minimum_gain & 0x01) << 5) | ((t->gating & 0x01) << 6) | ((t->vif_agc & 0x01) << 7); /* E data */
-
- I2C_WriteRead(&(t->d), data, 4, NULL, 0);
-
- xf86DrvMsg(t->d.pI2CBus->scrnIndex, X_INFO,
- "TDA9885 setparam: B data: %x, C data: %x, E data: %x\n",
- data[1], data[2], data[3]);
-}
-
-void
-tda9885_dumpstatus(TDA9885Ptr t)
-{
- xf86DrvMsg(t->d.pI2CBus->scrnIndex, X_INFO,
- "TDA9885 status: after_reset=%d afc_status=%d (%3.1f kHz off) fm_carrier=%d vif_level=%d afc_win=%d %s\n",
- t->after_reset, t->afc_status,
- (t->afc_status <
- 8) ? -12.5 - t->afc_status * 25.0 : -12.5 + (16 -
- t->afc_status) *
- 25.0, t->fm_carrier, t->vif_level, t->afc_win,
- t->afc_win ? "VCO in" : "VCO out");
-}
diff --git a/hw/xfree86/i2c/tda9885.h b/hw/xfree86/i2c/tda9885.h
deleted file mode 100644
index 2d8a8af..0000000
--- a/hw/xfree86/i2c/tda9885.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef __TDA9885_H__
-#define __TDA9885_H__
-
-#include "xf86i2c.h"
-
-typedef struct {
- I2CDevRec d;
-
- /* write-only parameters */
- /* B DATA */
- CARD8 sound_trap;
- CARD8 auto_mute_fm;
- CARD8 carrier_mode;
- CARD8 modulation;
- CARD8 forced_mute_audio;
- CARD8 port1;
- CARD8 port2;
- /* C DATA */
- CARD8 top_adjustment;
- CARD8 deemphasis;
- CARD8 audio_gain;
- /* E DATA */
- CARD8 standard_sound_carrier;
- CARD8 standard_video_if;
- CARD8 minimum_gain;
- CARD8 gating;
- CARD8 vif_agc;
- /* read-only values */
-
- CARD8 after_reset;
- CARD8 afc_status;
- CARD8 vif_level;
- CARD8 afc_win;
- CARD8 fm_carrier;
-} TDA9885Rec, *TDA9885Ptr;
-
-#define TDA9885_ADDR_1 0x86
-#define TDA9885_ADDR_2 0x84
-#define TDA9885_ADDR_3 0x96
-#define TDA9885_ADDR_4 0x94
-
-#define xf86_Detect_tda9885 Detect_tda9885
-extern _X_EXPORT TDA9885Ptr Detect_tda9885(I2CBusPtr b, I2CSlaveAddr addr);
-
-#define xf86_tda9885_init tda9885_init
-extern _X_EXPORT Bool tda9885_init(TDA9885Ptr t);
-
-#define xf86_tda9885_setparameters tda9885_setparameters
-extern _X_EXPORT void tda9885_setparameters(TDA9885Ptr t);
-
-#define xf86_tda9885_getstatus tda9885_getstatus
-extern _X_EXPORT void tda9885_getstatus(TDA9885Ptr t);
-
-#define xf86_tda9885_dumpstatus tda9885_dumpstatus
-extern _X_EXPORT void tda9885_dumpstatus(TDA9885Ptr t);
-
-#define TDA9885SymbolsList \
- "Detect_tda9885", \
- "tda9885_init", \
- "tda9885_setaudio", \
- "tda9885_mute"
-
-#endif
diff --git a/hw/xfree86/i2c/tda9885_module.c b/hw/xfree86/i2c/tda9885_module.c
deleted file mode 100644
index e71bd60..0000000
--- a/hw/xfree86/i2c/tda9885_module.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86Module.h"
-
-static XF86ModuleVersionInfo tda9885VersRec = {
- "tda9885",
- MODULEVENDORSTRING,
- MODINFOSTRING1,
- MODINFOSTRING2,
- XORG_VERSION_CURRENT,
- 1, 0, 0,
- ABI_CLASS_VIDEODRV, /* This needs the video driver ABI */
- ABI_VIDEODRV_VERSION,
- MOD_CLASS_NONE,
- {0, 0, 0, 0}
-};
-
-_X_EXPORT XF86ModuleData tda9885ModuleData = {
- &tda9885VersRec,
- NULL,
- NULL
-};
diff --git a/hw/xfree86/i2c/uda1380.c b/hw/xfree86/i2c/uda1380.c
deleted file mode 100644
index 8722687..0000000
--- a/hw/xfree86/i2c/uda1380.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/*************************************************************************************
- * Copyright (C) 2005 Bogdan D. bogdand at users.sourceforge.net
- *
- * 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 AUTHOR 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.
- *
- * Except as contained in this notice, the name of the author shall not be used in advertising or
- * otherwise to promote the sale, use or other dealings in this Software without prior written
- * authorization from the author.
- *
- ************************************************************************************/
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86.h"
-#include "xf86i2c.h"
-#include "uda1380.h"
-#include "i2c_def.h"
-
-UDA1380Ptr
-Detect_uda1380(I2CBusPtr b, I2CSlaveAddr addr)
-{
- UDA1380Ptr t;
- I2CByte a;
-
- t = calloc(1, sizeof(UDA1380Rec));
- if (t == NULL)
- return NULL;
- switch (addr) {
- case UDA1380_ADDR_1:
- case UDA1380_ADDR_2:
- t->d.DevName = "UDA1380 Stereo audion coder-decoder";
- break;
- default:
- t->d.DevName = "Generic UDAxxxx";
- break;
- }
- t->d.SlaveAddr = addr;
- t->d.pI2CBus = b;
- t->d.NextDev = NULL;
- t->d.StartTimeout = b->StartTimeout;
- t->d.BitTimeout = b->BitTimeout;
- t->d.AcknTimeout = b->AcknTimeout;
- t->d.ByteTimeout = b->ByteTimeout;
-
- if (!I2C_WriteRead(&(t->d), NULL, 0, &a, 1)) {
- free(t);
- return NULL;
- }
-
- /* set default parameters */
- if (!I2CDevInit(&(t->d))) {
- free(t);
- return NULL;
- }
-
- xf86DrvMsg(t->d.pI2CBus->scrnIndex, X_INFO,
- "UDA1380 stereo coder-decoder detected\n");
-
- return t;
-}
-
-Bool
-uda1380_init(UDA1380Ptr t)
-{
- CARD8 data[3];
- CARD16 tmp;
- Bool ret;
-
- /* Power control */
- data[0] = 0x02;
- tmp =
- (1 << 13) | (1 << 10) | (1 << 8) | (1 << 7) | (1 << 6) | (1 << 3) | (1
- <<
- 1);
- data[1] = (CARD8) ((tmp >> 8) & 0xff);
- data[2] = (CARD8) (tmp & 0xff);
- ret = I2C_WriteRead(&(t->d), data, 3, NULL, 0);
- if (ret == FALSE) {
- xf86DrvMsg(t->d.pI2CBus->scrnIndex, X_INFO,
- "UDA1380 failed to initialize\n");
- return FALSE;
- }
-
- /* Analog mixer (AVC) */
- data[0] = 0x03;
- /* the analog mixer is muted initially */
- data[1] = 0x3f;
- data[2] = 0x3f;
- ret = I2C_WriteRead(&(t->d), data, 3, NULL, 0);
- if (ret == FALSE) {
- xf86DrvMsg(t->d.pI2CBus->scrnIndex, X_INFO,
- "UDA1380 failed to initialize\n");
- return FALSE;
- }
-
- xf86DrvMsg(t->d.pI2CBus->scrnIndex, X_INFO, "UDA1380 initialized\n");
-
- return TRUE;
-}
-
-void
-uda1380_shutdown(UDA1380Ptr t)
-{
- CARD8 data[3];
- Bool ret;
-
- /* Power control */
- data[0] = 0x02;
- data[1] = 0;
- data[2] = 0;
- ret = I2C_WriteRead(&(t->d), data, 3, NULL, 0);
- if (ret == FALSE)
- xf86DrvMsg(t->d.pI2CBus->scrnIndex, X_INFO,
- "UDA1380 failed to shutdown\n");
-}
-
-void
-uda1380_setvolume(UDA1380Ptr t, INT32 value)
-{
- CARD8 data[3];
-
- /*
- * We have to scale the value ranging from -1000 to 1000 to 0x2c to 0
- */
- CARD8 volume = 47 - (CARD8) ((value + 1000) * 47 / 2000);
- Bool ret;
-
- t->analog_mixer_settings = ((volume << 8) & 0x3f00) | (volume & 0x3f);
-
- /* Analog mixer (AVC) */
- data[0] = 0x03;
- data[1] = volume & 0x3f;
- data[2] = volume & 0x3f;
- ret = I2C_WriteRead(&(t->d), data, 3, NULL, 0);
- if (ret == FALSE)
- xf86DrvMsg(t->d.pI2CBus->scrnIndex, X_INFO,
- "UDA1380 failed to set volume\n");
-}
-
-void
-uda1380_mute(UDA1380Ptr t, Bool mute)
-{
- CARD8 data[3];
- Bool ret;
-
- if (mute == TRUE) {
- /* Analog mixer (AVC) */
- data[0] = 0x03;
- data[1] = 0xff;
- data[2] = 0xff;
- ret = I2C_WriteRead(&(t->d), data, 3, NULL, 0);
- if (ret == FALSE)
- xf86DrvMsg(t->d.pI2CBus->scrnIndex, X_INFO,
- "UDA1380 failed to mute\n");
- }
- else {
- /* Analog mixer (AVC) */
- data[0] = 0x03;
- data[1] = (CARD8) ((t->analog_mixer_settings >> 8) & 0x3f);
- data[2] = (CARD8) (t->analog_mixer_settings & 0x3f);
- ret = I2C_WriteRead(&(t->d), data, 3, NULL, 0);
- if (ret == FALSE)
- xf86DrvMsg(t->d.pI2CBus->scrnIndex, X_INFO,
- "UDA1380 failed to unmute\n");
- }
-}
-
-void
-uda1380_getstatus(UDA1380Ptr t)
-{
-}
-
-void
-uda1380_setparameters(UDA1380Ptr t)
-{
-}
-
-void
-uda1380_dumpstatus(UDA1380Ptr t)
-{
-}
diff --git a/hw/xfree86/i2c/uda1380.h b/hw/xfree86/i2c/uda1380.h
deleted file mode 100644
index f0bc616..0000000
--- a/hw/xfree86/i2c/uda1380.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*************************************************************************************
- * Copyright (C) 2005 Bogdan D. bogdand at users.sourceforge.net
- *
- * 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 AUTHOR 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.
- *
- * Except as contained in this notice, the name of the author shall not be used in advertising or
- * otherwise to promote the sale, use or other dealings in this Software without prior written
- * authorization from the author.
- *
- * Revision 1.3 2005/09/24 21:56:00 bogdand
- * Changed the license to a X/MIT one
- *
- * Revision 1.2 2005/07/01 22:43:11 daniels
- * Change all misc.h and os.h references to <X11/foo.h>.
- *
- *
- ************************************************************************************/
-
-#ifndef __UDA1380_H__
-#define __UDA1380_H__
-
-#include "xf86i2c.h"
-
-typedef struct {
- I2CDevRec d;
-
- CARD16 analog_mixer_settings; /* register 0x03 */
-
-} UDA1380Rec, *UDA1380Ptr;
-
-#define UDA1380_ADDR_1 0x30
-#define UDA1380_ADDR_2 0x34
-
-#define xf86_Detect_uda1380 Detect_uda1380
-extern _X_EXPORT UDA1380Ptr Detect_uda1380(I2CBusPtr b, I2CSlaveAddr addr);
-
-#define xf86_uda1380_init uda1380_init
-extern _X_EXPORT Bool uda1380_init(UDA1380Ptr t);
-
-#define xf86_uda1380_shutdown uda1380_shutdown
-extern _X_EXPORT void uda1380_shutdown(UDA1380Ptr t);
-
-#define xf86_uda1380_setvolume uda1380_setvolume
-extern _X_EXPORT void uda1380_setvolume(UDA1380Ptr t, INT32);
-
-#define xf86_uda1380_mute uda1380_mute
-extern _X_EXPORT void uda1380_mute(UDA1380Ptr t, Bool);
-
-#define xf86_uda1380_setparameters uda1380_setparameters
-extern _X_EXPORT void uda1380_setparameters(UDA1380Ptr t);
-
-#define xf86_uda1380_getstatus uda1380_getstatus
-extern _X_EXPORT void uda1380_getstatus(UDA1380Ptr t);
-
-#define xf86_uda1380_dumpstatus uda1380_dumpstatus
-extern _X_EXPORT void uda1380_dumpstatus(UDA1380Ptr t);
-
-#define UDA1380SymbolsList \
- "Detect_uda1380", \
- "uda1380_init", \
- "uda1380_shutdown", \
- "uda1380_setvolume", \
- "uda1380_mute", \
- "uda1380_setparameters", \
- "uda1380_getstatus", \
- "uda1380_dumpstatus"
-
-#endif
diff --git a/hw/xfree86/i2c/uda1380_module.c b/hw/xfree86/i2c/uda1380_module.c
deleted file mode 100644
index dca834b..0000000
--- a/hw/xfree86/i2c/uda1380_module.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf86Module.h"
-
-static XF86ModuleVersionInfo uda1380VersRec = {
- "uda1380",
- MODULEVENDORSTRING,
- MODINFOSTRING1,
- MODINFOSTRING2,
- XORG_VERSION_CURRENT,
- 1, 0, 0,
- ABI_CLASS_VIDEODRV, /* This needs the video driver ABI */
- ABI_VIDEODRV_VERSION,
- MOD_CLASS_NONE,
- {0, 0, 0, 0}
-};
-
-_X_EXPORT XF86ModuleData uda1380ModuleData = {
- &uda1380VersRec,
- NULL,
- NULL
-};
diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c
index e1f649a..f1f7c22 100644
--- a/hw/xfree86/loader/loadmod.c
+++ b/hw/xfree86/loader/loadmod.c
@@ -197,7 +197,6 @@ static const char *stdSubdirs[] = {
"",
"input/",
"drivers/",
- "multimedia/",
"extensions/",
"internal/",
NULL
--
1.9.3
More information about the xorg-devel
mailing list