X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sound%2Fi2c%2Fcs8427.c;h=7510773b6255e7b87e28183369eedde9fa8579e0;hb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;hp=c8f148ea2ee93fa3df464ea164c1ead7ae165888;hpb=a2c21200f1c81b08cb55e417b68150bba439b646;p=linux-2.6.git diff --git a/sound/i2c/cs8427.c b/sound/i2c/cs8427.c index c8f148ea2..7510773b6 100644 --- a/sound/i2c/cs8427.c +++ b/sound/i2c/cs8427.c @@ -34,8 +34,6 @@ MODULE_AUTHOR("Jaroslav Kysela "); MODULE_DESCRIPTION("IEC958 (S/PDIF) receiver & transmitter by Cirrus Logic"); MODULE_LICENSE("GPL"); -#define chip_t snd_i2c_device_t - #define CS8427_ADDR (0x20>>1) /* fixed address */ typedef struct { @@ -109,7 +107,7 @@ int snd_cs8427_reg_read(snd_i2c_device_t *device, unsigned char reg) static int snd_cs8427_select_corudata(snd_i2c_device_t *device, int udata) { - cs8427_t *chip = snd_magic_cast(cs8427_t, device->private_data, return -ENXIO); + cs8427_t *chip = device->private_data; int err; udata = udata ? CS8427_BSEL : 0; @@ -128,7 +126,7 @@ static int snd_cs8427_send_corudata(snd_i2c_device_t *device, unsigned char *ndata, int count) { - cs8427_t *chip = snd_magic_cast(cs8427_t, device->private_data, return -ENXIO); + cs8427_t *chip = device->private_data; char *hw_data = udata ? chip->playback.hw_udata : chip->playback.hw_status; char data[32]; int err, idx; @@ -159,7 +157,7 @@ static int snd_cs8427_send_corudata(snd_i2c_device_t *device, static void snd_cs8427_free(snd_i2c_device_t *device) { if (device->private_data) - snd_magic_kfree(device->private_data); + kfree(device->private_data); } int snd_cs8427_create(snd_i2c_bus_t *bus, @@ -211,7 +209,7 @@ int snd_cs8427_create(snd_i2c_bus_t *bus, if ((err = snd_i2c_device_create(bus, "CS8427", CS8427_ADDR | (addr & 7), &device)) < 0) return err; - chip = device->private_data = snd_magic_kcalloc(cs8427_t, 0, GFP_KERNEL); + chip = device->private_data = kcalloc(1, sizeof(*chip), GFP_KERNEL); if (chip == NULL) { snd_i2c_device_free(device); return -ENOMEM; @@ -297,7 +295,7 @@ void snd_cs8427_reset(snd_i2c_device_t *cs8427) int data; snd_assert(cs8427, return); - chip = snd_magic_cast(cs8427_t, cs8427->private_data, return); + chip = cs8427->private_data; snd_i2c_lock(cs8427->bus); chip->regmap[CS8427_REG_CLOCKSOURCE] &= ~(CS8427_RUN | CS8427_RXDMASK); snd_cs8427_reg_write(cs8427, CS8427_REG_CLOCKSOURCE, chip->regmap[CS8427_REG_CLOCKSOURCE]); @@ -389,7 +387,7 @@ static int snd_cs8427_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) { snd_i2c_device_t *device = snd_kcontrol_chip(kcontrol); - cs8427_t *chip = snd_magic_cast(cs8427_t, device->private_data, return -ENXIO); + cs8427_t *chip = device->private_data; snd_i2c_lock(device->bus); memcpy(ucontrol->value.iec958.status, chip->playback.def_status, 24); @@ -401,7 +399,7 @@ static int snd_cs8427_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) { snd_i2c_device_t *device = snd_kcontrol_chip(kcontrol); - cs8427_t *chip = snd_magic_cast(cs8427_t, device->private_data, return -ENXIO); + cs8427_t *chip = device->private_data; unsigned char *status = kcontrol->private_value ? chip->playback.pcm_status : chip->playback.def_status; snd_pcm_runtime_t *runtime = chip->playback.substream ? chip->playback.substream->runtime : NULL; int err, change; @@ -432,8 +430,6 @@ static int snd_cs8427_spdif_mask_get(snd_kcontrol_t * kcontrol, return 0; } -#define CONTROLS (sizeof(snd_cs8427_iec958_controls)/sizeof(snd_kcontrol_new_t)) - static snd_kcontrol_new_t snd_cs8427_iec958_controls[] = { { .iface = SNDRV_CTL_ELEM_IFACE_PCM, @@ -487,13 +483,13 @@ int snd_cs8427_iec958_build(snd_i2c_device_t *cs8427, snd_pcm_substream_t *play_substream, snd_pcm_substream_t *cap_substream) { - cs8427_t *chip = snd_magic_cast(cs8427_t, cs8427->private_data, return -ENXIO); + cs8427_t *chip = cs8427->private_data; snd_kcontrol_t *kctl; unsigned int idx; int err; snd_assert(play_substream && cap_substream, return -EINVAL); - for (idx = 0; idx < CONTROLS; idx++) { + for (idx = 0; idx < ARRAY_SIZE(snd_cs8427_iec958_controls); idx++) { kctl = snd_ctl_new1(&snd_cs8427_iec958_controls[idx], cs8427); if (kctl == NULL) return -ENOMEM; @@ -517,7 +513,7 @@ int snd_cs8427_iec958_active(snd_i2c_device_t *cs8427, int active) cs8427_t *chip; snd_assert(cs8427, return -ENXIO); - chip = snd_magic_cast(cs8427_t, cs8427->private_data, return -ENXIO); + chip = cs8427->private_data; if (active) memcpy(chip->playback.pcm_status, chip->playback.def_status, 24); chip->playback.pcm_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE; @@ -533,7 +529,7 @@ int snd_cs8427_iec958_pcm(snd_i2c_device_t *cs8427, unsigned int rate) int err, reset; snd_assert(cs8427, return -ENXIO); - chip = snd_magic_cast(cs8427_t, cs8427->private_data, return -ENXIO); + chip = cs8427->private_data; status = chip->playback.pcm_status; snd_i2c_lock(cs8427->bus); if (status[0] & IEC958_AES0_PROFESSIONAL) {