diff options
Diffstat (limited to 'packages/linux/linux-2.6.18/mmc-add-bit-manipulating-macros.patch')
-rw-r--r-- | packages/linux/linux-2.6.18/mmc-add-bit-manipulating-macros.patch | 321 |
1 files changed, 0 insertions, 321 deletions
diff --git a/packages/linux/linux-2.6.18/mmc-add-bit-manipulating-macros.patch b/packages/linux/linux-2.6.18/mmc-add-bit-manipulating-macros.patch deleted file mode 100644 index 544e447580..0000000000 --- a/packages/linux/linux-2.6.18/mmc-add-bit-manipulating-macros.patch +++ /dev/null @@ -1,321 +0,0 @@ -Index: linux-2.6.18/drivers/mmc/atmel-mci.c -=================================================================== ---- linux-2.6.18.orig/drivers/mmc/atmel-mci.c 2007-01-15 16:36:59.000000000 +0100 -+++ linux-2.6.18/drivers/mmc/atmel-mci.c 2007-01-16 13:18:40.000000000 +0100 -@@ -45,6 +45,7 @@ - EVENT_STOP_COMPLETE, - EVENT_STOP_ERROR, - EVENT_DMA_ERROR, -+ EVENT_CARD_DETECT, - }; - - struct atmel_mci_dma { -@@ -572,9 +589,8 @@ - * Data might complete before command for very short transfers - * (like READ_SCR) - */ -- if (test_bit(EVENT_CMD_COMPLETE, &host->completed_events) -- && (!data->stop -- || test_bit(EVENT_STOP_COMPLETE, &host->completed_events))) -+ if (mci_cmd_is_complete(host) -+ && (!data->stop || mci_stop_is_complete(host))) - atmci_request_end(host->mmc, data->mrq); - } - -@@ -604,11 +620,11 @@ - host->pending_events, host->completed_events, - mci_readl(host, IMR)); - -- if (test_and_clear_bit(EVENT_CMD_ERROR, &host->pending_events)) { -+ if (mci_clear_cmd_error_is_pending(host)) { - struct mmc_command *cmd; - -- set_bit(EVENT_CMD_ERROR, &host->completed_events); -- clear_bit(EVENT_CMD_COMPLETE, &host->pending_events); -+ mci_set_cmd_error_complete(host); -+ mci_clear_cmd_pending(host); - cmd = host->mrq->cmd; - - if (cmd->data) { -@@ -620,28 +636,27 @@ - atmci_command_error(mmc, cmd, host->error_status); - atmci_request_end(mmc, cmd->mrq); - } -- if (test_and_clear_bit(EVENT_STOP_ERROR, &host->pending_events)) { -- set_bit(EVENT_STOP_ERROR, &host->completed_events); -- clear_bit(EVENT_STOP_COMPLETE, &host->pending_events); -+ if (mci_clear_stop_error_is_pending(host)) { -+ mci_set_stop_error_complete(host); -+ mci_clear_stop_pending(host); - atmci_command_error(mmc, host->mrq->stop, - host->error_status); - if (!host->data) - atmci_request_end(mmc, host->mrq); - } -- if (test_and_clear_bit(EVENT_CMD_COMPLETE, &host->pending_events)) { -- set_bit(EVENT_CMD_COMPLETE, &host->completed_events); -- if (!mrq->data -- || test_bit(EVENT_DATA_COMPLETE, &host->completed_events)) -+ if (mci_clear_cmd_is_pending(host)) { -+ mci_set_cmd_complete(host); -+ if (!mrq->data || mci_data_is_complete(host)) - atmci_request_end(mmc, mrq); - } -- if (test_and_clear_bit(EVENT_STOP_COMPLETE, &host->pending_events)) { -- set_bit(EVENT_STOP_COMPLETE, &host->completed_events); -- if (test_bit(EVENT_DATA_COMPLETE, &host->completed_events)) -+ if (mci_clear_stop_is_pending(host)) { -+ mci_set_stop_complete(host); -+ if (mci_data_is_complete(host)) - atmci_request_end(mmc, mrq); - } -- if (test_and_clear_bit(EVENT_DMA_ERROR, &host->pending_events)) { -- set_bit(EVENT_DMA_ERROR, &host->completed_events); -- clear_bit(EVENT_DATA_COMPLETE, &host->pending_events); -+ if (mci_clear_dma_error_is_pending(host)) { -+ mci_set_dma_error_complete(host); -+ mci_clear_data_pending(host); - - /* DMA controller got bus error => invalid address */ - data->error = MMC_ERR_INVALID; -@@ -650,18 +665,17 @@ - mmc_hostname(mmc), host->data->bytes_xfered); - - if (data->stop -- && !test_and_set_bit(EVENT_STOP_SENT, -- &host->completed_events)) -+ && !mci_set_stop_sent_is_completed(host)) - /* TODO: Check if card is still present */ - send_stop_cmd(host->mmc, data, 0); - - atmci_data_complete(host, data); - } -- if (test_and_clear_bit(EVENT_DATA_ERROR, &host->pending_events)) { -+ if (mci_clear_data_error_is_pending(host)) { - u32 status = host->error_status; - -- set_bit(EVENT_DATA_ERROR, &host->completed_events); -- clear_bit(EVENT_DATA_COMPLETE, &host->pending_events); -+ mci_set_data_error_complete(host); -+ mci_clear_data_pending(host); - - dma_stop_request(host->dma.req.req.dmac, - host->dma.req.req.channel); -@@ -686,14 +700,14 @@ - mmc_hostname(host->mmc), data->bytes_xfered); - - if (data->stop -- && !test_and_set_bit(EVENT_STOP_SENT, &host->completed_events)) -+ && !mci_set_stop_sent_is_completed(host)) - /* TODO: Check if card is still present */ - send_stop_cmd(host->mmc, data, 0); - - atmci_data_complete(host, data); - } -- if (test_and_clear_bit(EVENT_DATA_COMPLETE, &host->pending_events)) { -- set_bit(EVENT_DATA_COMPLETE, &host->completed_events); -+ if (mci_clear_data_is_pending(host)) { -+ mci_set_data_complete(host); - data->bytes_xfered = data->blocks * data->blksz; - atmci_data_complete(host, data); - } -@@ -716,10 +761,10 @@ - mci_writel(host, IDR, MCI_BIT(CMDRDY) | MCI_CMD_ERROR_FLAGS); - host->cmd = NULL; - -- if (test_bit(EVENT_STOP_SENT, &host->completed_events)) -- set_bit(EVENT_STOP_COMPLETE, &host->pending_events); -+ if (mci_stop_sent_is_complete(host)) -+ mci_set_stop_pending(host); - else -- set_bit(EVENT_CMD_COMPLETE, &host->pending_events); -+ mci_set_cmd_pending(host); - - tasklet_schedule(&host->tasklet); - } -@@ -735,13 +780,12 @@ - host = container_of(dma, struct atmel_mci, dma); - data = host->data; - -- if (data->stop && !test_and_set_bit(EVENT_STOP_SENT, -- &host->completed_events)) -+ if (data->stop && !mci_set_stop_sent_is_completed(host)) - send_stop_cmd(host->mmc, data, 0); - - if (data->flags & MMC_DATA_READ) { - mci_writel(host, IDR, MCI_DATA_ERROR_FLAGS); -- set_bit(EVENT_DATA_COMPLETE, &host->pending_events); -+ mci_set_data_pending(host); - tasklet_schedule(&host->tasklet); - } else { - /* -@@ -765,7 +809,7 @@ - mci_writel(host, IDR, (MCI_BIT(NOTBUSY) - | MCI_DATA_ERROR_FLAGS)); - -- set_bit(EVENT_DMA_ERROR, &host->pending_events); -+ mci_set_dma_error_pending(host); - tasklet_schedule(&host->tasklet); - } - -@@ -790,10 +834,10 @@ - | MCI_DATA_ERROR_FLAGS)); - host->error_status = status; - host->cmd = NULL; -- if (test_bit(EVENT_STOP_SENT, &host->completed_events)) -- set_bit(EVENT_STOP_ERROR, &host->pending_events); -+ if (mci_stop_sent_is_complete(host)) -+ mci_set_stop_error_pending(host); - else -- set_bit(EVENT_CMD_ERROR, &host->pending_events); -+ mci_set_cmd_error_pending(host); - tasklet_schedule(&host->tasklet); - break; - } -@@ -801,7 +845,7 @@ - mci_writel(host, IDR, (MCI_BIT(NOTBUSY) - | MCI_DATA_ERROR_FLAGS)); - host->error_status = status; -- set_bit(EVENT_DATA_ERROR, &host->pending_events); -+ mci_set_data_error_pending(host); - tasklet_schedule(&host->tasklet); - break; - } -@@ -810,7 +854,7 @@ - if (pending & MCI_BIT(NOTBUSY)) { - mci_writel(host, IDR, (MCI_BIT(NOTBUSY) - | MCI_DATA_ERROR_FLAGS)); -- set_bit(EVENT_DATA_COMPLETE, &host->pending_events); -+ mci_set_data_pending(host); - tasklet_schedule(&host->tasklet); - } - -Index: linux-2.6.18/drivers/mmc/atmel-mci.h -=================================================================== ---- linux-2.6.18.orig/drivers/mmc/atmel-mci.h 2007-01-16 13:22:59.000000000 +0100 -+++ linux-2.6.18/drivers/mmc/atmel-mci.h 2007-01-16 13:24:33.000000000 +0100 -@@ -189,4 +189,124 @@ - #define mci_writel(port,reg,value) \ - __raw_writel((value), (port)->regs + MCI_##reg) - -+/* Test bit macros for completed events */ -+#define mci_cmd_is_complete(host) \ -+ test_bit(EVENT_CMD_COMPLETE, &host->completed_events) -+#define mci_cmd_error_is_complete(host) \ -+ test_bit(EVENT_CMD_ERROR, &host->completed_events) -+#define mci_data_is_complete(host) \ -+ test_bit(EVENT_DATA_COMPLETE, &host->completed_events) -+#define mci_data_error_is_complete(host) \ -+ test_bit(EVENT_DATA_ERROR, &host->completed_events) -+#define mci_stop_sent_is_complete(host) \ -+ test_bit(EVENT_STOP_SENT, &host->completed_events) -+#define mci_stop_is_complete(host) \ -+ test_bit(EVENT_STOP_COMPLETE, &host->completed_events) -+#define mci_stop_error_is_complete(host) \ -+ test_bit(EVENT_STOP_ERROR, &host->completed_events) -+#define mci_dma_error_is_complete(host) \ -+ test_bit(EVENT_DMA_ERROR, &host->completed_events) -+#define mci_card_detect_is_complete(host) \ -+ test_bit(EVENT_CARD_DETECT, &host->completed_events) -+ -+/* Test and clear bit macros for pending events */ -+#define mci_clear_cmd_is_pending(host) \ -+ test_and_clear_bit(EVENT_CMD_COMPLETE, &host->pending_events) -+#define mci_clear_cmd_error_is_pending(host) \ -+ test_and_clear_bit(EVENT_CMD_ERROR, &host->pending_events) -+#define mci_clear_data_is_pending(host) \ -+ test_and_clear_bit(EVENT_DATA_COMPLETE, &host->pending_events) -+#define mci_clear_data_error_is_pending(host) \ -+ test_and_clear_bit(EVENT_DATA_ERROR, &host->pending_events) -+#define mci_clear_stop_sent_is_pending(host) \ -+ test_and_clear_bit(EVENT_STOP_SENT, &host->pending_events) -+#define mci_clear_stop_is_pending(host) \ -+ test_and_clear_bit(EVENT_STOP_COMPLETE, &host->pending_events) -+#define mci_clear_stop_error_is_pending(host) \ -+ test_and_clear_bit(EVENT_STOP_ERROR, &host->pending_events) -+#define mci_clear_dma_error_is_pending(host) \ -+ test_and_clear_bit(EVENT_DMA_ERROR, &host->pending_events) -+#define mci_clear_card_detect_is_pending(host) \ -+ test_and_clear_bit(EVENT_CARD_DETECT, &host->pending_events) -+ -+/* Test and set bit macros for completed events */ -+#define mci_set_cmd_is_completed(host) \ -+ test_and_set_bit(EVENT_CMD_COMPLETE, &host->completed_events) -+#define mci_set_cmd_error_is_completed(host) \ -+ test_and_set_bit(EVENT_CMD_ERROR, &host->completed_events) -+#define mci_set_data_is_completed(host) \ -+ test_and_set_bit(EVENT_DATA_COMPLETE, &host->completed_events) -+#define mci_set_data_error_is_completed(host) \ -+ test_and_set_bit(EVENT_DATA_ERROR, &host->completed_events) -+#define mci_set_stop_sent_is_completed(host) \ -+ test_and_set_bit(EVENT_STOP_SENT, &host->completed_events) -+#define mci_set_stop_is_completed(host) \ -+ test_and_set_bit(EVENT_STOP_COMPLETE, &host->completed_events) -+#define mci_set_stop_error_is_completed(host) \ -+ test_and_set_bit(EVENT_STOP_ERROR, &host->completed_events) -+#define mci_set_dma_error_is_completed(host) \ -+ test_and_set_bit(EVENT_DMA_ERROR, &host->completed_events) -+#define mci_set_card_detect_is_completed(host) \ -+ test_and_set_bit(EVENT_CARD_DETECT, &host->completed_events) -+ -+/* Set bit macros for completed events */ -+#define mci_set_cmd_complete(host) \ -+ set_bit(EVENT_CMD_COMPLETE, &host->completed_events) -+#define mci_set_cmd_error_complete(host) \ -+ set_bit(EVENT_CMD_ERROR, &host->completed_events) -+#define mci_set_data_complete(host) \ -+ set_bit(EVENT_DATA_COMPLETE, &host->completed_events) -+#define mci_set_data_error_complete(host) \ -+ set_bit(EVENT_DATA_ERROR, &host->completed_events) -+#define mci_set_stop_sent_complete(host) \ -+ set_bit(EVENT_STOP_SENT, &host->completed_events) -+#define mci_set_stop_complete(host) \ -+ set_bit(EVENT_STOP_COMPLETE, &host->completed_events) -+#define mci_set_stop_error_complete(host) \ -+ set_bit(EVENT_STOP_ERROR, &host->completed_events) -+#define mci_set_dma_error_complete(host) \ -+ set_bit(EVENT_DMA_ERROR, &host->completed_events) -+#define mci_set_card_detect_complete(host) \ -+ set_bit(EVENT_CARD_DETECT, &host->completed_events) -+ -+/* Set bit macros for pending events */ -+#define mci_set_cmd_pending(host) \ -+ set_bit(EVENT_CMD_COMPLETE, &host->pending_events) -+#define mci_set_cmd_error_pending(host) \ -+ set_bit(EVENT_CMD_ERROR, &host->pending_events) -+#define mci_set_data_pending(host) \ -+ set_bit(EVENT_DATA_COMPLETE, &host->pending_events) -+#define mci_set_data_error_pending(host) \ -+ set_bit(EVENT_DATA_ERROR, &host->pending_events) -+#define mci_set_stop_sent_pending(host) \ -+ set_bit(EVENT_STOP_SENT, &host->pending_events) -+#define mci_set_stop_pending(host) \ -+ set_bit(EVENT_STOP_COMPLETE, &host->pending_events) -+#define mci_set_stop_error_pending(host) \ -+ set_bit(EVENT_STOP_ERROR, &host->pending_events) -+#define mci_set_dma_error_pending(host) \ -+ set_bit(EVENT_DMA_ERROR, &host->pending_events) -+#define mci_set_card_detect_pending(host) \ -+ set_bit(EVENT_CARD_DETECT, &host->pending_events) -+ -+/* Clear bit macros for pending events */ -+#define mci_clear_cmd_pending(host) \ -+ clear_bit(EVENT_CMD_COMPLETE, &host->pending_events) -+#define mci_clear_cmd_error_pending(host) \ -+ clear_bit(EVENT_CMD_ERROR, &host->pending_events) -+#define mci_clear_data_pending(host) \ -+ clear_bit(EVENT_DATA_COMPLETE, &host->pending_events) -+#define mci_clear_data_error_pending(host) \ -+ clear_bit(EVENT_DATA_ERROR, &host->pending_events) -+#define mci_clear_stop_sent_pending(host) \ -+ clear_bit(EVENT_STOP_SENT, &host->pending_events) -+#define mci_clear_stop_pending(host) \ -+ clear_bit(EVENT_STOP_COMPLETE, &host->pending_events) -+#define mci_clear_stop_error_pending(host) \ -+ clear_bit(EVENT_STOP_ERROR, &host->pending_events) -+#define mci_clear_dma_error_pending(host) \ -+ clear_bit(EVENT_DMA_ERROR, &host->pending_events) -+#define mci_clear_card_detect_pending(host) \ -+ clear_bit(EVENT_CARD_DETECT, &host->pending_events) -+ - #endif /* __DRIVERS_MMC_ATMEL_MCI_H__ */ |