|
43 | 43 | #define CY_4373_F2_WATERMARK 0x40
|
44 | 44 | #define CY_4373_F1_MESBUSYCTRL (CY_4373_F2_WATERMARK | SBSDIO_MESBUSYCTRL_ENAB)
|
45 | 45 | #define CY_43012_F2_WATERMARK 0x60
|
| 46 | +#define CY_4339_F2_WATERMARK 48 |
| 47 | +#define CY_4339_MES_WATERMARK 80 |
| 48 | +#define CY_4339_MESBUSYCTRL (CY_4339_MES_WATERMARK | \ |
| 49 | + SBSDIO_MESBUSYCTRL_ENAB) |
46 | 50 | #define CY_4359_F2_WATERMARK 0x40
|
47 | 51 | #define CY_4359_F1_MESBUSYCTRL (CY_4359_F2_WATERMARK | SBSDIO_MESBUSYCTRL_ENAB)
|
48 | 52 |
|
@@ -4209,6 +4213,19 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err,
|
4209 | 4213 | brcmf_sdiod_writeb(sdiod, SBSDIO_DEVICE_CTL, devctl,
|
4210 | 4214 | &err);
|
4211 | 4215 | break;
|
| 4216 | + case SDIO_DEVICE_ID_BROADCOM_4339: |
| 4217 | + brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes for 4339\n", |
| 4218 | + CY_4339_F2_WATERMARK); |
| 4219 | + brcmf_sdiod_writeb(sdiod, SBSDIO_WATERMARK, |
| 4220 | + CY_4339_F2_WATERMARK, &err); |
| 4221 | + devctl = brcmf_sdiod_readb(sdiod, SBSDIO_DEVICE_CTL, |
| 4222 | + &err); |
| 4223 | + devctl |= SBSDIO_DEVCTL_F2WM_ENAB; |
| 4224 | + brcmf_sdiod_writeb(sdiod, SBSDIO_DEVICE_CTL, devctl, |
| 4225 | + &err); |
| 4226 | + brcmf_sdiod_writeb(sdiod, SBSDIO_FUNC1_MESBUSYCTRL, |
| 4227 | + CY_4339_MESBUSYCTRL, &err); |
| 4228 | + break; |
4212 | 4229 | case SDIO_DEVICE_ID_BROADCOM_4359:
|
4213 | 4230 | brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n",
|
4214 | 4231 | CY_4359_F2_WATERMARK);
|
|
0 commit comments