Lines Matching defs:subpriv

633 	struct dio200_subdev_intr *subpriv = s->private;
635 if (subpriv->has_int_sce) {
637 data[1] = inb(subpriv->iobase) & subpriv->valid_isns;
652 struct dio200_subdev_intr *subpriv = s->private;
654 subpriv->active = 0;
655 subpriv->enabled_isns = 0;
656 if (subpriv->has_int_sce)
657 outb(0, subpriv->iobase);
668 struct dio200_subdev_intr *subpriv = s->private;
672 if (!subpriv->continuous && subpriv->stopcount == 0) {
675 subpriv->active = 0;
684 isn_bits &= subpriv->valid_isns;
686 subpriv->enabled_isns = isn_bits;
687 if (subpriv->has_int_sce)
688 outb(isn_bits, subpriv->iobase);
701 struct dio200_subdev_intr *subpriv;
708 subpriv = s->private;
710 spin_lock_irqsave(&subpriv->spinlock, flags);
712 if (subpriv->active)
715 spin_unlock_irqrestore(&subpriv->spinlock, flags);
730 struct dio200_subdev_intr *subpriv = s->private;
739 spin_lock_irqsave(&subpriv->spinlock, flags);
741 if (subpriv->has_int_sce) {
752 cur_enabled = subpriv->enabled_isns;
753 while ((intstat = (inb(subpriv->iobase) & subpriv->valid_isns
757 outb(cur_enabled, subpriv->iobase);
764 triggered = subpriv->enabled_isns;
774 cur_enabled = subpriv->enabled_isns;
775 if (subpriv->has_int_sce)
776 outb(cur_enabled, subpriv->iobase);
778 if (subpriv->active) {
786 if (triggered & subpriv->enabled_isns) {
811 if (!subpriv->continuous) {
813 if (subpriv->stopcount > 0) {
814 subpriv->stopcount--;
815 if (subpriv->stopcount == 0) {
826 spin_unlock_irqrestore(&subpriv->spinlock, flags);
840 struct dio200_subdev_intr *subpriv = s->private;
843 spin_lock_irqsave(&subpriv->spinlock, flags);
844 if (subpriv->active)
847 spin_unlock_irqrestore(&subpriv->spinlock, flags);
967 struct dio200_subdev_intr *subpriv = s->private;
971 spin_lock_irqsave(&subpriv->spinlock, flags);
972 subpriv->active = 1;
977 subpriv->continuous = 0;
978 subpriv->stopcount = cmd->stop_arg;
982 subpriv->continuous = 1;
983 subpriv->stopcount = 0;
997 spin_unlock_irqrestore(&subpriv->spinlock, flags);
1013 struct dio200_subdev_intr *subpriv;
1015 subpriv = kzalloc(sizeof(*subpriv), GFP_KERNEL);
1016 if (!subpriv) {
1021 subpriv->iobase = iobase;
1022 subpriv->has_int_sce = has_int_sce;
1023 subpriv->valid_isns = valid_isns;
1024 spin_lock_init(&subpriv->spinlock);
1027 outb(0, subpriv->iobase); /* Disable interrupt sources. */
1029 s->private = subpriv;
1057 struct dio200_subdev_intr *subpriv = s->private;
1058 kfree(subpriv);
1090 struct dio200_subdev_8254 *subpriv = s->private;
1094 spin_lock_irqsave(&subpriv->spinlock, flags);
1095 data[0] = i8254_read(subpriv->iobase, 0, chan);
1096 spin_unlock_irqrestore(&subpriv->spinlock, flags);
1108 struct dio200_subdev_8254 *subpriv = s->private;
1112 spin_lock_irqsave(&subpriv->spinlock, flags);
1113 i8254_write(subpriv->iobase, 0, chan, data[0]);
1114 spin_unlock_irqrestore(&subpriv->spinlock, flags);
1123 dio200_set_gate_src(struct dio200_subdev_8254 *subpriv,
1128 if (!subpriv->has_clk_gat_sce)
1135 subpriv->gate_src[counter_number] = gate_src;
1136 byte = GAT_SCE(subpriv->which, counter_number, gate_src);
1137 outb(byte, subpriv->gat_sce_iobase);
1146 dio200_get_gate_src(struct dio200_subdev_8254 *subpriv,
1149 if (!subpriv->has_clk_gat_sce)
1154 return subpriv->gate_src[counter_number];
1161 dio200_set_clock_src(struct dio200_subdev_8254 *subpriv,
1166 if (!subpriv->has_clk_gat_sce)
1173 subpriv->clock_src[counter_number] = clock_src;
1174 byte = CLK_SCE(subpriv->which, counter_number, clock_src);
1175 outb(byte, subpriv->clk_sce_iobase);
1184 dio200_get_clock_src(struct dio200_subdev_8254 *subpriv,
1189 if (!subpriv->has_clk_gat_sce)
1194 clock_src = subpriv->clock_src[counter_number];
1206 struct dio200_subdev_8254 *subpriv = s->private;
1211 spin_lock_irqsave(&subpriv->spinlock, flags);
1214 ret = i8254_set_mode(subpriv->iobase, 0, chan, data[1]);
1219 data[1] = i8254_status(subpriv->iobase, 0, chan);
1222 ret = dio200_set_gate_src(subpriv, chan, data[2]);
1227 ret = dio200_get_gate_src(subpriv, chan);
1235 ret = dio200_set_clock_src(subpriv, chan, data[1]);
1240 ret = dio200_get_clock_src(subpriv, chan, &data[2]);
1251 spin_unlock_irqrestore(&subpriv->spinlock, flags);
1266 struct dio200_subdev_8254 *subpriv;
1269 subpriv = kzalloc(sizeof(*subpriv), GFP_KERNEL);
1270 if (!subpriv) {
1276 s->private = subpriv;
1285 spin_lock_init(&subpriv->spinlock);
1286 subpriv->iobase = offset + iobase;
1287 subpriv->has_clk_gat_sce = has_clk_gat_sce;
1291 subpriv->clk_sce_iobase =
1293 subpriv->gat_sce_iobase =
1295 subpriv->which = (offset >> 2) & 1;
1300 i8254_set_mode(subpriv->iobase, 0, chan,
1302 if (subpriv->has_clk_gat_sce) {
1304 dio200_set_gate_src(subpriv, chan, 0);
1306 dio200_set_clock_src(subpriv, chan, 0);
1320 struct dio200_subdev_intr *subpriv = s->private;
1321 kfree(subpriv);