/linux-6.12.1/fs/ |
D | direct-io.c | 158 static inline unsigned dio_pages_present(struct dio_submit *sdio) in dio_pages_present() argument 160 return sdio->tail - sdio->head; in dio_pages_present() 166 static inline int dio_refill_pages(struct dio *dio, struct dio_submit *sdio) in dio_refill_pages() argument 172 ret = iov_iter_extract_pages(sdio->iter, &pages, LONG_MAX, in dio_refill_pages() 173 DIO_PAGES, 0, &sdio->from); in dio_refill_pages() 175 if (ret < 0 && sdio->blocks_available && dio_op == REQ_OP_WRITE) { in dio_refill_pages() 184 sdio->head = 0; in dio_refill_pages() 185 sdio->tail = 1; in dio_refill_pages() 186 sdio->from = 0; in dio_refill_pages() 187 sdio->to = PAGE_SIZE; in dio_refill_pages() [all …]
|
/linux-6.12.1/drivers/net/wireless/mediatek/mt76/ |
D | sdio_txrx.c | 18 #include "sdio.h" 37 struct mt76_sdio *sdio = &dev->sdio; in mt76s_refill_sched_quota() local 48 sdio->sched.pse_mcu_quota += pse_mcu_quota; in mt76s_refill_sched_quota() 49 sdio->sched.pse_data_quota += pse_data_quota; in mt76s_refill_sched_quota() 50 sdio->sched.ple_data_quota += ple_data_quota; in mt76s_refill_sched_quota() 85 struct mt76_sdio *sdio = &dev->sdio; in mt76s_rx_run_queue() local 96 if (len > sdio->func->cur_blksize) in mt76s_rx_run_queue() 97 len = roundup(len, sdio->func->cur_blksize); in mt76s_rx_run_queue() 105 sdio_claim_host(sdio->func); in mt76s_rx_run_queue() 106 err = sdio_readsb(sdio->func, buf, MCR_WRDR(qid), len); in mt76s_rx_run_queue() [all …]
|
D | sdio.c | 21 #include "sdio.h" 25 return sdio_readl(dev->sdio.func, MCR_WHISR, NULL); in mt76s_read_whisr() 30 struct mt76_sdio *sdio = &dev->sdio; in mt76s_read_pcr() local 32 return sdio_readl(sdio->func, MCR_WHLPCR, NULL); in mt76s_read_pcr() 38 struct sdio_func *func = dev->sdio.func; in mt76s_read_mailbox() 93 struct sdio_func *func = dev->sdio.func; in mt76s_write_mailbox() 231 dev->sdio.hw_ver = hw_ver; in mt76s_hw_init() 410 struct mt76_sdio *sdio = container_of(w, struct mt76_sdio, in mt76s_net_worker() local 412 struct mt76_dev *dev = container_of(sdio, struct mt76_dev, sdio); in mt76s_net_worker() 463 struct mt76_sdio *sdio = container_of(w, struct mt76_sdio, in mt76s_status_worker() local [all …]
|
/linux-6.12.1/drivers/net/wireless/mediatek/mt76/mt7921/ |
D | sdio_mac.c | 8 #include "../sdio.h" 12 struct mt76_sdio *sdio = &dev->sdio; in mt7921s_enable_irq() local 14 sdio_claim_host(sdio->func); in mt7921s_enable_irq() 15 sdio_writel(sdio->func, WHLPCR_INT_EN_SET, MCR_WHLPCR, NULL); in mt7921s_enable_irq() 16 sdio_release_host(sdio->func); in mt7921s_enable_irq() 21 struct mt76_sdio *sdio = &dev->sdio; in mt7921s_disable_irq() local 23 sdio_claim_host(sdio->func); in mt7921s_disable_irq() 24 sdio_writel(sdio->func, WHLPCR_INT_EN_CLR, MCR_WHLPCR, NULL); in mt7921s_disable_irq() 25 sdio_release_host(sdio->func); in mt7921s_disable_irq() 30 return sdio_readl(dev->sdio.func, MCR_WHCR, NULL); in mt7921s_read_whcr() [all …]
|
D | sdio.c | 15 #include "../sdio.h" 27 struct mt76_sdio *sdio = container_of(w, struct mt76_sdio, in mt7921s_txrx_worker() local 29 struct mt76_dev *mdev = container_of(sdio, struct mt76_dev, sdio); in mt7921s_txrx_worker() 37 mt76s_txrx_worker(sdio); in mt7921s_txrx_worker() 59 struct mt76_sdio *sdio = &dev->sdio; in mt7921s_parse_intr() local 60 struct mt7921_sdio_intr *irq_data = sdio->intr_data; in mt7921s_parse_intr() 63 sdio_claim_host(sdio->func); in mt7921s_parse_intr() 64 err = sdio_readsb(sdio->func, irq_data, MCR_WHISR, sizeof(*irq_data)); in mt7921s_parse_intr() 65 sdio_release_host(sdio->func); in mt7921s_parse_intr() 157 mdev->sdio.parse_irq = mt7921s_parse_intr; in mt7921s_probe() [all …]
|
D | sdio_mcu.c | 10 #include "../sdio.h" 26 * blocked by mt792x_mac_work that is excuting register access via sdio in mt7921s_mcu_send_message() 56 struct mt76_sdio *sdio = &dev->mt76.sdio; in mt7921s_read_rm3r() local 58 return sdio_readl(sdio->func, MCR_D2HRM3R, NULL); in mt7921s_read_rm3r() 63 struct mt76_sdio *sdio = &dev->mt76.sdio; in mt7921s_clear_rm3r_drv_own() local 66 val = sdio_readl(sdio->func, MCR_D2HRM3R, NULL); in mt7921s_clear_rm3r_drv_own() 68 sdio_writel(sdio->func, H2D_SW_INT_CLEAR_MAILBOX_ACK, in mt7921s_clear_rm3r_drv_own() 102 struct sdio_func *func = dev->mt76.sdio.func; in mt7921s_mcu_drv_pmctrl() 138 struct sdio_func *func = dev->mt76.sdio.func; in mt7921s_mcu_fw_pmctrl()
|
/linux-6.12.1/drivers/mmc/core/ |
D | sdio_io.c | 12 #include <linux/mmc/sdio.h> 21 * sdio_claim_host - exclusively claim a bus for a certain SDIO function 22 * @func: SDIO function that will be accessed 24 * Claim a bus for a set of operations. The SDIO function given 37 * sdio_release_host - release a bus for a certain SDIO function 38 * @func: SDIO function that was accessed 53 * sdio_enable_func - enables a SDIO function for usage 54 * @func: SDIO function to enable 56 * Powers up and activates a SDIO function so that register 68 pr_debug("SDIO: Enabling device %s...\n", sdio_func_id(func)); in sdio_enable_func() [all …]
|
D | sdio_irq.c | 23 #include <linux/mmc/sdio.h> 66 /* Don't process SDIO IRQs if the card is suspended. */ in process_sdio_pending_irqs() 148 * We want to allow for SDIO cards to work even on non SDIO in sdio_irq_thread() 149 * aware hosts. One thing that non SDIO host cannot do is in sdio_irq_thread() 150 * asynchronous notification of pending SDIO card interrupts in sdio_irq_thread() 169 * Just like traditional hard IRQ handlers, we expect SDIO in sdio_irq_thread() 290 * sdio_claim_irq - claim the IRQ for a SDIO function 291 * @func: SDIO function 294 * Claim and activate the IRQ for the given SDIO function. The provided 307 pr_debug("SDIO: Enabling IRQ for %s...\n", sdio_func_id(func)); in sdio_claim_irq() [all …]
|
/linux-6.12.1/drivers/mmc/host/ |
D | toshsd.h | 37 #define SD_CMD 0x00 /* also for SDIO */ 38 #define SD_ARG0 0x04 /* also for SDIO */ 39 #define SD_ARG1 0x06 /* also for SDIO */ 41 #define SD_BLOCKCOUNT 0x0a /* also for SDIO */ 42 #define SD_RESPONSE0 0x0c /* also for SDIO */ 43 #define SD_RESPONSE1 0x0e /* also for SDIO */ 44 #define SD_RESPONSE2 0x10 /* also for SDIO */ 45 #define SD_RESPONSE3 0x12 /* also for SDIO */ 46 #define SD_RESPONSE4 0x14 /* also for SDIO */ 47 #define SD_RESPONSE5 0x16 /* also for SDIO */ [all …]
|
D | Kconfig | 6 comment "MMC/SD/SDIO Host Controller Drivers" 261 The controller supports SD/MMC/SDIO devices. 268 tristate "SDHCI support for the Cadence SD/SDIO/eMMC controller" 273 This selects the Cadence SD/SDIO/eMMC driver. 414 Needed by some Fujitsu SoC for MMC / SD / SDIO support. 425 Needed by Milbeaut SoC for MMC / SD / SDIO support. 460 MMC 5.1 compliant and supports SD, eMMC and SDIO interfaces. 472 The controller supports the SD/SDIO Spec 3.x and eMMC Spec 4.5x 579 SD/MMC/SDIO devices. 621 tristate "Marvell MMC/SD/SDIO host driver" [all …]
|
/linux-6.12.1/drivers/net/wireless/broadcom/b43/ |
D | sdio.c | 5 * SDIO over Sonics Silicon Backplane bus glue for b43. 18 #include "sdio.h" 51 struct b43_sdio *sdio = sdio_get_drvdata(func); in b43_sdio_interrupt_dispatcher() local 52 struct b43_wldev *dev = sdio->irq_handler_opaque; in b43_sdio_interrupt_dispatcher() 58 sdio->irq_handler(dev); in b43_sdio_interrupt_dispatcher() 67 struct b43_sdio *sdio = sdio_get_drvdata(func); in b43_sdio_request_irq() local 70 sdio->irq_handler_opaque = dev; in b43_sdio_request_irq() 71 sdio->irq_handler = handler; in b43_sdio_request_irq() 83 struct b43_sdio *sdio = sdio_get_drvdata(func); in b43_sdio_free_irq() local 88 sdio->irq_handler_opaque = NULL; in b43_sdio_free_irq() [all …]
|
/linux-6.12.1/drivers/net/wireless/mediatek/mt76/mt7615/ |
D | sdio.c | 17 #include "../sdio.h" 29 struct mt76_sdio *sdio = container_of(w, struct mt76_sdio, in mt7663s_txrx_worker() local 31 struct mt76_dev *mdev = container_of(sdio, struct mt76_dev, sdio); in mt7663s_txrx_worker() 38 mt76s_txrx_worker(sdio); in mt7663s_txrx_worker() 55 struct mt76_sdio *sdio = &dev->sdio; in mt7663s_parse_intr() local 56 struct mt7663s_intr *irq_data = sdio->intr_data; in mt7663s_parse_intr() 59 sdio_claim_host(sdio->func); in mt7663s_parse_intr() 60 err = sdio_readsb(sdio->func, irq_data, MCR_WHISR, sizeof(*irq_data)); in mt7663s_parse_intr() 61 sdio_release_host(sdio->func); in mt7663s_parse_intr() 135 mdev->sdio.parse_irq = mt7663s_parse_intr; in mt7663s_probe() [all …]
|
D | sdio_mcu.c | 13 #include "../sdio.h" 21 struct mt76_sdio *sdio = &dev->mt76.sdio; in mt7663s_mcu_init_sched() local 24 sdio->sched.pse_data_quota = mt76_get_field(dev, MT_PSE_PG_HIF0_GROUP, in mt7663s_mcu_init_sched() 26 sdio->sched.pse_mcu_quota = mt76_get_field(dev, MT_PSE_PG_HIF1_GROUP, in mt7663s_mcu_init_sched() 28 sdio->sched.ple_data_quota = mt76_get_field(dev, MT_PLE_PG_HIF0_GROUP, in mt7663s_mcu_init_sched() 30 sdio->sched.pse_page_size = MT_PSE_PAGE_SZ; in mt7663s_mcu_init_sched() 33 sdio->sched.deficit = txdwcnt << 2; in mt7663s_mcu_init_sched() 57 struct sdio_func *func = dev->mt76.sdio.func; in __mt7663s_mcu_drv_pmctrl() 100 struct sdio_func *func = dev->mt76.sdio.func; in mt7663s_mcu_fw_pmctrl()
|
/linux-6.12.1/drivers/pinctrl/mvebu/ |
D | pinctrl-armada-ap806.c | 23 MPP_FUNCTION(1, "sdio", "clk"), 27 MPP_FUNCTION(1, "sdio", "cmd"), 31 MPP_FUNCTION(1, "sdio", "d0"), 35 MPP_FUNCTION(1, "sdio", "d1"), 39 MPP_FUNCTION(1, "sdio", "d2"), 43 MPP_FUNCTION(1, "sdio", "d3"), 47 MPP_FUNCTION(1, "sdio", "ds")), 50 MPP_FUNCTION(1, "sdio", "d4"), 54 MPP_FUNCTION(1, "sdio", "d5"), 58 MPP_FUNCTION(1, "sdio", "d6"), [all …]
|
/linux-6.12.1/drivers/net/wireless/microchip/wilc1000/ |
D | Kconfig | 6 This provides Wi-FI over an SDIO or SPI interface, and 12 tristate "Atmel WILC1000 SDIO (WiFi only)" 16 This module adds support for the SDIO interface of adapters using 17 WILC1000 chipset. The Atmel WILC1000 SDIO is a full speed interface. 18 It meets SDIO card specification version 2.0. The interface supports 23 this if your platform is using the SDIO bus. 46 mechanism for SDIO host controllers that don't support SDIO interrupt. 47 Select this option If the SDIO host controller in your platform 48 doesn't support SDIO time division interrupt.
|
/linux-6.12.1/drivers/net/wireless/broadcom/brcm80211/brcmfmac/ |
D | bcmsdh.c | 5 /* ****************** SDIO CARD Interface Functions **************************/ 15 #include <linux/mmc/sdio.h> 36 #include "sdio.h" 65 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdiod_oob_irqhandler() 85 struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; in brcmf_sdiod_ib_irqhandler() 92 /* dummy handler for SDIO function 2 interrupt */ 104 pdata = &sdiodev->settings->bus.sdio; in brcmf_sdiod_intr_register() 106 brcmf_dbg(SDIO, "Enter, register OOB IRQ %d\n", in brcmf_sdiod_intr_register() 130 /* assign GPIO to SDIO core */ in brcmf_sdiod_intr_register() 157 brcmf_dbg(SDIO, "Entering\n"); in brcmf_sdiod_intr_register() [all …]
|
/linux-6.12.1/drivers/net/wireless/realtek/rtw88/ |
D | Kconfig | 58 tristate "Realtek 8822BS SDIO wireless network adapter" 66 802.11ac SDIO wireless network adapter 91 tristate "Realtek 8822CS SDIO wireless network adapter" 99 802.11ac SDIO wireless network adapter 124 tristate "Realtek 8723DS SDIO wireless network adapter" 132 802.11n SDIO wireless network adapter 135 tristate "Realtek 8723CS SDIO wireless network adapter" 143 This module adds support for the 8723CS 802.11n SDIO 171 tristate "Realtek 8821CS SDIO wireless network adapter" 179 802.11ac SDIO wireless network adapter
|
D | sdio.h | 23 /* SDIO Tx Control */ 26 /*SDIO status timeout*/ 29 /* SDIO Host Interrupt Mask */ 51 /* the following two are RTL8188 SDIO Specific */ 55 /* SDIO Host Interrupt Service Routine */ 77 /* the following two are RTL8188 SDIO Specific */ 106 /* SDIO HCI Suspend Control */ 110 /* SDIO Host Extension Interrupt Mask Always */ 112 /* SDIO Host Extension Interrupt Status Always */ 123 /* Sdio Address for SDIO Local Reg, TRX FIFO, MAC Reg */
|
/linux-6.12.1/Documentation/devicetree/bindings/arm/marvell/ |
D | cp110-system-controller.txt | 40 - 0 5 SDIO core 46 - 1 4 SDIO 123 … mii(txerr), mss_spi(miso), tdm(drx), au(i2sextclk), au(i2sdi), ge(mdio), sdio(v18_en), pcie1(clkr… 124 mpp33 33 gpio, mii(txclk), sdio(pwr10), mss_spi(csn), tdm(fsync), au(i2smclk), sdio(bus_pwr), xg(md… 125 mpp34 34 gpio, mii(rxerr), sdio(pwr11), mss_spi(mosi), tdm(dtx), au(i2slrclk), sdio(wr_protect), ge… 126 mpp35 35 gpio, sata1(present_act), i2c1(sda), mss_spi(clk), tdm(pclk), au(i2sdo_spdifo), sdio(card_… 130 mpp39 39 gpio, sdio(wr_protect), au(i2sbclk), ptp(clk), spi0(csn1), sata1(present_act), mss_gpio0 131 mpp40 40 gpio, sdio(pwr11), synce1(clk), mss_i2c(sda), au(i2sdo_spdifo), ptp(pclk_out), spi0(clk), … 132 mpp41 41 gpio, sdio(pwr10), sdio(bus_pwr), mss_i2c(sck), au(i2slrclk), ptp(pulse), spi0(mosi), uart… 133 mpp42 42 gpio, sdio(v18_en), sdio(wr_protect), synce2(clk), au(i2smclk), mss_uart(txd), spi0(miso),… [all …]
|
D | ap80x-system-controller.txt | 51 mpp0 0 gpio, sdio(clk), spi0(clk) 52 mpp1 1 gpio, sdio(cmd), spi0(miso) 53 mpp2 2 gpio, sdio(d0), spi0(mosi) 54 mpp3 3 gpio, sdio(d1), spi0(cs0n) 55 mpp4 4 gpio, sdio(d2), i2c0(sda) 56 mpp5 5 gpio, sdio(d3), i2c0(sdk) 57 mpp6 6 gpio, sdio(ds) 58 mpp7 7 gpio, sdio(d4), uart1(rxd) 59 mpp8 8 gpio, sdio(d5), uart1(txd) 60 mpp9 9 gpio, sdio(d6), spi0(cs1n) [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/pinctrl/ |
D | marvell,kirkwood-pinctrl.txt | 39 mpp12 12 gpo, sdio(clk) 40 mpp13 13 gpio, sdio(cmd), uart1(txd) 41 mpp14 14 gpio, sdio(d0), uart1(rxd), mii(col) 42 mpp15 15 gpio, sdio(d1), uart0(rts), uart1(txd) 43 mpp16 16 gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs) 44 mpp17 17 gpio, sdio(d3) 77 mpp12 12 gpo, sdio(clk) 78 mpp13 13 gpio, sdio(cmd), uart1(txd) 79 mpp14 14 gpio, sdio(d0), uart1(rxd), mii(col) 80 mpp15 15 gpio, sdio(d1), uart0(rts), uart1(txd), sata0(act) [all …]
|
D | loongson,ls2k-pinctrl.yaml | 42 enum: [gpio, sdio, can1, can0, pwm3, pwm2, pwm1, pwm0, i2c1, i2c0, 47 enum: [gpio, sdio, can1, can0, pwm3, pwm2, pwm1, pwm0, i2c1, i2c0, 65 sdio_pins_default: sdio-pins { 66 sdio-pinmux { 67 groups = "sdio"; 68 function = "sdio"; 71 sdio-det-pinmux {
|
/linux-6.12.1/include/linux/platform_data/ |
D | brcmfmac.h | 48 * enum brcmf_bus_type - Bus type identifier. Currently SDIO, USB and PCIE are 59 * struct brcmfmac_sdio_pd - SDIO Device specific platform data. 61 * @txglomsz: SDIO txglom size. Use 0 if default of driver is to be 63 * @drive_strength: is the preferred drive_strength to be used for the SDIO 68 * @oob_irq_supported: does the board have support for OOB interrupts. SDIO 77 * @broken_sg_support: flag for broken sg list support of SDIO host controller. 78 * Set this to true if the SDIO host controller has higher 85 * case of SDIO type devices. It is possible to reset a 86 * dongle via sdio data interface, but it requires that 135 * @id: ID of the device for which this data is. In case of SDIO [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/mmc/ |
D | amlogic,meson-mx-sdio.txt | 1 * Amlogic Meson6, Meson8 and Meson8b SDIO/MMC controller 4 for MMC, SD, SDIO and SDHC types of memory cards. 14 - "amlogic,meson8-sdio" 15 - "amlogic,meson8b-sdio" 16 along with the generic "amlogic,meson-mx-sdio" 40 compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio";
|
/linux-6.12.1/Documentation/devicetree/bindings/clock/ |
D | mvebu-gated-clock.txt | 21 17 sdio SDHCI Host 40 17 sdio SDHCI Host 72 17 sdio SDIO 91 17 sdio SDIO 111 17 sdio SDHCI Host 128 17 sdio SDHCI Host 161 4 sdio SDIO Cntrl 201 sdio0: sdio@92000 {
|