Lines Matching refs:socket

166 #define ti_sysctl(socket)	((socket)->private[0])
167 #define ti_cardctl(socket) ((socket)->private[1])
168 #define ti_devctl(socket) ((socket)->private[2])
169 #define ti_diag(socket) ((socket)->private[3])
170 #define ti_mfunc(socket) ((socket)->private[4])
171 #define ene_test_c9(socket) ((socket)->private[5])
176 static void ti_save_state(struct yenta_socket *socket)
178 ti_sysctl(socket) = config_readl(socket, TI113X_SYSTEM_CONTROL);
179 ti_mfunc(socket) = config_readl(socket, TI122X_MFUNC);
180 ti_cardctl(socket) = config_readb(socket, TI113X_CARD_CONTROL);
181 ti_devctl(socket) = config_readb(socket, TI113X_DEVICE_CONTROL);
182 ti_diag(socket) = config_readb(socket, TI1250_DIAGNOSTIC);
184 if (socket->dev->vendor == PCI_VENDOR_ID_ENE)
185 ene_test_c9(socket) = config_readb(socket, ENE_TEST_C9);
188 static void ti_restore_state(struct yenta_socket *socket)
190 config_writel(socket, TI113X_SYSTEM_CONTROL, ti_sysctl(socket));
191 config_writel(socket, TI122X_MFUNC, ti_mfunc(socket));
192 config_writeb(socket, TI113X_CARD_CONTROL, ti_cardctl(socket));
193 config_writeb(socket, TI113X_DEVICE_CONTROL, ti_devctl(socket));
194 config_writeb(socket, TI1250_DIAGNOSTIC, ti_diag(socket));
196 if (socket->dev->vendor == PCI_VENDOR_ID_ENE)
197 config_writeb(socket, ENE_TEST_C9, ene_test_c9(socket));
207 struct yenta_socket *socket = container_of(sock, struct yenta_socket, socket);
211 reg = config_readb(socket, TI113X_CARD_CONTROL);
217 config_writeb(socket, TI113X_CARD_CONTROL, reg);
225 * to know a lot more about socket pairings in pcmcia_socket than
231 struct yenta_socket *socket = container_of(sock, struct yenta_socket, socket);
237 reg = config_readb(socket, TI1250_MULTIMEDIA_CTL);
240 if(PCI_FUNC(socket->dev->devfn)==1)
246 reg |= shift<<6; /* Favour our socket */
252 reg |= (1^shift)<<6; /* Favour other socket */
256 config_writeb(socket, TI1250_MULTIMEDIA_CTL, reg);
259 static void ti_set_zv(struct yenta_socket *socket)
261 if(socket->dev->vendor == PCI_VENDOR_ID_TI)
263 switch(socket->dev->device)
270 socket->socket.zoom_video = ti_zoom_video;
276 socket->socket.zoom_video = ti1250_zoom_video;
294 static int ti_init(struct yenta_socket *socket)
296 u8 new, reg = exca_readb(socket, I365_INTCTL);
299 if (socket->dev->irq)
302 exca_writeb(socket, I365_INTCTL, new);
306 static int ti_override(struct yenta_socket *socket)
308 u8 new, reg = exca_readb(socket, I365_INTCTL);
312 exca_writeb(socket, I365_INTCTL, new);
314 ti_set_zv(socket);
319 static void ti113x_use_isa_irq(struct yenta_socket *socket)
329 isa_irq_mask = yenta_probe_irq(socket, isa_interrupts);
336 socket->cb_irq = isa_irq;
338 exca_writeb(socket, I365_CSCINT, (isa_irq << 4));
340 intctl = exca_readb(socket, I365_INTCTL);
342 exca_writeb(socket, I365_INTCTL, intctl);
344 dev_info(&socket->dev->dev,
349 static int ti113x_override(struct yenta_socket *socket)
353 cardctl = config_readb(socket, TI113X_CARD_CONTROL);
355 if (socket->dev->irq)
358 ti113x_use_isa_irq(socket);
360 config_writeb(socket, TI113X_CARD_CONTROL, cardctl);
362 return ti_override(socket);
367 static void ti12xx_irqroute_func0(struct yenta_socket *socket)
373 mfunc = mfunc_old = config_readl(socket, TI122X_MFUNC);
374 devctl = config_readb(socket, TI113X_DEVICE_CONTROL);
375 dev_info(&socket->dev->dev, "TI: mfunc 0x%08x, devctl 0x%02x\n",
379 ti_init(socket);
382 pci_irq_status = yenta_probe_cb_irq(socket);
390 dev_info(&socket->dev->dev,
395 switch (socket->dev->device) {
411 config_writel(socket, TI122X_MFUNC, mfunc);
413 pci_irq_status = yenta_probe_cb_irq(socket);
415 dev_info(&socket->dev->dev,
423 config_writel(socket, TI122X_MFUNC, mfunc);
431 dev_info(&socket->dev->dev,
435 config_writeb(socket, TI113X_DEVICE_CONTROL, devctl);
439 switch (socket->dev->device) {
445 gpio3 = gpio3_old = config_readb(socket, TI1250_GPIO3_CONTROL);
448 config_writeb(socket, TI1250_GPIO3_CONTROL, gpio3);
456 config_writel(socket, TI122X_MFUNC, mfunc);
460 pci_irq_status = yenta_probe_cb_irq(socket);
463 dev_info(&socket->dev->dev, "TI: parallel PCI interrupts ok\n");
467 config_writel(socket, TI122X_MFUNC, mfunc);
469 config_writeb(socket, TI1250_GPIO3_CONTROL, gpio3_old);
474 socket->cb_irq = 0;
475 dev_info(&socket->dev->dev,
482 static int ti12xx_align_irqs(struct yenta_socket *socket, int *old_irq)
487 func0 = pci_get_slot(socket->dev->bus, socket->dev->devfn & ~0x07);
492 *old_irq = socket->cb_irq;
493 socket->cb_irq = socket->dev->irq = func0->irq;
505 static int ti12xx_tie_interrupts(struct yenta_socket *socket, int *old_irq)
510 sysctl = config_readl(socket, TI113X_SYSTEM_CONTROL);
515 ret = ti12xx_align_irqs(socket, old_irq);
521 config_writel(socket, TI113X_SYSTEM_CONTROL, sysctl);
527 static void ti12xx_untie_interrupts(struct yenta_socket *socket, int old_irq)
529 u32 sysctl = config_readl(socket, TI113X_SYSTEM_CONTROL);
531 config_writel(socket, TI113X_SYSTEM_CONTROL, sysctl);
533 socket->cb_irq = socket->dev->irq = old_irq;
541 static void ti12xx_irqroute_func1(struct yenta_socket *socket)
546 mfunc = mfunc_old = config_readl(socket, TI122X_MFUNC);
547 devctl = config_readb(socket, TI113X_DEVICE_CONTROL);
548 dev_info(&socket->dev->dev, "TI: mfunc 0x%08x, devctl 0x%02x\n",
552 sysctl = config_readl(socket, TI113X_SYSTEM_CONTROL);
554 ti12xx_align_irqs(socket, NULL);
557 ti_init(socket);
560 pci_irq_status = yenta_probe_cb_irq(socket);
568 dev_info(&socket->dev->dev,
575 if (ti12xx_tie_interrupts(socket, &old_irq)) {
576 pci_irq_status = yenta_probe_cb_irq(socket);
578 dev_info(&socket->dev->dev,
583 ti12xx_untie_interrupts(socket, old_irq);
590 switch (socket->dev->device) {
612 config_writel(socket, TI122X_MFUNC, mfunc);
614 pci_irq_status = yenta_probe_cb_irq(socket);
616 dev_info(&socket->dev->dev,
622 config_writel(socket, TI122X_MFUNC, mfunc);
629 if (ti12xx_tie_interrupts(socket, &old_irq)) {
630 pci_irq_status = yenta_probe_cb_irq(socket);
632 dev_info(&socket->dev->dev,
637 ti12xx_untie_interrupts(socket, old_irq);
643 socket->cb_irq = 0;
644 dev_info(&socket->dev->dev,
651 static int ti12xx_2nd_slot_empty(struct yenta_socket *socket)
661 switch (socket->dev->device) {
694 sysctl = config_readl(socket, TI113X_SYSTEM_CONTROL);
706 devfn = socket->dev->devfn & ~0x07;
707 func = pci_get_slot(socket->dev->bus,
708 (socket->dev->devfn & 0x07) ? devfn : devfn | 0x01);
718 if (socket->dev->device != func->device)
726 yenta_get_status(&slot2->socket, &state);
746 struct yenta_socket *socket = container_of(sock, struct yenta_socket, socket);
754 devctl = config_readb(socket, TI113X_DEVICE_CONTROL);
755 sysctl = config_readl(socket, TI113X_SYSTEM_CONTROL);
756 mfunc = config_readl(socket, TI122X_MFUNC);
766 (pwr_irqs_off || ti12xx_2nd_slot_empty(socket))) {
767 switch (socket->dev->device) {
789 if ((PCI_FUNC(socket->dev->devfn) == 0) ||
791 (pwr_irqs_off || ti12xx_2nd_slot_empty(socket)))) {
793 switch (socket->dev->device) {
799 gpio3 = config_readb(socket, TI1250_GPIO3_CONTROL);
804 config_writeb(socket, TI1250_GPIO3_CONTROL, gpio3);
813 config_writel(socket, TI122X_MFUNC, mfunc);
816 switch (socket->dev->device) {
825 config_writel(socket, TI122X_MFUNC, mfunc);
835 config_writel(socket, TI122X_MFUNC, mfunc);
842 static int ti12xx_override(struct yenta_socket *socket)
847 val_orig = val = config_readl(socket, TI113X_SYSTEM_CONTROL);
848 if (disable_clkrun && PCI_FUNC(socket->dev->devfn) == 0) {
849 dev_info(&socket->dev->dev, "Disabling CLKRUN feature\n");
853 dev_info(&socket->dev->dev,
858 config_writel(socket, TI113X_SYSTEM_CONTROL, val);
864 val = config_readb(socket, TI1250_DIAGNOSTIC);
865 dev_info(&socket->dev->dev, "Using %s to route CSC interrupts to PCI\n",
867 dev_info(&socket->dev->dev, "Routing CardBus interrupts to %s\n",
871 if (PCI_FUNC(socket->dev->devfn) == 0)
872 ti12xx_irqroute_func0(socket);
874 ti12xx_irqroute_func1(socket);
877 socket->socket.power_hook = ti12xx_power_hook;
879 return ti_override(socket);
883 static int ti1250_override(struct yenta_socket *socket)
887 old = config_readb(socket, TI1250_DIAGNOSTIC);
889 if (socket->cb_irq)
893 dev_info(&socket->dev->dev,
896 config_writeb(socket, TI1250_DIAGNOSTIC, diag);
899 return ti12xx_override(socket);
938 struct yenta_socket *socket = container_of(sock, struct yenta_socket, socket);
949 test_c9 = old_c9 = config_readb(socket, ENE_TEST_C9);
960 dev_info(&socket->dev->dev,
963 config_writeb(socket, ENE_TEST_C9, test_c9);
966 static int ene_override(struct yenta_socket *socket)
969 socket->socket.tune_bridge = ene_tune_bridge;
971 return ti1250_override(socket);