From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felipe Balbi Subject: Re: [PATCH]: Fixing blksz_bits calling inside drivers/mmc/mmc.c and drivers/mmc/omap.c Date: Fri, 27 Oct 2006 13:51:54 -0400 Message-ID: <4542473A.4050709@nokia.com> References: <45422209.3090602@nokia.com> <45422DA7.4060900@gmail.com> <454231E4.3020007@nokia.com> <454237BE.900@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <454237BE.900@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-omap-open-source-bounces@linux.omap.com Errors-To: linux-omap-open-source-bounces@linux.omap.com To: ext Dirk Behme Cc: Linux OMAP Mailing List List-Id: linux-omap@vger.kernel.org ext Dirk Behme wrote: > Felipe Balbi wrote: >>>> Index: linux-omap/drivers/mmc/omap.c >>>> =================================================================== >>>> --- linux-omap.orig/drivers/mmc/omap.c 2006-10-27 >>>> 09:18:34.000000000 -0400 >>>> +++ linux-omap/drivers/mmc/omap.c 2006-10-27 11:03:14.000000000 >>>> -0400 >>>> @@ -633,10 +633,10 @@ mmc_omap_prepare_dma(struct mmc_omap_hos >>>> int sync_dev = 0; >>>> >>>> data_addr = host->phys_base + OMAP_MMC_REG_DATA; >>>> - frame = 1 << data->blksz_bits; >>>> + frame = 1 << data->blksz; >>>> count = sg_dma_len(sg); >>>> >>>> - if ((data->blocks == 1) && (count > (1 << data->blksz_bits))) >>>> + if ((data->blocks == 1) && (count > (1 << data->blksz))) >>>> count = frame; >>>> >>>> host->dma_len = count; >>>> @@ -825,7 +825,7 @@ mmc_omap_prepare_data(struct mmc_omap_ho >>>> } >>>> >>>> >>>> - block_size = 1 << data->blksz_bits; >>>> + block_size = 1 << data->blksz; >>>> >>>> OMAP_MMC_WRITE(host, NBLK, data->blocks - 1); >>>> OMAP_MMC_WRITE(host, BLEN, block_size - 1); >>>> >>>> --- linux-omap/drivers/mmc/mmc.c 2006-10-26 06:42:31.000000000 >>>> -0400 >>>> +++ linux-omap-dev/drivers/mmc/mmc.c 2006-10-26 >>>> 09:53:24.000000000 -0400 >>>> @@ -996,7 +996,7 @@ >>>> >>>> mmc_set_data_timeout(&data, card, 0); >>>> >>>> - data.blksz = 1 << 3; >>>> + data.blksz_bits = 1 << 3; >>>> data.blocks = 1; >>>> data.flags = MMC_DATA_READ; >>>> data.sg = &sg; >>> >>> >>> This doesn't look correct to me (and compilation still >>> fails). Why do you add data.blksz_bits in mmc.c again? It >>> was removed by RMK at >>> >>> http://source.mvista.com/git/gitweb.cgi?p=linux-omap-2.6.git;a=blobdiff;h=5b9caa7978d34311839840243e38921255f6da4b;hp=74eaaee66de0e59532ba5655fddac5aaeea5ba08;hb=132919ba80ad207755fe271277bfefff865a54fe;f=drivers/mmc/mmc.c >>> >>> >>> Whats about the attachment instead? It additionally >>> removes warning >>> >>> drivers/mmc/omap.c:587: warning: 'mmc_omap_switch_callback' >>> defined but not used >>> >>> too. >>> >>> Signed-off-by: Dirk Behme >>> ------------------------------------------------------------------------ >>> >>> >>> Index: linux-osk/drivers/mmc/omap.c >>> =================================================================== >>> --- linux-osk.orig/drivers/mmc/omap.c >>> +++ linux-osk/drivers/mmc/omap.c >>> @@ -581,12 +581,6 @@ static void mmc_omap_switch_timer(unsign >>> schedule_work(&host->switch_work); >>> } >>> >>> -/* FIXME: Handle card insertion and removal properly. Maybe use a mask >>> - * for MMC state? */ >>> -static void mmc_omap_switch_callback(unsigned long data, u8 mmc_mask) >>> -{ >>> -} >>> - >>> static void mmc_omap_switch_handler(void *data) >>> { >>> struct mmc_omap_host *host = (struct mmc_omap_host *) data; >>> @@ -633,10 +627,10 @@ mmc_omap_prepare_dma(struct mmc_omap_hos >>> int sync_dev = 0; >>> >>> data_addr = host->phys_base + OMAP_MMC_REG_DATA; >>> - frame = 1 << data->blksz_bits; >>> + frame = data->blksz; >>> count = sg_dma_len(sg); >>> >>> - if ((data->blocks == 1) && (count > (1 << data->blksz_bits))) >>> + if ((data->blocks == 1) && (count > (data->blksz))) >>> count = frame; >>> >>> host->dma_len = count; >>> @@ -825,7 +819,7 @@ mmc_omap_prepare_data(struct mmc_omap_ho >>> } >>> >>> >>> - block_size = 1 << data->blksz_bits; >>> + block_size = data->blksz; >>> >>> OMAP_MMC_WRITE(host, NBLK, data->blocks - 1); >>> OMAP_MMC_WRITE(host, BLEN, block_size - 1); >>> >>> >>> >> >> But then you will need to modify the struct mmc_data... > > Mmh, why? Above patch compiles for me. > > blksz is part of the global struct mmc_data, isn't it? > > http://source.mvista.com/git/gitweb.cgi?p=linux-omap-2.6.git;a=commitdiff;h=132919ba80ad207755fe271277bfefff865a54fe > > > http://source.mvista.com/git/gitweb.cgi?p=linux-omap-2.6.git;a=commit;h=132919ba80ad207755fe271277bfefff865a54fe > > > Do we both talk about recent git? Or do you use an other or locally > modified version? > > Best regards > > Dirk > Yep, my git tree is the newest version... And I made a mistake here... --- linux-omap/drivers/mmc/mmc.c 2006-10-26 06:42:31.000000000 -0400 +++ linux-omap-dev/drivers/mmc/mmc.c 2006-10-26 09:53:24.000000000 -0400 @@ -996,7 +996,7 @@ mmc_set_data_timeout(&data, card, 0); - data.blksz = 1 << 3; + data.blksz_bits = 1 << 3; data.blocks = 1; data.flags = MMC_DATA_READ; data.sg = &sg; It's deordered... it should appear like: --- linux-omap/drivers/mmc/mmc.c 2006-10-26 06:42:31.000000000 -0400 +++ linux-omap-dev/drivers/mmc/mmc.c 2006-10-26 09:53:24.000000000 -0400 @@ -996,7 +996,7 @@ mmc_set_data_timeout(&data, card, 0); - data.blksz_bits = 1 << 3; + data.blksz = 1 << 3; data.blocks = 1; data.flags = MMC_DATA_READ; data.sg = &sg; -- Best Regards, Felipe Balbi ext-felipe.lima@nokia.com OSMRC